日期:2014-05-17  浏览次数:23183 次

ORA-12545: Connect failed because target host or object does not exist
两台服务器,其中一台是应用服务器,另一台是数据库服务器,互相可以ping通IP地址或FQDN
应用服务器可以telnet数据库的1521端口
应用服务器上的ora文件内容如下:
listener.ora
# listener.ora Network Configuration File: /u01/app/oracle/product/11.1.0/db_1/network/admin/listener.ora
# Generated by Oracle configuration tools.

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = 应用服务器FQDN)(PORT = 1521))
    )
)


tnsname.ora
XXX =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 数据库IP地址)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = xxx)
    )
  )

XXX_数据库主机名 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 数据库IP地址)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = xxx)
    )
)


数据库服务器上的ora文件内容如下:
listener.ora
# listener.ora Network Configuration File: /u01/app/oracle/product/11.1.0/db_1/network/admin/listener.ora
# Generated by Oracle configuration tools.

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = 数据库FQDN)(PORT = 1521))
    )
)


tnsname.ora
# tnsnames.ora Network Configuration File: /u01/app/oracle/product/11.1.0/db_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.

XXX =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 数据库FQDN)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = xxx)
    )
)


在应用服务器上尝试使用sqlplus命令访问数据库,出现标题所示的错误信息。
在数据库服务器上使用sqlplus命令无问题

已经尝试过修改应用服务器上的ora文件中的HOST为数据库的IP或FQDN,错误依旧

------解决方案--------------------
lisntener 和 tnsnames 都用 ip 地址
------解决方案--------------------
是RAC环境吗?如果是这个错误可能是个bug
------解决方案--------------------
你全部写成IP地址。。。
------解决方案--------------------
在应用服务器上尝试使用sqlplus命令访问数据库,出现标题所示的错误信息

应用服务器上如何操作的?

sqlplus 用户名/密码@XXX_数据库主机名
------解决方案--------------------