docker安装Oracle 11g 数据库并挂载数据卷永久存储

Docker安装Oracle 11g 数据库并挂载数据卷永久存储

工作中经常遇到在linux中安装oracle11gR2数据库,安全起来很麻烦,也很容器出错,老是安装失败,在这里我给大家接受一个用docker安装Oracle11R2,安装起来方便,使用起来也很安全,以后迁移服务器也很方方便。为了数据的安全,我这里把oracle11gR2产生的数据存到了宿主机上,保证了数据的绝对安全。

1.环境

centos7 系统
oracle11gR2数据
docker v20.10

2.docker安装

curl https://get.docker.com |  sh -s - --mirror Aliyun
mkdir -p /etc/docker
touch /etc/docker/daemon.json
cat > /etc/docker/daemon.json << EOF
{
  "registry-mirrors": ["https://qj799ren.mirror.aliyuncs.com"],
   "insecure-registries": ["0.0.0.0/0"],
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  },
  "storage-driver": "overlay2"
}
EOF
sudo systemctl start docker && sudo systemctl enable docker && systemctl status docker

3.拉取oracle镜像

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

4.创建并启动容器

4.1创建临时容器

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

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  #删除临时容器

4.2.创建正式容器

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

参数说明:
–privileged 开启特权模式,可以设置容器的内核参数
–name 给容器取一个名称
-p 端口
-d 指定守护进程进行运行
–restart=always 总是要重启,跟着docker一起启动并一直会自动运行

5.进入docker的oracle11g 容器

docker exec -it hs_oracle bash
rm -rf /home/oracle/app/oracle/flash_recovery_area/helowin/control02.ctl #删除oracle的机制文件
cp /home/oracle/app/oracle/oradata/helowin/control01.ctl /home/oracle/app/oracle/flash_recovery_area/helowin/control02.ctl #拷贝
exit;
docker restart hs_oracle  #重启

6.进入容器设置

docker exec -it hs_oracle bash
source ~/.bash_profile

7.登录oracle并设置

sqlplus / as sysdba   #登录sqlplus
alter user system identified by system;  #修改system用户账号密码
alter user sys identified by system;    #修改sys用户账号密码
create user test identified by test;  #创建内部管理员账号密码都是test
grant connect,resource,dba to test;   #将dba权限授权给内部管理员账号和密码
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED; #修改密码规则策略为密码永不过期
alter system set processes=1000 scope=spfile;  #修改数据库最大连接数据

8.创建表空间

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

9.使用连接工具进行验证

用户名:system 密码: system 或者 用户名:test 密码: test
主机名: IP
端口:1521
SID: helowin
docker安装Oracle 11g 数据库并挂载数据卷永久存储_第1张图片

你可能感兴趣的:(docker容器相关,linux,oracle,数据库,docker)