Oracle 9i 起預設安裝 XDB (XML DB),其 HTTP/FTP 服務預設佔用 8080/2100 埠,與 Tomcat、JBoss、Jetty 等 Java 應用伺服器衝突。本文提供三種修改 XDB 埠號或停用服務的標準方法。
-- 以 SYSDBA 登入
sqlplus sys/password as sysdba
-- 修改 HTTP/WEBDAV 埠 8080 → 8081
BEGIN
DBMS_XDB.cfg_update(
updateXML(
DBMS_XDB.cfg_get(),
'/xdbconfig/sysconfig/protocolconfig/httpconfig/http-port/text()',
8081
)
);
END;
/
-- 修改 FTP 埠 2100 → 2111
BEGIN
DBMS_XDB.cfg_update(
updateXML(
DBMS_XDB.cfg_get(),
'/xdbconfig/sysconfig/protocolconfig/ftpconfig/ftp-port/text()',
2111
)
);
END;
/
COMMIT;
EXEC DBMS_XDB.cfg_refresh;
SELECT DBMS_XDB.cfg_get() FROM dual; 查看 XML 設定已更新。SPFILE.ORA (或 init.ora ),註解或移除:*.dispatchers='(PROTOCOL=TCP)(SERVICE=XDB)'
SQL> shutdown immediate
SQL> startup
-- 或 Windows 服務管理員重啟 OracleService
netca # Net Configuration Assistant
→ 刪除現有監聽器 → 新增監聽器 (預設 1521) → 完成
| 方案 | 適用場景 | 優點 | 缺點 |
|---|---|---|---|
| PL/SQL 修改埠口 | 需保留 XDB 功能 (WebDAV、Repository)、不想重啟 | 線上生效、精準控制 | 仍佔用埠口、XDB 仍消耗資源 |
| EM Console | 同方案一,偏好 GUI | 視覺化操作 | 需 EM 部署 |
| 停用 XDB (SPFILE) | 完全不使用 XDB、需徹底釋放 8080/2100 | 零資源佔用、根治衝突 | 需重啟、失去 XDB 功能、需重建監聽器 |