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

Docker部署Oracle 18c后SQL Developer连接报ORA-12514错误求助

解决ORA-12514: 监听程序无法识别连接描述符中请求的服务

1. 确认容器初始化完成

Oracle XE 18c容器启动后需要10-20分钟完成数据库初始化,后台运行不代表可用。通过日志确认就绪状态:

sudo docker logs -f oracle18c

等待日志输出DATABASE IS READY TO USE!后再尝试连接。

2. 核对连接服务名

你启动容器时指定了ORACLE_PDB=orcl,因此:

  • 连接PDB时,服务名填orcl
  • 连接CDB时,服务名填XE
    注意Oracle 12c+优先使用服务名,不要混淆SID和服务名。

3. 检查容器内监听状态

进入容器验证监听是否正常运行:

sudo docker exec -it oracle18c bash
su - oracle
lsnrctl status

正常输出应显示LISTENER状态为READY,且包含XE和orcl的服务注册信息。

4. 验证端口映射有效性

确认宿主机1521端口被容器占用:

sudo netstat -tulpn | grep 1521

若未看到docker-proxy相关进程,说明端口映射失败,重启容器:

sudo docker restart oracle18c

5. 修正SQL Developer连接配置

连接配置需注意:

  • 连接类型:选择Basic
  • 主机名:填Ubuntu虚拟机的IP(跨设备连接时)或localhost(虚拟机内本地连接)
  • 端口:1521
  • 服务名:orcl(对应你设置的PDB)
  • 用户名:用SYS/SYSTEM时,连接角色选SYSDBA
  • 密码:你设置的password

6. 检查数据库实例与PDB状态

若监听正常但服务未注册,进入容器检查数据库状态:

sudo docker exec -it oracle18c sqlplus / as sysdba

执行以下SQL确认状态:

SELECT status FROM v$instance;
SELECT name, open_mode FROM v$pdbs;

确保实例状态为OPEN,PDBORCL的OPEN_MODE为READ WRITE。若PDB未打开,执行:

ALTER PLUGGABLE DATABASE orcl OPEN;
ALTER PLUGGABLE DATABASE orcl SAVE STATE;

内容的提问来源于stack exchange,提问作者Carles Sastre Pérez

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 20:27:30