错误 12545:连接失败,因为尝试连接 sqlplus 时目标主机或对象不存在

Posted

技术标签:

【中文标题】错误 12545:连接失败,因为尝试连接 sqlplus 时目标主机或对象不存在【英文标题】:ERROR 12545 : Connect failed because target host or object doesn't exist while trying to connect sqlplus 【发布时间】:2021-04-11 19:55:55 【问题描述】:

我想安装 oracle 即时客户端,但在尝试远程数据库时遇到了问题。我总是收到错误 ORA-12545,但我的 oracle DB 处于活动状态并且工作正常。我已经启动了侦听器并在两侧配置 /etc/host。

这是我在 Oracle 数据库服务器上的 tnsnames.ora 配置:

ROLFSAN =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = ullabritta)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = rolf)
    )
  )

这是我在 oracle Instant 上的 tnsname.ora 配置:

SVEN = -- i give this name as i wish, there's no sven on oracle database
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = ullabritta)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = rolf)
    )
  )

我做错了吗?还是oracle数据库服务器有具体配置??

【问题讨论】:

【参考方案1】:

使用 IP 地址,而不是主机名。 Oracle客户端使用DNS解析名称,可能不使用hosts文件。

【讨论】:

您好,谢谢您的回答。我将其更改为 ip 地址它仍然无法正常工作,但如果我使用此 'sqlplus user/password@ipaddress:1521/rolf' 登录,它工作正常。通过任何改变你知道什么是错的吗?因为我需要确保 TNS 侦听器和 Oracle 实例可用于连接,以便通过 zabbix 通过 ODBC 监控 oracle。 您确定系统正在使用您认为的 tnsnames.ora 文件条目吗?使用 Bjarte Brandt 描述的方法,或者将 sqlnet.ora (docs.oracle.com/database/121/NETRF/sqlnet.htm#NETRF250) 中的 TRACE_LEVEL_CLIENT 参数设置为“SUPPORT”进行确认。【参考方案2】:

您可以将连接描述放在一行中并验证

sqlplus user/pass@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=ullabritta)(PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=rolf)))

接下来,确保您的客户端正在使用 strace 获取 tnsnames.ora 文件。 strace 将输出您的客户端正在执行的所有系统调用。

strace sqlplus user/pass@TNS_ALIAS

您可以将 tnsnames.ora 文件放在文件系统上您喜欢的任何位置。环境变量 TNS_ADMIN 会覆盖任何默认位置。

cat > tnsnames.ora <<EOF
MY_ALIAS=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=ullabritta)(PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=rolf)))
EOF
export TNS_ADMIN=./
sqlplus user/pass@MY_ALIAS

祝你好运!

【讨论】:

以上是关于错误 12545:连接失败,因为尝试连接 sqlplus 时目标主机或对象不存在的主要内容,如果未能解决你的问题,请参考以下文章

ORA-12545:因目标主机或对象不存在,连接失败

ORA-12545:因目标主机或对象不存在,连接失败!

转ora-12545:因目标主机或对象不存在,连接失败的解决办法 .

使用带有 node-oracledb 的 SID 连接到 Oracle DB 失败

Oracle 11gR2 RAC连接时ORA-12545错误

如何解决“连接尝试失败,因为连接方在一段时间后没有正确响应......”错误?