0

我有一个连接到 oracle 数据库的独立工作站在工作。它多年来一直运行良好,然后突然出现错误:

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

当我从命令提示符 ping 尝试连接的服务器时,它会回复正确的 IP 地址。如果我做一个 TNSPING,那似乎也可以。

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

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

我很困惑为什么它不起作用并且没有任何运气试图修复它。我不确定如何进行。

任何帮助,将不胜感激。

4

2 回答 2

1

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

编辑:

可以直接连接 SQL*Plus 吗?

如果已安装,这应该可以工作(将 user 和 db 替换为要连接的用户 ID 和数据库):

sqlplus user@db

如果做不到这一点,请尝试使用EZCONNECT连接:

修改 sqlnet.ora 文件:

NAMES.DIRECTORY_PATH=(TNSNAMES,EZCONNECT)

在 Oracle ODBC 驱动程序配置向导中更改您的 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可能已更改。这个条目是否与工作机器上的条目相同?

于 2012-08-20T15:06:10.127 回答
0

您最近是否安装了任何其他 oracle 软件?

您可能tnsnames.ora在不同位置有多个文件,而 odbc 驱动程序找到了错误的文件。

检查你的路径环境变量,正确的路径是否在第一位。

于 2012-08-20T14:42:39.220 回答