EM Express端口未启用时dbms_xdb_config.getHttpsPort()返回0,需执行EXEC DBMS_XDB_CONFIG.SETHTTPSPORT(5500);并确认XDB服务启用、监听器加载ORCLXDB、端口未被占用、防火墙放行5500且SELinux允许、URL使用https://:5500/em。
EM Express端口没启用或被占用
oracle 21c安装后em express默认不自动开启https端口,dbms_xdb_config.gethttpsport()返回0就说明它根本没配——这不是服务没启动,是压根没启用xdb的http/https调度器。
实操建议:
- 用
sqlplus / as sysdba执行:EXEC DBMS_XDB_CONFIG.SETHTTPSPORT(5500);(5500是常用端口,也可选5501等) - 确认监听器已加载XDB服务:运行
lsnrctl status,输出里必须有类似Service "ORCLXDB" has 1 instance(s)的行;没有就说明dispatchers="(PROTOCOL=TCP)(SERVICE=ORCLXDB)"没写进init.ora或spfile里 - 检查端口是否被占:
netstat -ano | findstr :5500(Windows)或ss -tlnp | grep :5500(Linux),若PID非Oracle进程,先查清用途再决定是否释放
防火墙或SELinux拦截了5500端口
即使数据库内部端口开了,外部请求也可能在系统层被拦住。尤其在CentOS/RHEL上,firewalld和SELinux默认会拒绝5500端口的入站连接,跟1521端口无关。
实操建议:
- 临时放行(验证用):
sudo firewall-cmd --add-port=5500/tcp --permanent && sudo firewall-cmd --reload - SELinux需额外允许HTTP端口:
sudo semanage port -a -t http_port_t -p tcp 5500(若semanage未安装,先yum install policycoreutils-python-utils) - Windows Server上别只关防火墙图形界面——得确认
Windows Defender Firewall with Advanced Security里“入站规则”对5500端口显式允许,且规则作用域含“域、专用、公用”
访问URL用错协议或主机名
EM Express强制走HTTPS,http://开头必失败;同时它绑定的是数据库监听的主机名/IP,不是你浏览器当前所在机器的网络配置。
常见错误现象:
- 浏览器报
ERR_CONNECTION_REFUSED→ 端口不通或服务未启 - 报
NET::ERR_CERT_INVALID→ HTTPS证书问题,但页面能加载说明端口通了 - 报
This site can’t be reached且telnet your-host-ip 5500失败 → 主机名解析或防火墙问题
实操建议:
- URL必须为
https://:5500/em,不能用localhost(除非你在数据库本机访问) - 确认
listener.ora中HOST值与你访问时用的地址一致;改过IP或主机名后,必须同步更新listener.ora并执行lsnrctl reload - 首次访问时浏览器会提示证书不受信任——点“高级”→“继续前往...”即可,这是自签名证书的正常行为,不是配置错误
用户权限不足或XDB组件异常
EM Express依赖XDB schema提供Web服务,如果XDB没启用或用户没角色,登录页可能空白或直接跳401。它不报错,只是静默拒绝。
实操建议:
- 检查XDB状态:
SELECT comp_name, status FROM dba_registry WHERE comp_name = 'XML Database';,返回VALID才正常 - SYS/SYSTEM能登不代表其他用户能登——非SYS用户需显式授权:
GRANT EM_EXPRESS_BASIC TO your_user; - 若XDB状态非VALID,尝试重启数据库:
SHUTDOWN IMMEDIATE; STARTUP;;仍无效则运行@?/rdbms/admin/xdbrelod.sql重载XDB - 注意:XE版本默认禁用部分XDB功能,若用XE,确认安装时没跳过
oracle-database-preinstall-21c包,否则libxml2等底层依赖缺失会导致XDB初始化失败
Oracle 21c的EM Express不是独立进程,它卡在数据库内核、监听器、网络策略、用户权限四个环节中的任意一个都会表现为“无法访问”,而日志往往只报ORA-01017或干脆无响应。最易忽略的是:改过服务器IP后,listener.ora没同步、firewalld规则没重载、浏览器还记着旧证书缓存——三者叠加,排查时容易反复验证同一环节。











