首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 教學

Oracle 12c Enterprise Manager Express (EM Express) 連線問題解決:設定 XDB HTTP/HTTPS 埠口

     編輯:Oracle 教學

Oracle 12c Enterprise Manager Express (EM Express) 連線問題解決:設定 XDB HTTP/HTTPS 埠口

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 (未設定)

核心解決步驟

  1. 以 SYSDBA 連線
    sqlplus / as sysdba
    -- 或
    sqlplus sys/password@pdb_name as sysdba
  2. 檢查 Dispatcher 設定 (12c 多執行緒架構需 Dispatcher 代理 XDB 請求)
    SHOW PARAMETER dispatchers;
    /* 正常應顯示類似:
    NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------------------------------
    dispatchers                          string      (PROTOCOL=TCP) (SERVICE=ORCLXDB) */
    -- 若無輸出或 VALUE 為空,需設定:
    ALTER SYSTEM SET dispatchers='(PROTOCOL=TCP)(SERVICE=ORCLXDB)' SCOPE=BOTH;
  3. 設定 HTTP/HTTPS 埠口 (建議使用非預設埠口避開衝突,如 8080/8443)
    -- 設定 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;
  4. 確認 XDB 服務已向 Listener 註冊
    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) */
  5. 防火牆/雲端安全群組開放埠口
    # 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
  6. 瀏覽器存取驗證
    • HTTP:https://:8080/em
    • HTTPS: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);啟用全域埠口

12c vs 11g 架構差異快速對照

項目11g Database Control12c EM Express
架構獨立 Java EE 容器 (OC4J) + Agent資料庫內建 XDB HTTP Server (無獨立程序)
埠口1158 (HTTP) / 5500 (HTTPS)5500 (HTTPS) / 5501 (HTTP) 預設,可自訂
功能範圍完整監控、效能、備份、資料庫配置精簡版:效能、SQL、儲存、安全、資源管理器
部署複雜度需獨立安裝、升級、備份零安裝,資料庫升級自動遷移
支援 PDB不支援原生支援 CDB/PDB 切換

最佳實踐建議

  • 生產環境強制啟用 HTTPS,並匯入 CA 簽署憑證 (避免瀏覽器警告)。
  • 埠口避開常用服務 (80/443/1521/8080),建議 8443/9443 等高位埠口。
  • 定期執行 EXEC DBMS_XDB_CONFIG.SETGLOBALPORTENABLED(TRUE); 確保全域啟用 (部分補丁會重置)。
  • 若需完整監控功能 (告警、自動化作業、雲端管理),請部署 Oracle Management Cloud 或 Enterprise Manager 13c 獨立版。

依照上述步驟設定 XDB HTTP/HTTPS 埠口並開放防火牆,即可解決 Oracle 12c EM Express 無法連線的 90% 以上案例。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved