docker 版本安装oracle 11g【宿主机数据库文件映射容器内部数据库文件】

前言:一次项目采用docker部署oracle11g,公司提供的没有映射宿主机数据库镜像文件,这样出现容器坏掉,数据库文件就不复存在,所以网上研究了下,如何实现宿主机数据库文件映射容器内部数据库文件。


1、制作镜像文件


1)拉取镜像

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


2)导出镜像

docker save -o oracle_11g.tar registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g:latest


2、离线安装教程


1)加载镜像

docker load < oracle_11g.tar


2)先创建一个临时容器


docker run --name oracle_temp -p 1500:1521 --privileged=true -d registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g:latest 

#把临时容器中的oradata目录拷贝到正式容器要挂在的目录拷贝容器中的oradata目录

mkdir -p /data/app/oracle/oradata

docker cp oracle_temp:/home/oracle/app/oracle/oradata/ /data/app/oracle

#修改挂载目录所属用户和用户组

chown -R 500:500 /data/app/oracle/oradata/

#删除临时容器

docker rm -f oracle_temp


3)创建正式容器


命令:docker run --name hs_oracle -p 1521:1521 --privileged=true -d -v /data/app/oracle/oradata:/home/oracle/app/oracle/oradata registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g:latest

#进入容器

docker exec -it hs_oracle bash

#删除

rm -rf /home/oracle/app/oracle/flash_recovery_area/helowin/control02.ctl

#拷贝

cp /home/oracle/app/oracle/oradata/helowin/control01.ctl /home/oracle/app/oracle/flash_recovery_area/helowin/control02.ctl

#退出

exit;

# 重启

docker restart hs_oracle

#进入容器

docker exec -it hs_oracle bash

#环境变量

source ~/.bash_profile

sqlplus / as sysdba

#登录sqlplus

#修改system用户账号

alter user system identified by system;

#修改sys用户账号

alter user sys identified by system;

#创建内部管理员账号,创建一个用户名为golaxy_orcl的用户,密码为 oracle_cn

#create user golaxy_orcl identified by oracle_cn;

#将dba权限授权给内部管理员账

grant connect,resource,dba to golaxy_orcl;

#修改密码规则策略为密码永不过期

ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;

#修改数据库最大连接数据

alter system set processes=1000 scope=spfile;

shutdown immediate;

startup;


3、创建表空间


#进入容器

docker exec -it hs_oracle bash

#登录

source ~/.bash_profile

sqlplus / as sysdba

#创建表空间

create tablespace hs_dev datafile '/home/oracle/app/oracle/oradata/helowin/hs_dev.dbf 'size 500m autoextend on next 10m maxsize unlimited;


以上!谢谢

你可能感兴趣的:(docker 版本安装oracle 11g【宿主机数据库文件映射容器内部数据库文件】)