我们最近更改了物理数据库,新服务器,新位置,相同的数据库模式和数据,自转换完成后,无论何时我们尝试直接连接到我们自己的桌面类型应用程序大约一半的时间我们得到这个错误:Hinky Oracle连接(TNSNAMES.ora帮助)
SQL*Loader-704: Internal error: ulconnect: OCIServerAttach[0]
ORA-12545: Connect failed because target host or object does not exist
其余的时间,它立即连接没有任何问题。我们通过JDBC建立连接的应用程序似乎没有任何问题,但是当我们做一些tnsnames.ora查找(或者至少是我的预感)时,我们会做这些事情。 TNSPING工作100%,但使用像SQLLDDR这样的Oracle可执行文件至少有50%的时间不能运行。这是我们的TSNNAMES文件的匿名snppet和TNSPING输出:
DB_CONNECTION =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 1.2.3.4)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = MY.URL.COM)
)
)
而且TNSPING:
C:\>TNSPING DB_CONNECTION
TNS Ping Utility for 32-bit Windows: Version 9.2.0.1.0
Copyright (c) 1997 Oracle Corporation. All rights reserved.
Used parameter files:
C:\oracle\ora92\network\admin\sqlnet.ora
Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)
(HOST = 1.2.3.4)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = MY.URL.COM)))
OK (200 msec)
我有DB,这是该SID什么的JDBC连接依赖,但其添加到tnsnames.ora并不会提高建立连接的可能性。我不太了解Oracle如何使用tnsnames文件来智能地解决此问题,因此如果您有任何建议或看到明显缺少的内容,请让我知道。
编辑:新的DB可能是两个负载平衡的数据库,可能是问题的一部分。
您在博客中链接到您的文章(http://tardate.blogspot.com/2007/06/check-locallistener-if-you-run-rac.html)非常好。很高兴终于明白为什么会发生这种情况,以及如何解决这个问题 – 2009-07-10 21:24:48