对于UNIX平台,ORACLE会首先查找环境变量TNS_ADMIN,如果存在就到这个环境变量所指定的目录下去找
tnsnames.ora文件,否则就去$ORACLE_HOME/network/admin的目录下去找。
在WINDOWS下的平台上,发现不符合这个规则,ORACLE会优先在当前目录下找TNSNAMES.ORA文件,
如果不存在这个文件,再查找TNS_ADMIN环境变量,如果环境变量也不存在,在到$ORACLE_HOME/network/admin下去找。
Microsoft Windows XP [版本 5.1.2600]
(C) 版权所有 1985-2001 Microsoft Corp.
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。
UNIX平台却没有这个问题。
阅读(6435) | 评论(2) | 转发(1) |