Docker部署Oracle数据持久化问题
环境说明
kubernets集群部署 oracle
镜像所采用的是:wnameless/oracle-xe-11g
镜像地址是:https://hub.docker.com/r/oracleinanutshell/oracle-xe-11g
我是先下载到本地了
# 查看本地镜像
[root@k8s-master01 oracle11g]# docker images|grep oracleinanutshell
oracleinanutshell/oracle-xe-11g latest ad13c30ec346 2 years ago 2.13GB
[root@k8s-master01 oracle11g]#
数据持久化
现在想要实现数据持久化
这个镜像的oradata目录在这里/u01/app/oracle/oradata/XE
我是这样操作的:
先把容器中的这个路径下的所有文件都拷贝到宿主机
然后再把拷贝出的文件挂载到原先的目录下
操作如下:
先启动服务,生成数据文件
[root@k8s-master01 oracle11g]# docker run -d --name oracle11g -p 1521:1521 -e ORACLE_ALLOW_REMOTE=true oracleinanutshell/oracle-xe-11g
bb62b7f9eb09b976557afed98c7915b53f09d0161d4a9b38337262d9fb036767
[root@k8s-master01 oracle11g]# docker logs -f oracle11g
Starting Oracle Net Listener.
Starting Oracle Database 11g Express Edition instance.
System altered.
^C
[root@k8s-master01 oracle11g]#
看到 System altered 代表服务启动成功
把数据文件copy到宿主机
[root@k8s-master01 oracle11g]# docker cp oracle11g:/u01/app/oracle/ /data/oracle11g-data/
[root@k8s-master01 oracle11g]#
[root@k8s-master01 oracle11g]# ls /data/oracle11g-data/oracle/
admin diag fast_recovery_area oradata oradiag_oracle product
[root@k8s-master01 oracle11g]#
那么,oracle的数据文件已经copy到宿主机
清除刚启动的容器 oracle11g
[root@k8s-master01 oracle11g]# docker stop oracle11g
oracle11g

本文详细介绍了如何在Kubernetes环境下使用Docker部署Oracle-XE-11g数据库,并实现数据持久化。首先,通过启动容器生成数据文件,然后将其复制到宿主机。接着,清除容器并创建新的部署配置,将宿主机上的数据文件挂载回容器。最后,配置Service以通过NodePort访问Oracle数据库,确保了数据库在重启或更新后仍能保留数据。

713

被折叠的 条评论
为什么被折叠?



