ORA-12518:TNS:监听程序无法分发客户机连接

最近遇到一个 Oracle 数据库连接问题很奇怪,配置好的 Oracle 无法连接,远程和本地都不可以,但配置方法用过很多次,同时配置了两台服务器一台可以另一台不行,操作步骤一模一样,排查了2个多小时最后发现是一个小地方出了问题,记录一下。

问题描述

连接错误信息:ORA-12518: TNS:监听程序无法分发客户机连接

DBMS: Oracle (版本 Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0)
区分大小写: 普通形式=upper,分隔形式=exact
驱动程序: Oracle JDBC driver (版本 23.5.0.24.07,JDBC4.3)
[66000][12518]
ORA-12518: TNS:监听程序无法分发客户机连接 (CONNECTION_ID=iwhs6oT4Q6GiAI0qcqdIkQ==)
https://docs.oracle.com/error-help/db/ora-12518/.

排查过程

查看监听服务状态

lsnrctl service

20251101_085804.png

尝试解决

  • 调整 process 和 session 值,未解决。
  • 修改dispatchers个数,未解决。
  • LISTENER.ORA 的头部加入 DIRECT_HANDOFF_TTC_LISTENER = OFF,未解决。

最终解决

查看日志:d:/oracle/diag/rdbms/orcl/orcl/trace/alert_orcl.log

发现以下异常日志:TNS-12560: TNS: 协议适配器错误

20251101_090038.png

$ORACLE_HOME/network/admin下的listener.oratnsnames.ora,确保主机名、端口、服务名与实际环境(如hosts文件和下方 SQL 查询的数据)一致。

select host_name from v$instance;

通过以上 SQL 查到 host_name 为 SPM-SRV-DCJC-DE,而实际服务器主机名为 SPM-SRV-DCJC-DEV,最后少了一位导致不一致。

重新修改主机名后重启,问题解决。

🏝️~

最后修改:2025 年 11 月 01 日 09 : 02 AM
如果觉得我的文章对你有用,请随意赞赏

发表评论