有时我会遇到Oracle连接问题,因为我无法弄清楚我的数据库客户端正在使用哪个tnsnames.ora文件.
想出这个的最佳方法是什么?++对各种平台解决方案感到满意
Oracle提供了一个名为tnsping
:
R:\>tnsping someconnection TNS Ping Utility for 32-bit Windows: Version 9.0.1.3.1 - Production on 27-AUG-20 08 10:38:07 Copyright (c) 1997 Oracle Corporation. All rights reserved. Used parameter files: C:\Oracle92\network\ADMIN\sqlnet.ora C:\Oracle92\network\ADMIN\tnsnames.ora TNS-03505: Failed to resolve name R:\> R:\>tnsping entpr01 TNS Ping Utility for 32-bit Windows: Version 9.0.1.3.1 - Production on 27-AUG-20 08 10:39:22 Copyright (c) 1997 Oracle Corporation. All rights reserved. Used parameter files: C:\Oracle92\network\ADMIN\sqlnet.ora C:\Oracle92\network\ADMIN\tnsnames.ora Used TNSNAMES adapter to resolve the alias Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (COMMUNITY = **) (PROTOCOL = TCP) (Host = ****) (Port = 1521))) (CONNECT_DATA = (SID = ENTPR0 1))) OK (40 msec) R:\>
这应该显示您正在使用的文件.该实用程序位于Oracle bin
目录中.
对于linux:
$ strace sqlplus -L scott/tiger@orcl 2>&1| grep -i 'open.*tnsnames.ora'
显示这样的事情:
open("/opt/oracle/product/10.2.0/db_1/network/admin/tnsnames.ora",O_RDONLY)=7
改为
$ strace sqlplus -L scott/tiger@orcl 2>&1| grep -i 'tnsnames.ora'
将显示失败的所有文件路径.
还有另一个存储TNS位置的地方:如果您使用的是Windows,请打开regedit
并导航到您的Oracle主目录My HKEY Local Machine/Software/ORACLE/KEY_OraClient10_home1
所在的位置KEY_OraClient10_home1
.如果存在名为的字符串条目TNS_ADMIN
,则该条目的值将指向Oracle在您的计算机上使用的TNS文件.