当前位置:数据库 > Oracle >>

ORACLE使用TNSNAMES.ORA文件的优先级

ORACLE使用TNSNAMES.ORA文件的优先级
 
对于UNIX平台,ORACLE会首先查找环境变量TNS_ADMIN,如果存在就到这个环境变量所指定的目录下去找
tnsnames.ora文件,否则就去$ORACLE_HOME/network/admin的目录下去找。
 
在WINDOWS下的平台上,发现不符合这个规则,ORACLE会优先在当前目录下找TNSNAMES.ORA文件,
如果不存在这个文件,再查找TNS_ADMIN环境变量,如果环境变量也不存在,在到$ORACLE_HOME/network/admin下去找。
 
C:\Documents and Settings\htaix>type C:\oracle\product\10.2.0\db_1\NETWORK\ADMIN\tnsnames.ora
# tnsnames.ora Network Configuration File: c:\u01\oracle\product\11.2.0\client_1\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.
 
dev2 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 10.192.30.28)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME =  jtcmdb)
    )
  )
 
C:\Documents and Settings\htaix>type C:\tnsnames.ora
dev2 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 10.192.30.29)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME =  jtcmdb)
    )
  )
 
 
C:\Documents and Settings\htaix>
 
注意我C盘下和目录C:\oracle\product\10.2.0\db_1\NETWORK\ADMIN\下各有一个TNSNAMES.ORA文件,
但是HOST的IP是不一样的,一个是10.192.30.29  一个是10.192.30.28。
并且注意当前目录是C:\Documents and Settings\htaix>。
 
C:\Documents and Settings\htaix>tnsping dev2
 
TNS Ping Utility for 32-bit Windows: Version 10.2.0.1.0 - Production on 03-6月 -2013 16:34:41
 
Copyright (c) 1997, 2005, Oracle.  All rights reserved.
 
已使用的参数文件:
c:\oracle\product\10.2.0\db_1\network\admin\sqlnet.ora
 
已使用 TNSNAMES 适配器来解析别名
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.192.30.28)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = jtcmdb)))
OK (30 毫秒)
 
可以看到ORACLEL优先用的是$ORACLE_HOME/network/admin目录下的TNSNAMES.ORA(没有配置TNS_ADMIN环境变量)。
 
下面我将当前路径切换到C盘根目录下,在执行tnsping。
 
C:\Documents and Settings\htaix>cd c:\
 
C:\>tnsping dev2
 
TNS Ping Utility for 32-bit Windows: Version 10.2.0.1.0 - Production on 03-6月 -2013 16:37:05
 
Copyright (c) 1997, 2005, Oracle.  All rights reserved.
 
已使用的参数文件:
c:\oracle\product\10.2.0\db_1\network\admin\sqlnet.ora
 
已使用 TNSNAMES 适配器来解析别名
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.192.30.29)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = jtcmdb)))
OK (30 毫秒)
 
可以看到这次的IP变成了  10.192.30.29 ,用的是C盘根目录下的TNSNAMES.ORA。
 
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,