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

Oracle SQL Developer连接报ORA-12505监听器未识别SID求助

故障根因

当前连接失败是多份配置不匹配、改错配置路径共同导致的:

  • 你编辑的是C盘路径下的listener.ora、tnsnames.ora,但监听器实际加载的是D盘D:\app\Faisal\product\11.2.0\dbhome_1\network\admin\路径下的配置文件,之前的修改完全没生效
  • 配置文件里写的监听端口是1522,但实际运行的监听器只监听1521端口
  • 你在SQL Developer里连接时填写的SID为orcl,但当前监听器实际注册的可用服务只有sd、sdXDB、CLRExtProc,不存在orcl对应的服务/SID,直接触发ORA-12505错误
  • 配置里写的IPC KEY为EXTPROC1522,实际监听器使用的IPC KEY是EXTPROC1521,导致lsnrctl访问1522对应的IPC端口时直接报无监听错误
修复步骤
  1. 以管理员身份打开CMD,执行命令停掉当前运行的监听器:
    lsnrctl stop
    
  2. 清理冗余配置:删除C盘路径下的Oracle网络配置文件,后续只修改D盘实际生效路径下的配置,避免多份配置冲突。
  3. 修改D盘network/admin路径下的listener.ora,统一路径、端口和实例配置,参考如下:
    SID_LIST_LISTENER =
     (SID_LIST =
     (SID_DESC =
      (SID_NAME = CLRExtProc)
      (ORACLE_HOME = D:\app\Faisal\product\11.2.0\dbhome_1)
      (PROGRAM = extproc)
      (ENVS = "EXTPROC_DLLS=ONLY:D:\app\Faisal\product\11.2.0\dbhome_1\bin\oraclr11.dll")
      )
     (SID_DESC =
      (GLOBAL_DBNAME = sd)
      (ORACLE_HOME = D:\app\Faisal\product\11.2.0\dbhome_1)
      (SID_NAME = sd)
      )
      )
    
      LISTENER =
      (DESCRIPTION_LIST =
       (DESCRIPTION =
       (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
      )
      (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
      )
      )
      ADR_BASE_LISTENER = D:\app\Faisal
    
    注意所有ORACLE_HOME路径必须替换为D盘的实际安装路径,不能保留C盘路径。
  4. 修改同路径下的tnsnames.ora,对齐端口、IPC KEY和服务名,参考如下:
    LISTENER_SD =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    
     ORACLR_CONNECTION_DATA =
     (DESCRIPTION =
      (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
      )
      (CONNECT_DATA =
      (SID = CLRExtProc)
      (PRESENTATION = RO)
      )
      )
    
      SD =
      (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
      (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = sd)
      )
      )
    
  5. 重启监听器,依次执行以下命令:
    lsnrctl start
    lsnrctl status
    
    检查输出结果,确认监听器加载的配置文件路径为D盘路径、监听端口为1521、服务列表中存在状态为READY的sd服务,即配置生效。
  6. 打开Oracle SQL Developer新建连接,按如下参数填写:
    • 主机名:localhost
    • 端口:1521
    • 连接标识选择服务名,填写sd(不要选择SID填orcl,当前本机不存在orcl实例,填写后必然报错)
    • 填写数据库用户名(如默认管理员用户system)和对应密码,点击测试即可正常连通。
注意事项
  • 后续修改Oracle监听配置前,先执行lsnrctl status查看输出的Listener Parameter File路径,仅修改该路径下的配置文件,修改其他路径的文件不会生效。
  • 如果确实需要使用orcl作为实例名,需要先通过DBCA工具新建名为orcl的数据库实例,当前本机仅存在名为sd的数据库实例。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 09:39:24