TNS:名称查找失败

时间:2012-08-20 13:58:54

标签: oracle odbc

我有一个连接到oracle数据库的独立工作站。它已经工作了好几年,然后突然间我得到一个错误:

[INTERSOLV] [ODBC Oracle驱动程序] [Oracle] ORA-12545:TNS:名称查找失败

当我ping服务器时,我试图从命令提示符连接到它,它会回复正确的IP地址。如果我进行TNSPING,那似乎也没问题。

我在计算机网络上有一台单独的PC,它连接到服务器就好了 - 上面没有粗体错误。

我在另一台PC上连接了另一个不同的oracle数据库,它仍然正常工作。所以,这并不像我失去了连接任何或所有Oracle数据库的能力 - 只是关于这个数据库。

我很困惑,为什么它不起作用,并且没有任何运气试图解决它。我不知道该怎么办。

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:1)

尝试将环境变量TNS_ADMIN定义为指向TNSNAMES.ORA文件所在的位置。

编辑:

您可以直接连接SQL * Plus吗?

如果安装了,这应该有效(用userid和数据库替换user和db来连接):

sqlplus user@db

如果失败,请尝试与EZCONNECT

联系

修改sqlnet.ora文件:

NAMES.DIRECTORY_PATH=(TNSNAMES,EZCONNECT)

在Oracle ODBC Driver Configuration向导中更改ODBC连接以使用EZCONNECT字符串:

将TNS服务名称替换为:

<db_host>:port/<db_name>

例如,

MYHOST:1521/MYDB

这指向主机MYHOST端口1521(默认端口)上的数据库MYDB。

尝试测试连接。如果失败,请尝试使用IP地址而不是主机名。

根据您的评论提供您的TNSNAMES条目:

ESTRNP = (DESCRIPTION = 
           (ADDRESS_LIST = 
             (ADDRESS = (PROTOCOL = TCP)(HOST = ESTRNP)(PORT = 1521)) 
           ) 
         (CONNECT_DATA = (SID = ESTRNP)) 
        )

您可以尝试将CONNECT_DATA行更改为:

(CONNECT_DATA = (SERVICE = ESTRNP)) 

可能数据库的SID已更改。此条目是否与有效机器上的条目相同?

答案 1 :(得分:0)

你最近安装过任何其他oracle软件吗?

您可能在不同位置有多个tnsnames.ora文件,并且odbc驱动程序发现错误的文件。

检查路径环境变量,指向右侧的路径是否位于第一位。