检查数据库链接是否实际指向正确的服务器

时间:2012-05-08 11:40:32

标签: oracle

我目前正在尝试验证Oracle db_link实际指向正确的服务器。 当我查询db_links时,我得到了引用TNSNames的DB_link的定义:

select * from all_db_links;

给我以下结果:

所有者:user1
DB_LINK:DBL_xxx.world
用户名:User2
主持人:tnsEntry1
创建时间:03-MAY-12

当我测试DB_link时,一切正常:

select * from dual@"DBL_xxx.world";
  

DUMMY:X

但是,由于我无法访问服务器,因此无法确保tns条目tnsEntry1指向正确的服务器。

在当地,我可以跑:

select sys_context ( 'USERENV', 'DB_NAME' ) db_name,
 sys_context ( 'USERENV', 'SESSION_USER' ) user_name,
 sys_context ( 'USERENV', 'SERVER_HOST' ) db_host
 from dual;

我试图远程运行相同的命令:

select sys_context ( 'USERENV', 'DB_NAME' ) db_name,
 sys_context ( 'USERENV', 'SESSION_USER' ) user_name,
 sys_context ( 'USERENV', 'SERVER_HOST' ) db_host
 from dual@DBL_xxx.world;

但它只返回本地数据。

有没有办法检查远程信息?或者从sql查询中检查tnsnames?

1 个答案:

答案 0 :(得分:2)

这将为您提供数据库链接另一端数据库的数据库名称:

select property_value 
from database_properties@<database_link> 
where property_name='GLOBAL_DB_NAME'