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

解決 Oracle XDB 服務佔用 8080 端口衝突的三種方法

     編輯:Oracle 資料庫基礎

問題背景

Oracle 9i 在建立資料庫時預設會啟用 XDB 功能。一旦資料庫與監聽器啟動,XDB 的 HTTP 服務便會佔用 8080 端口,這與 JBoss、Tomcat 等常見應用伺服器的預設端口衝突。由於 XDB 的端口設定儲存在資料庫內部而非配置檔案中,修改方式略有不同。

方法一:使用 DBMS_XDB 套件修改端口(推薦)

以 SYS 權限登入 SQL*Plus,執行以下 PL/SQL 區塊即可分別修改 HTTP 與 FTP 端口:

-- 將 HTTP/WEBDAV 端口從 8080 改為 8081
CALL dbms_xdb.cfg_update(
  updateXML(
    dbms_xdb.cfg_get(),
    '/xdbconfig/sysconfig/protocolconfig/httpconfig/http-port/text()',
    8081
  )
);
/
COMMIT;

-- 將 FTP 端口從 2100 改為 2111
CALL dbms_xdb.cfg_update(
  updateXML(
    dbms_xdb.cfg_get(),
    '/xdbconfig/sysconfig/protocolconfig/ftpconfig/ftp-port/text()',
    2111
  )
);
/
COMMIT;

-- 重新載入配置使其生效
EXEC dbms_xdb.cfg_refresh;

方法二:透過 OEM Console 圖形介面修改

在 Oracle Enterprise Manager Console 中依序選擇:目標資料庫 → XML Database → Configuration,即可視覺化調整 XDB 相關設定。

方法三:停用 XDB 服務(徹底解決端口衝突)

若不需要 XDB 功能,可直接停用其 Dispatcher:

  1. 編輯參數檔 $ORACLE_HOME/dbs/init.ora(Linux)或 oracle\admin\SID\pfile\init.ora(Windows)
  2. 移除或註釋掉以下行:
    dispatchers='(PROTOCOL=TCP) (SERVICE=XDB)'
  3. 以 SYSDBA 身分執行:
    CREATE SPFILE FROM PFILE;
    STARTUP;

實戰案例分享

作者在 Windows 2000 環境安裝 MapXtreme for Java 4.7 時,Tomcat 啟動失敗,發現 8080 端口被佔用。瀏覽器訪問 https://192.168.0.5:8080 提示「領域:XDB」,確認為 Oracle XDB 服務。因 SYS 密碼遺失,無法使用方法一;方法二、三嘗試失敗。最終使用 PL/SQL Developer 以 DBA 身分登入,成功執行方法一的 SQL 指令,Tomcat 即恢復正常啟動。

建議:若不使用 XML DB 功能,方法三最徹底;需保留 XDB 時,方法一最靈活且無需重啟資料庫即可生效(執行 cfg_refresh 後)。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved