[特殊字符] Oracle 11g XE Docker 部署与备份恢复完整笔记
2026/9/23 10:42:13 网站建设 项目流程

一、环境准备

1.1 服务器信息

项目配置
操作系统Ubuntu/Debian
服务器 IP118.31.124.108
数据库版本Oracle 11g XE
容器名称oracle11g

1.2 创建数据持久化目录

sudomkdir-p/docker/oracle19c/oradatasudochmod777/docker/oracle19c/oradata

二、安装 Docker

2.1 更新软件包并安装 Docker

sudoaptupdatesudoaptinstalldocker.io-y

2.2 验证 Docker 版本

docker--version

2.3 将当前用户加入 docker 组(免 sudo 执行 docker 命令)

sudousermod-aGdocker$USER

执行后需要退出 MobaXterm 重新登录,或执行:

newgrpdocker

2.4 配置 Docker 镜像加速器(可选,提升下载速度)

sudomkdir-p/etc/dockersudotee/etc/docker/daemon.json<<-'EOF' { "registry-mirrors": [ "https://docker.mirrors.ustc.edu.cn", "https://hub-mirror.c.163.com" ] } EOFsudosystemctl daemon-reloadsudosystemctl restartdocker

三、部署 Oracle 11g XE

3.1 拉取并启动容器

dockerrun-d\--nameoracle11g\--restart=unless-stopped\-p1521:1521\-p8080:8080\-eORACLE_PASSWORD=oracle\-eORACLE_SID=XE\-eORACLE_CHARACTERSET=AL32UTF8\--shm-size=512m\-v/docker/oracle19c/oradata:/u01/app/oracle/oradata\gvenzl/oracle-xe:11.2.0.2

3.2 查看容器运行状态

dockerps|greporacle11g

3.3 查看启动日志(等待数据库初始化,约 2-3 分钟)

dockerlogs-foracle11g

看到Database ready to use. Enjoy!Completed: ALTER DATABASE OPEN表示启动完成。按Ctrl+C退出日志查看。

3.4 验证数据库连接

dockerexec-itoracle11g sqlplus system/oracle@XE

看到SQL>提示符表示成功。输入exit退出。

四、开放防火墙端口

4.1 开放 1521 端口

sudoufw allow1521/tcp

4.2 查看防火墙状态

sudoufw status

4.3 验证端口监听

netstat-tlnp|grep1521

4.4 测试端口连通性

telnet 服务器公网 IP1521

⚠️重要:云服务器还需在控制台开放安全组

  1. 登录阿里云/腾讯云控制台
  2. 进入安全组 → 入方向
  3. 添加规则:端口1521/1521,授权对象0.0.0.0/0

五、远程连接信息

项目配置
主机服务器公网 IP(如 118.31.124.108)
端口1521
SIDXE(选择 SID,不是服务名)
用户名system
密码oracle

六、数据库备份

6.1 创建备份目录

dockerexecoracle11gbash-c"mkdir -p /u01/app/oracle/dump && chmod 777 /u01/app/oracle/dump"

6.2 执行全量备份(使用 exp)

dockerexecoracle11g exp system/oracle@XE\FULL=Y\FILE=/u01/app/oracle/dump/full_backup.dmp\LOG=/u01/app/oracle/dump/full_backup.log

6.3 查看备份文件

dockerexecoracle11gls-la/u01/app/oracle/dump/

6.4 将备份文件拷贝到宿主机

dockercporacle11g:/u01/app/oracle/dump/full_backup.dmp ./dockercporacle11g:/u01/app/oracle/dump/full_backup.log ./

6.5 验证备份文件

ls-lafull_backup.*

七、数据库恢复

7.1 确保备份文件在容器内

dockercp./full_backup.dmp oracle11g:/u01/app/oracle/dump/

7.2 执行全量恢复

dockerexecoracle11g imp system/oracle@XE\FULL=Y\IGNORE=Y\FILE=/u01/app/oracle/dump/full_backup.dmp\LOG=/u01/app/oracle/dump/restore.log

7.3 查看恢复日志

dockerexecoracle11gcat/u01/app/oracle/dump/restore.log

7.4 验证恢复结果

echo"SELECT name, open_mode FROM v\$database;"|dockerexec-ioracle11g sqlplus system/oracle@XE

预期输出:XE READ WRITE

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询