在Debian机器上,我可以使用tnsping来识别tnsname。
但我在这台机器上找不到任何tnsnames.ora。 ($ ORACLE_HOME / network / admin /中没有任何内容)
那么,如何找到tnsping命令使用的tns名称配置文件? 是否有任何命令(类似于tnsping)来定位tnsnames文件?
更新:tnsping命令结果:
答案 0 :(得分:1)
没有共同的位置,不同的应用程序/驱动程序应用具有不同顺序和优先级的各种搜索路径。
检查以下位置:
$ORACLE_HOME/network/admin/
$TNS_ADMIN
(其中TNS_ADMIN是环境变量设置)仅在Windows检查时完整性
HKLM\SOFTWARE\ORACLE\KEY_{ORACLE_HOME_NAME}\TNS_ADMIN
(对于64位)HKLM\SOFTWARE\Wow6432Node\ORACLE\KEY_{ORACLE_HOME_NAME}\TNS_ADMIN
(对于32位)machine.config
和/或web.config
)在理想情况下,所有这些都应指向同一位置,如果需要,请考虑创建符号链接。
注意,文件tnsnames.ora
可能根本就不存在。在上面提到的位置创建这样的文件。
答案 1 :(得分:0)
你告诉我们tnsping工作正常...在我的地方,tnsping工具给出了它正在使用的sqlnet.ora的确切位置.... tnsnames.ora应该在同一个目录中。
正确配置环境后,tnsnames应位于上述目录中。如果它不存在,您可以尝试运行netca命令并配置"命名方法配置"并使用" Locale Net Service Name配置"添加目标。该实用程序将在默认位置创建sqlnet.ora和tnsnames.ora。
[oracle@somedir]$ tnsping test
TNS Ping Utility for Linux: Version 11.2.0.3.0 - Production on 27-JUL-2016 22:00:24
Copyright (c) 1997, 2011, Oracle. All rights reserved.
Used parameter files:
/home/oracle/app/oracle/product/11.2.3/dbhome_1/network/admin/sqlnet.ora
Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = TEST)))
OK (0 msec)