docker搭建oracle服务持久化数据

1. 抛出问题

前面我们用docker搭了一个oracle服务
但是突然间想到了一个问题,如果把容器删除了,那新建的表空间,用户,表,等等的信息就一并消失了,我这里只是刚刚搭建,完全可以推倒重来,但是如多已经是在线跑了好久的数据库来说,简直是灾难啊,因为你的数据都随着容器的消失而消失.

2. 解决方法

虽然运行中的容器也可以进行动态进行关联volume,但是个人目前还没掌握,所以有需要的可以自行搜索
启动容器时,通过docker的volume使宿主机的目录与容器的目录进行关联.

1)创建本地目录

sudo mkdir -p -m 755 db/oracle

这里需要注意的是,创建之后需要将目录及其子文件的uidgid改为docker容器中的安装oracle的用户的uid及gid`否则关联后,在容器中是所属与root的.

sudo chown -R 440:200 db/oracle

2)拷贝数据库文件

将容器中,/opt/oracle/app目录拷贝到上面创建的目录中.

# linux命令下
sudo docker cp oracle11g:/opt/oracle/app /home/shuu/db/oracle/

文件很大5.4G,我这里还只是一个新的环境,拷贝之前请断开所有与数据库的连接.
在这里插入图片描述
在关掉容器之前我还特意解锁了scott用户,并且在emp表中添加了数据.

alter user scott account unlock;
alter user scott identified by tiger;
INSERT INTO SCOTT.EMP (EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO) VALUES 
(1,'test','CLERK',666,TIMESTAMP '1982-01-23 00:00:00.000000',66,6,10)
;

在这里插入图片描述

3)退出,关闭,并删除容器

# 退出oracle用户
exit
# 退出容器
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值