Oracle 12c 精簡了 Enterprise Manager 架構,取消傳統的 Database Control,改以輕量級 EM Express (基於 XDB HTTP Server) 提供 Web 管理介面。預設埠口為 5500 (HTTPS) 或 5501 (HTTP),但因防火牆、SELinux、XDB 未啟動或埠口衝突,常導致 https://localhost:5500/em 無法存取。本文提供標準排查與修正步驟。
lsnrctl status 顯示無 HTTP / HTTPS 端點SELECT DBMS_XDB_CONFIG.GETHTTPPORT() FROM DUAL 回傳 0 (未設定)sqlplus / as sysdba -- 或 sqlplus sys/password@pdb_name as sysdba
SHOW PARAMETER dispatchers; /* 正常應顯示類似: NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ dispatchers string (PROTOCOL=TCP) (SERVICE=ORCLXDB) */ -- 若無輸出或 VALUE 為空,需設定: ALTER SYSTEM SET dispatchers='(PROTOCOL=TCP)(SERVICE=ORCLXDB)' SCOPE=BOTH;
-- 設定 HTTP 埠口 (明文,僅測試環境建議)
EXEC DBMS_XDB_CONFIG.SETHTTPPORT(8080);
-- 設定 HTTPS 埠口 (生產環境必須)
EXEC DBMS_XDB_CONFIG.SETHTTPSPORT(8443);
-- 驗證
SELECT DBMS_XDB_CONFIG.GETHTTPPORT() AS http_port,
DBMS_XDB_CONFIG.GETHTTPSPORT() AS https_port
FROM DUAL;
LSNRCTL STATUS
/* 應出現:
Service "ORCLXDB" has 1 instance(s).
Instance "ORCL", status READY, has 1 handler(s) ...
Handler(s):
"D000" established:0 refused:0 current:0 max:1022 state:ready
DISPATCHER (PROTOCOL=tcp) */
# Linux firewalld 範例 firewall-cmd --permanent --add-port=8080/tcp firewall-cmd --permanent --add-port=8443/tcp firewall-cmd --reload # Oracle Cloud / AWS Security Group:在 Inbound Rules 加入 8080, 8443 TCP
https://:8080/em https://:8443/em (首次會出現自簽憑證警告,選擇「繼續」)SYS / SYSTEM / PDB_ADMIN (勾選 AS SYSDBA 或 AS SYSOPER)| 檢查項目 | 指令/動作 | 預期結果 |
|---|---|---|
| XDB 元件是否有效 | SELECT COMP_NAME, STATUS FROM DBA_REGISTRY WHERE COMP_ID='XDB'; | STATUS = VALID |
| PDB 是否開啟 | SHOW PDBS / ALTER PLUGGABLE DATABASE ALL OPEN; | 所有 PDB 狀態 OPEN |
| Local Listener 參數 | SHOW PARAMETER LOCAL_LISTENER | 指向正確 Listener 位址 (如 (ADDRESS=(PROTOCOL=TCP)(HOST=...)(PORT=1521))) |
| SSL 錢包 | SELECT * FROM V$XDB_TRANSPORT_CONFIG; | HTTPS 埠口啟用時需有效 Wallet (可用 ORAPKI 建立) |
| EM Express 是否被手動停用 | EXEC DBMS_XDB_CONFIG.SETGLOBALPORTENABLED(TRUE); | 啟用全域埠口 |
| 項目 | 11g Database Control | 12c EM Express |
|---|---|---|
| 架構 | 獨立 Java EE 容器 (OC4J) + Agent | 資料庫內建 XDB HTTP Server (無獨立程序) |
| 埠口 | 1158 (HTTP) / 5500 (HTTPS) | 5500 (HTTPS) / 5501 (HTTP) 預設,可自訂 |
| 功能範圍 | 完整監控、效能、備份、資料庫配置 | 精簡版:效能、SQL、儲存、安全、資源管理器 |
| 部署複雜度 | 需獨立安裝、升級、備份 | 零安裝,資料庫升級自動遷移 |
| 支援 PDB | 不支援 | 原生支援 CDB/PDB 切換 |
EXEC DBMS_XDB_CONFIG.SETGLOBALPORTENABLED(TRUE); 確保全域啟用 (部分補丁會重置)。依照上述步驟設定 XDB HTTP/HTTPS 埠口並開放防火牆,即可解決 Oracle 12c EM Express 無法連線的 90% 以上案例。