数据库篇|Docker内安装Oracle19c(踩坑版放心安装)

1.docker安装 卸载旧版本docker

yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine

安装必要的安装包
yum install -y yum-utils

设置镜像仓库(阿里)
yum-config-manager \ --add-repo \ http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

更新yum索引
yum makecache fast

安装docker docker-ce 为社区版本 docker-ee 为企业版
yum install docker-ce docker-cli containerd.io

启动docker
systemctl start docker

2.oracle19c安装 下载
docker pull registry.cn-hangzhou.aliyuncs.com/zhuyijun/oracle:19c

创建文件夹并且赋予权限(防止权限不足,直接改为777,测试可以这样,正式请勿直接加此权限)
mkdir -p /mydata/oracle/oradatachmod 777 /mydata/oracle/oradata

运行容器(密码为 ORACLE_PWD)
docker run -d\ -p 1521:1521 -p 5500:5500 \ -e ORACLE_SID=ORCLCDB \ -e ORACLE_PDB=ORCLPDB1 \ -e ORACLE_PWD=123456 \ -e ORACLE_EDITION=standard \ -e ORACLE_CHARACTERSET=AL32UTF8 \ -v /mydata/oracle/oradata:/opt/oracle/oradata \ --name orcl19c \ registry.cn-hangzhou.aliyuncs.com/zhuyijun/oracle:19c

运行成功,会打印出一串字符串,为容器ID
【数据库篇|Docker内安装Oracle19c(踩坑版放心安装)】如果执行失败,按需要执行如下命令(可以重新创建容器)
# 查看历史容器 docker ps -a # 查看正在运行的容器 docker ps # 删除容器 docker rm 容器id

进入容器(将oracle容器id换成你自己的id,docker ps 可以查看你的容器id,下面附截图)
docker exec -it oracle容器id bash

数据库篇|Docker内安装Oracle19c(踩坑版放心安装)
文章图片

创建表空间文件所需要的文件夹,当前登陆的用户为oracle,由于我也不知道容器初始化的root密码是什么,所以只能在有权限的文件夹下面创建
cd /home/oraclellmkdir datafilechmod 777 datafile

以dba的方式连接oracle
sqlplus / as sysdba

查看编码格式是否正确(如果编码格式跟你要求的不一样,建议删除镜像,再重新执行命令,修改创建镜像时的编码,因为手动修改oracle编码也很麻烦)
select userenv('language') from dual;

创建表空间以及赋予权限(注意19c数据库用户名前面的c##必需要有)
创建账号密码表空间
create tablespace 表空间名字 datafile '/home/oracle/datafile/datafile2.dbf' size 100m autoextend on next 20m; create user c##用户名 identified by 密码 default tablespace 表空间名字; grant dba to c##用户名;

如果第二个创建用户失败,往下看
show con_name

数据库篇|Docker内安装Oracle19c(踩坑版放心安装)
文章图片

select name,open_mode from v$pdbs;

数据库篇|Docker内安装Oracle19c(踩坑版放心安装)
文章图片


alter session set container=ORCLPDB1;

切换完库之后
创建一个与另一个库一样名字的表空间,但是dbf文件名字不能一样
如果你完全按照我的步骤走的话,执行下面的语句(注意你的表空间名字),否则按你的文件名字改下就可以
create tablespace 表空间名字 datafile '/home/oracle/datafile/datafile1.dbf' size 100m

然后返回去创建账号密码并且分配权限即可
自此,19c在docker中安装完毕!

    推荐阅读