欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

centos7 在docker中使用oracle并配置持久化

程序员文章站 2022-06-02 18:27:54
...

拉取镜像

docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g

创建容器

在创建容器之前首先要在服务器或者虚拟机上创建一个data_temp的目录(当然这个名字可以随便取,看个人喜好),并且赋予可读写权限,为了下面运行容器做映射。

mkdir /usr/local/data_temp

chown -R 500.500 /usr/local/data_temp

创建一个文件目录,用于挂载到容器内,做oracle数据备份时数据存放的位置,保证备份数据不丢失。并将文件的权限给到 500.500 这个是在容器内的oracle用户的sid。不用管,后面会用到…

创建命令:

[[email protected] ~]# docker run -d --name oracle_11g -p 1521:1521 -v /usr/local/data_temp:/home/oracle/data_temp registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g

其中,oracle_11g是名称,-p是端口映射,-v是将宿主机的/usr/local/data_temp 目录映射到容器内的 /home/oracle/data_temp内。


编辑环境变量 vi /etc/profile 在文件的末尾添加一下内容

按i进入编辑模式,输入上述命令后,按ESC键退出编辑模式,再输入 :wq!保存退出

export ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_2
 
export ORACLE_SID=helowin
 
export PATH=$ORACLE_HOME/bin:$PATH

加载一下,使得修改生效。

[[email protected] ~]# source /etc/profile

查看容器

[[email protected] ~]# docker ps

输出

[[email protected] ~]# docker ps
CONTAINER ID        IMAGE                                                  COMMAND                  CREATED             STATUS              PORTS                    NAMES
d81351c03420        registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g   "/bin/sh -c '/home/o…"   41 minutes ago      Up 41 minutes       0.0.0.0:1521->1521/tcp   oracle_11g

NAMES 下看的到一个名字 oracle_11g

进入容器

可以通过名字或者id都行。

[[email protected] ~]# docker exec -it oracle_11g /bin/bash

进入以后加载一下用户环境变量

[[email protected] /]$ source ~/.bash_profile

接下来依次进行:

sqlplus /nolog            ## 使用sqlplus 工具,进去命令行

SQL> connect /as sysdba                         ## 使用sysdba 连接oracle,最大权限,os认证,只能在本机上登陆使用。

SQL> alter user system identified by oracle;    ## 修改用户 system 的密码为 oracle ,oracle可以自定义

持久化

SQL> create or replace directory DATA_TEMP as '/home/oracle/data_temp';            

 ## 将挂载进来的目录/home/oracle/data_temp创建到oracle的directoy中。

创建之后,导出的数据可以指定导出到这个目录,那么数据可以直接在宿主机上的对应目录中拿到,持久化保存。另外需要导入的数据文件也是直接放到这个目录,在容器中则可以调用impdp命令进行导入;至此,基础的操作配置已完成,你可以重新提交这个容器作为新的镜像以保存修改。


自此已经可以进行连接了!

连接参考
持久化参考