我目前正在尝试验证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?
答案 0 :(得分:2)
这将为您提供数据库链接另一端数据库的数据库名称:
select property_value
from database_properties@<database_link>
where property_name='GLOBAL_DB_NAME'