根本原因是em express默认未启用,需手动配置https端口(如5500)、确保xdb组件有效、处理自签名证书警告、正确指定cdb/pdb访问路径,并开放系统防火墙端口。

Oracle 19c安装后无法打开EM控制台,根本原因不是“没装好”,而是默认压根没启用EM Express,且旧版dbconsole在19c中已被彻底移除。你看到的“EM”入口,其实是轻量级的EM Express(非OEM Cloud Control,也非10g/11g时代的dbconsole),它不依赖独立进程,但必须手动配置HTTPS端口并确保XDB组件启用。
EM Express端口未配置或返回0
执行 SELECT DBMS_XDB_CONFIG.getHttpsPort() FROM DUAL; 返回 0,说明EM Express处于“待激活”状态——它已随数据库内置,但没分配门牌号。
常见错误现象:浏览器访问 https://host:5500/em 显示连接被拒绝、空白页或ERR_CONNECTION_REFUSED。
- 必须用
SYS用户连接执行:EXEC DBMS_XDB_CONFIG.SETHTTPSPORT(5500); COMMIT; - 端口选5500是惯例,但可换为5501、5502等,只要不被
netstat -tuln | grep :xxx占用 - 若返回空值或报错
ORA-31061: XDB error,说明XDB组件未加载,需运行:ALTER DATABASE OPEN; ALTER PLUGGABLE DATABASE ALL OPEN;并确认SELECT COMP_NAME, STATUS FROM DBA_REGISTRY WHERE COMP_NAME LIKE '%XML%';中XDB状态为VALID
HTTPS证书被浏览器拦截,误以为打不开
Oracle 19c EM Express强制走HTTPS,且默认使用自签名证书。Chrome/Firefox会直接拦在“您的连接不是私密连接”页面,点“高级→继续前往…”才能进——这不是故障,是预期行为。
常见错误现象:地址栏显示红色警告、页面空白、F12看Network卡在em/请求pending。
- 不要尝试用
http://访问——19c已禁用HTTP端口(SETHTTPPORT()在19c中无效或不被支持) - 若需绕过证书检查(仅限测试环境),可用curl验证服务是否真活:
curl -k https://localhost:5500/em/status,返回200 OK即表示EM Express已就绪 - 生产环境应导入数据库证书到客户端信任库,或配置反向代理(如Nginx)终止SSL并透传
多租户环境下访问路径不对
在CDB+PDB架构中,EM Express默认只监听CDB$ROOT,访问https://host:5500/em只能管理CDB;想进某个PDB(比如PDB1),URL必须带参数:https://host:5500/em/?_p=PDB1。
常见错误现象:能打开CDB页面,但找不到PDB对象;或切换PDB时提示“Invalid container name”。
- 先确认PDB已OPEN:
SELECT NAME, OPEN_MODE FROM V$PDBS; - 确保PDB名大小写与URL中一致(Oracle默认大写,但URL参数区分大小写)
-
_p=参数是EM Express硬编码识别方式,不能改;也不能用service_name或tnsnames.ora别名替代
防火墙或SELinux阻断了5500端口
即使数据库内配置完成,Linux系统层仍可能拦住外部访问。Ubuntu/CentOS/RHEL上常被忽略的是iptables、ufw或SELinux的http_port_t上下文限制。
常见错误现象:本地curl -k https://localhost:5500/em成功,但从另一台机器访问失败。
- Ubuntu用:
sudo ufw allow 5500 - RHEL/CentOS 7+用:
sudo firewall-cmd --permanent --add-port=5500/tcp && sudo firewall-cmd --reload - SELinux下还需确认端口类型:
sudo semanage port -l | grep http,若5500不在列表中,加一句:sudo semanage port -a -t http_port_t -p tcp 5500
关键点始终落在:EM Express不是“启动服务”,而是“激活内置功能”。它没有emctl命令,不写入Windows服务,也不生成$ORACLE_HOME/sysman/log日志。所有问题都收束在端口、证书、容器上下文和系统网络这四层。漏掉任意一层,都会让你以为“EM打不开”。











