解决Oracle XE占用 Http 8080 端口问题

本文介绍如何通过sys管理员身份登录并使用dbms_xdb修改Oracle XDB的HTTP服务端口从8080更改为8081,以及FTP端口从2100更改为2111的方法。此外,还包括了重启相关服务和更新快捷方式的步骤。

Google获得的解决方案, 经过在本地Windows 7专业版 Oracle 11g XE 试验成功

Oracle创建数据库时默认包含了XDB特性,一旦启动了数据库和监听器,oracle的XDB的HTTP服务就占用8080端口。

1.用sys管理员身份登录,利用dbms_xdb修改端口设置

 SQL> -- Change the HTTP/WEBDAV port from 8080 to 8081
  SQL> call dbms_xdb.cfg_update(updateXML(
    2        dbms_xdb.cfg_get()
    3      , '/xdbconfig/sysconfig/protocolconfig/httpconfig/http-port/text()'
    4      , 8081))
    5  /

 SQL> -- Change the FTP port from 2100 to 2111
  SQL> call dbms_xdb.cfg_update(updateXML(
    2         dbms_xdb.cfg_get()
    3       , '/xdbconfig/sysconfig/protocolconfig/ftpconfig/ftp-port/text()'
    4       , 2111))
    5  /

  Call completed.

  SQL> COMMIT;

  Commit complete.

  SQL> EXEC dbms_xdb.cfg_refresh;

  PL/SQL procedure successfully completed.

2. 执行services.msc,进入服务,重启Oracle数据库相关的几个服务

3. 修改D:\oraclexe\app\oracle\product\11.2.0\server下的Get_Started快捷方式的值为http://127.0.0.1:8081/apex/f?p=4950,重新访问即可


### 安装 Oracle XE(Express Edition)在 Docker 中的步骤 可以通过使用第三方镜像或自定义配置快速部署 Oracle XE 数据库。以下为完整的安装和配置方法: Oracle Database XE 是一个轻量级数据库,适用于开发、测试和小型应用环境,对主机规模和 CPU 数量不作限制,但每个实例最多支持 11GB 用户数据、1GB 内存和一个 CPU[^2]。 可以使用 `sath89/oracle-xe-11g` 镜像进行部署。该镜像提供了较为稳定的 Oracle XE 环境,并支持持久化存储与端口映射。创建 `docker-compose.yml` 文件用于管理服务配置如下: ```yaml version: '2' services: oracle: image: sath89/oracle-xe-11g restart: always container_name: oracle volumes: - /my-docker-data/oracle-11g/data:/u01/app/oracle ports: - 1521:1521 ``` 执行以下命令启动容器服务: ```bash docker-compose up -d ``` 此方式会将 `/u01/app/oracle` 目录挂载到宿主机的 `/my-docker-data/oracle-11g/data`,实现数据持久化[^1]。 若需直接使用 `docker run` 命令部署,可参考如下示例: ```bash docker run -d \ --name oracle11g-xe \ --shm-size=1g \ -p 1521:1521 \ -p 8080:8080 \ -e ORACLE_PWD=oraclepwd \ -v /home/jiangzl/oracle/oradata:/u01/app/oracle/oradata \ oracle/database:11.2.0.2-xe ``` 此命令中设置了共享内存大小为 1GB,暴露了 1521(数据库连接)和 8080(EM Express)端口,并通过环境变量 `ORACLE_PWD` 设置数据库密码为 `oraclepwd`,同时将数据目录挂载到宿主机路径 `/home/jiangzl/oracle/oradata`[^4]。 对于 macOS 用户,也可以使用如下命令运行 Oracle XE 容器: ```bash docker run -h "oracle" --name "oracle" -d -p 49160:22 -p 49161:1521 -p 49162:8080 alexeiled/docker-oracle-xe-11g ``` 该命令映射了 SSH(49160)、数据库连接(49161)和 HTTP 端口(49162),适合远程调试和访问[^3]。 登录数据库时,默认用户名为 `system` 或 `sys`,密码通常为 `oracle` 或根据启动参数设定的值如 `oraclepwd`。可以通过以下命令进入容器并使用 SQL*Plus 登录: ```bash docker exec -it oracle sqlplus system/oracle@XE ``` 需要注意的是,由于 Oracle 官方未提供官方的 XE 版本 Docker 镜像,因此多依赖社区维护的镜像资源,例如 `wnameless/docker-oracle-xe-11g`,该镜像在 GitHub 上开源维护,适合学习和测试用途[^5]。 ### 注意事项 - **端口映射**:确保宿主机的 1521 端口未被占用,否则需调整映射端口号。 - **内存限制**:Oracle XE 对内存有严格限制,建议设置合适的共享内存(`--shm-size`)以避免性能问题。 - **数据持久化**:务必挂载数据卷以防止容器删除后数据丢失。 - **安全性**:默认密码较弱,建议在首次登录后修改为强密码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值