Docker 部署全新 Oracle 11g
Docker 部署 Oracle 11g 步骤
拉取镜像:
sudo docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g sudo docker images启动临时容器:
sudo docker run -d -it -p 1521:1521 --name oracle11g --restart=always registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g sudo docker ps拷贝持久化文件到宿主机:
sudo mkdir -p /home/oracle/oradata sudo docker cp oracle11g:/home/oracle/app/oracle/oradata/helowin /home/oracle/oradata/helowin sudo docker cp oracle11g:/home/oracle/app/oracle/flash_recovery_area/helowin /home/oracle/oradata/flash_recovery_area移除容器并重新运行:
sudo docker stop oracle11g sudo docker rm oracle11g sudo docker run -d -it -p 1521:1521 --name oracle11g --restart=always -v /home/oracle/oradata/helowin:/home/oracle/app/oracle/oradata/helowin -v /home/oracle/oradata/flash_recovery_area:/home/oracle/app/oracle/flash_recovery_area/helowin registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g进容器修改挂载路径权限:
sudo docker exec -it oracle11g bash su - root # 密码是helowin sudo chown -R oracle /home/oracle/app/oracle/flash_recovery_area/helowin sudo chown -R oracle /home/oracle/app/oracle/oradata/helowin重启容器并查看日志:
sudo docker restart oracle11g sudo docker logs oracle11g修改 Oracle 密码:
sudo docker exec -it oracle11g bash cd # 切换到oracle的家目录 source .bash_profile # 直接生效环境变量 ln -s $ORACLE_HOME/bin/sqlplus /usr/bin登录 SQLPlus 并修改用户密码:
sqlplus / as sysdba alter user system identified by oracle2024; alter user sys identified by oracle2024; ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED; exit;
总结
使用 Docker 部署 Oracle 11g 需要拉取镜像、创建容器、配置持久化存储和设置权限。
通过 SQLPlus 登录后可以修改用户密码和配置环境变量。
这些步骤可以帮助你在 Docker 中成功部署 Oracle 11g。
如果你想使用 expdp 工具备份整个 Oracle 数据库,你可以按照以下步骤进行备份操作:
在容器内执行 expdp 命令备份数据库:
首先,你需要进入 Oracle 11g 的容器内部,然后使用
expdp命令进行数据库备份。例如,你可以执行类似以下命令:sudo docker exec -it oracle11g bash expdp system/oracle2024@ORCL full=Y directory=DATA_PUMP_DIR dumpfile=full_backup.dmp logfile=full_backup.log这里的
full=Y表示全库备份,directory=DATA_PUMP_DIR指定备份文件的目录,dumpfile=full_backup.dmp指定备份文件的名称,logfile=full_backup.log指定日志文件名称。将备份文件复制到宿主机:
一旦备份完成,你可以使用
docker cp命令将备份文件从容器复制到宿主机上的一个目录中,例如之前你创建的持久化数据目录:sudo docker cp oracle11g:/path_to_backup/full_backup.dmp /home/oracle/oradata/backups/ sudo docker cp oracle11g:/path_to_log/full_backup.log /home/oracle/oradata/backups/这样,你就可以将备份文件保存到宿主机上的指定目录中。
备份到宿主机的目录:
是的,你可以将备份文件保存到对应宿主机的目录下,这样即使删除容器后,备份文件仍然会保留在宿主机上,确保数据的持久性和安全性。
通过这些步骤,你就可以使用 expdp 工具备份整个 Oracle 数据库,并将备份文件保存到宿主机的指定目录下。备份文件的保存位置可以根据你的需求进行调整。