【发布时间】:2015-05-12 18:09:55
【问题描述】:
当我尝试连接我的 TNSNAMES.ora 文件中的任何数据库时,SQLPLUS 抛出
ORA-12154: TNS could not resolve service name
我已经检查过这些东西:
TNS_ADMIN environment variable is defined as "C:\oraclexe\app\oracle\product\10.2.0\server\NETWORK\ADMIN"
"C:\oraclexe\app\oracle\product\10.2.0\server\NETWORK\ADMIN\tnsnames.ora" was located
The following connect descriptor was found for my_db in the tnsnames.ora file
my_db=
(DESCRIPTION=
(ADDRESS=
(PROTOCOL=TCP)
(HOST=local.db)
(PORT=1521)
)
(CONNECT_DATA=
(SID=SCMPROD)
)
)
"C:\oraclexe\app\oracle\product\10.2.0\server\NETWORK\ADMIN\sqlnet.ora" was located
NAMES.DIRECTORY_PATH specifies TNSNAMES in the sqlnet.ora file
问题是:
缺少什么?
更新
现在在 SqlPlus 上使用 the usr/pwd@SELFTEST 连接字符串可以正常工作
服务器上不可能有错误,因为在我的旧 PC 上,它仍然接受我的连接,而我公司的所有工作都在它上面工作。
tnsname.ora
SELFTEST=
(DESCRIPTION=
(ADDRESS=
(PROTOCOL=TCP)
(HOST=10.100.2.7)
(PORT=1521)
)
(CONNECT_DATA=
(SERVER=dedicated)
(SERVICE_NAME=GOLDtest)
)
)
尝试从 Toad for Oracle 连接时问题仍然存在...
【问题讨论】:
-
您究竟想如何连接?错误与文件不匹配 - 您显示的 TNS 条目有一个 SID,而错误指的是服务名称。那么你的连接字符串是什么,
tnsnames.ora中的匹配条目是什么?您尝试连接的数据库是否实际启动,并且您是否指定了正确的服务名称?该服务器上的lsnrctl status显示什么? -
@AlexPoole 它为此服务器响应
TNS-01101: Could not find service name 10.100.2.7.1521。但在另一个,同样的问题,它给我TNS-01189: The listener could not authenticate the user -
检查该服务器上
listener.ora的内容,看起来你有一个错误。 (.1521看起来很奇怪,但将点值作为服务名称也是如此)。您只向我们提供了部分信息,因此很难准确猜测您的配置出了什么问题。 -
10.100.2.7.1521只是一个粘贴错误...抱歉告诉我你想要的所有信息。 -
您在 SQL*Plus 中使用的连接字符串;您认为实际上指的是
tnsnames.ora条目(或客户端计算机上的整个文件);来自服务器的listerner.ora文件。全部添加为问题的编辑,而不是 cmets,因为它们不可读。 (如果您可以在服务器上本地连接到数据库,那么service_names和local_listenerinit 参数就不会受到伤害。