You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ORA-12505报错:监听器无法识别连接描述符中给定SID如何排查

ORA-12505错误的本质是数据库监听进程运行时,未在自身注册列表中匹配到客户端连接串指定的SID,可按照以下方向逐层排查:

第一步:验证监听当前注册的SID列表

在数据库所在服务器执行lsnrctl status命令,查看输出的Services Summary段落,确认你使用的SID是否在已注册的服务列表中。如果未出现,说明数据库实例未成功注册到监听。

第二步:排查实例注册问题
  • 确认数据库实例处于运行状态:Windows系统检查服务列表中OracleService<你的SID>是否为启动状态;Linux/Unix系统执行ps -ef | grep pmon,确认存在对应SID的pmon进程。
  • 若实例已运行,手动触发注册:使用sysdba身份登录数据库,执行alter system register;,等待10秒后再次执行lsnrctl status查看SID是否已出现在注册列表中。
  • 检查local_listener参数配置:登录数据库执行show parameter local_listener,如果返回值非空,确认参数值指向的监听地址、端口和listener.ora中的实际配置完全一致,配置错误会导致实例无法注册到指定监听。
第三步:排查客户端连接配置问题
  • 确认tnsnames.ora中HOST参数填写的是数据库服务器的正确IP/主机名,使用主机名时要保证客户端能正常解析到对应IP。
  • 确认tnsnames.ora中PORT参数和listener.ora里监听的端口完全一致,默认端口为1521,修改为自定义端口后要同步更新客户端配置。
  • 检查连接串拼写:如果使用直连模式不依赖tnsname,确认连接串中SID字段无拼写错误、前后无多余空格或特殊字符。
第四步:排查监听配置异常
  • 重载监听配置:如果修改过listener.ora后未重启监听,执行lsnrctl reload重载配置,或执行lsnrctl stop、lsnrctl start完整重启监听后再测试连接。
  • 校验静态注册配置:如果使用静态注册方式,确认listener.ora的SID_LIST配置段中,SID_NAME和GLOBAL_DBNAME和实际的数据库SID、服务名完全匹配,大小写敏感的操作系统要注意大小写完全一致。

内容的提问来源于stack exchange,提问作者Ezazulian

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 14:54:01