ITPub博客

首页 > Linux操作系统 > Linux操作系统 > Oracle确定连接方式的优先级

Oracle确定连接方式的优先级

原创 Linux操作系统 作者:yangtingkun 时间:2008-04-04 23:53:15 0 删除 编辑

前两天在使用10g的简化连接方式的时候突然想到的问题,如果TNSNAMES.ORA中的配置名称恰好是另一个数据库的简化连接方式,Oracle会连接到哪个数据库。

今天有时间,做了个简单的测试。

 

 

首先通过简化连接方式连接远端的数据库:

SQL> CONN YANGTK/YANGTK@172.25.1.100/TEST1
已连接。
SQL> SELECT * FROM GLOBAL_NAME;

GLOBAL_NAME
-----------------------------------------------------
TEST1.YANGTINGKUN

下面在本地的TNSNAMES.ORA中配置另一个数据库,但是配置的名称为172.25.1.100/TEST1

172.25.1.100/test1 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = ytk-thinkpad)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = ytk102.ytk_thinkpad)
    )
  )

添加了这个配置后,保存TNSNAMES.ORA文件的修改,再次执行上面的连接操作,检查当前连接的数据库:

SQL> CONN YANGTK/YANGTK@172.25.1.100/TEST1
已连接。
SQL> SELECT * FROM GLOBAL_NAME;

GLOBAL_NAME
---------------------------------------------------
YTK102.YTK_THINKPAD

这次TNSNAMES.ORA中的配置起了作用。看来Oracle应该是出于后向兼容性的考虑,仍然先查询TNSNAMES.ORA文件,在文件中找不到对应的配置信息,才会尝试使用简化连接方式。

这时如果将数据库简化连接方式稍做调整:

SQL> CONN YANGTK/YANGTK@172.25.1.100:1521/TEST1
已连接。
SQL> SELECT * FROM GLOBAL_NAME;

GLOBAL_NAME
--------------------------------------------------
TEST1.YANGTINGKUN

只要简化连接方式和TNSNAMES.ORA中的配置不符就可以连接到目标数据库。同时Oracle的这种特性,在TNSNAMES.ORA中进行配置的时候,尽量不要使用和简易连接方式相近似的名字,这样可以避免不必要的错误。

 

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/4227/viewspace-228918/,如需转载,请注明出处,否则将追究法律责任。

上一篇: ORA-7445(kkojnp)错误
请登录后发表评论 登录
全部评论
暂无介绍

注册时间:2007-12-29

  • 博文量
    1955
  • 访问量
    10368832