工作中经常遇到在linux中安装oracle11gR2数据库,安全起来很麻烦,也很容器出错,老是安装失败,在这里我给大家接受一个用docker安装Oracle11R2,安装起来方便,使用起来也很安全,以后迁移服务器也很方方便。为了数据的安全,我这里把oracle11gR2产生的数据存到了宿主机上,保证了数据的绝对安全。
centos7 系统
oracle11gR2数据
docker v20.10
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
docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
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一起启动并一直会自动运行
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 #重启
docker exec -it hs_oracle bash
source ~/.bash_profile
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; #修改数据库最大连接数据
create tablespace test datafile '/home/oracle/app/oracle/oradata/helowin/test.dbf 'size 500m autoextend on next 10m maxsize unlimited;
用户名:system 密码: system 或者 用户名:test 密码: test
主机名: IP
端口:1521
SID: helowin