Oracle 21c连接SQL Developer遇ORA-12505错误求助
解决Oracle 21c连接SQL Developer时的ORA-12505错误
ORA-12505错误的核心是监听器无法识别你在连接描述符中指定的SID,以下是针对性解决步骤:
确认数据库实际SID
使用SQL*Plus以sysdba身份登录:sqlplus / as sysdba执行查询获取当前实例的真实SID:
select instance_name from v$instance;记录返回的
instance_name,这是SQL Developer中需要使用的正确SID。检查监听器的服务注册状态
打开命令行执行监听器状态命令:lsnrctl status在输出的
Services Summary部分,查看是否存在与你SID匹配的服务。如果没有,手动将数据库注册到监听器:- 保持SQL*Plus的sysdba会话,执行:
alter system register; - 再次执行
lsnrctl status确认服务已注册。
- 保持SQL*Plus的sysdba会话,执行:
修正SQL Developer的连接配置
在SQL Developer的连接属性中:- 确保
SID字段填写的是第一步获取到的真实SID,而非自定义的错误名称。 - 若连接的是Oracle 21c的PDB(可插拔数据库),建议将连接类型改为服务名,并填写PDB的服务名(默认通常为
ORCLPDB1,可通过select name from v$pdbs;查询)。
- 确保
验证tnsnames.ora配置(可选)
若使用TNS名称连接,检查ORACLE_HOME/network/admin/tnsnames.ora文件中的配置,确保SID或服务名与实际一致,示例配置:ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SID = ORCL) -- 替换为你的真实SID ) )重启相关服务
- Windows:打开服务管理器,重启
OracleOraDB21Home1TNSListener和OracleService[你的SID]服务。 - Linux/Unix:执行以下命令重启监听器和数据库:
lsnrctl stop lsnrctl start sqlplus / as sysdba << EOF shutdown immediate; startup; EOF
- Windows:打开服务管理器,重启
内容的提问来源于stack exchange,提问作者Zagmania
相关产品推荐
相关产品推荐

