centos7.8中docker安装oracle19c,喜欢官方的看过来,用到的资料都是oracle官方的

前置条件
linux版本:
CentOS Linux release 7.8.2003 (Core),别的版本请自行测试,理论上7系列问题不大
相关参数:
ORACLE_SID : ORACLESID (必须大写)
备注:如果不想从官方安装包开始弄,可以直接拉我做好的镜像,然后直接跳到
docker run这一步教程开始,可以节省时间

docker pull registry.cn-hangzhou.aliyuncs.com/cjjjj/cj-oracle-19c:v1

正片开始:
19c官方下载目录

https://www.oracle.com/database/technologies/oracle19c-linux-downloads.html

(可能需要登录才让下载,登录即可)

安装git

yum install -y git

克隆官方工具

git clone https://github.com/oracle/docker-images.git
cd /docker-images/OracleDatabase/SingleInstance/dockerfiles/

ll命令查看后,选择版本
19.3.0

cd 19.3.0

查看dockerfile文件中用的哪个安装包

cat Dockerfile|grep INSTALL_FILE_1

将安装包拷贝到该目录下(

/app/docker-images/OracleDatabase/SingleInstance/dockerfiles/19.3.0

),
运行开始安装
./buildDockerImage.sh -v 19.3.0 -e (-e表示企业版,废弃,别用)
./buildContainerImage.sh -v 19.3.0 -e (新版脚本改名了,用这个)

/docker-data/oracle目录权限一定要正确,在容器中oracle用户的uid是54321,

mkdir -p /docker-data/oracle

(没有则创建,这一步完成创建后面在授权)
所以要保证容器内的oracle用户有权限读写该目录。
如创建oracle用户且uid是54321:

groupadd -g 1000 oinstall 
groupadd -g 1300 dba
groupadd -g 1301 oper 
useradd -u 54321 -g oinstall -G dba,oper -d /home/oracle -s /bin/bash -c "Oracle Software Owner" oracle 
echo "oracle" | passwd --stdin oracle   (给宿主机用户oracle设置密码为 oracle)
chown oracle:oinstall /docker-data/oracle  (非常重要,容器启动前权限授到位!!!,
可以通过 ll -a /docker-data/oracle观察归属)

启动容器

docker run --name oracle-19c \
-p 1521:1521 -p 5500:5500 \
-e ORACLE_SID=oraclesid \
-e ORACLE_PDB=oraclepdb \
-e ORACLE_PWD=oracle \
-v /docker-data/oracle:/opt/oracle/oradata \
oracle/database:19.3.0-ee

(注 oracle/database:19.3.0-ee 是buildDockerImage.sh
中默认生成的固定值,ORACLE_SID指定SID,ORACLE_PDB指定PDB)

如果"DATABASE IS READY TO USE!"提示信息,表示数据库已成功安装了。

登陆主机或数据库进行操作:
docker exec -it oracle-19c /bin/bash (普通用户进入容器)
docker exec -it -u root oracle-19c /bin/bash (以root身份进入容器)
export ORACLE_SID=ORACLESID (连接时必须大写,不然连不上,一定要先执行这个再使用sqlplus进行连接,否则连不上各种报错)

sqlplus / as sysdba

修改密码

docker exec -it oracle-19c /bin/bash

进到容器后,cd ~
./setPassword.s oracle 后面的参数就是 sys和system用户后面新的密码
有了sys账号后创建别的账号啥的就可以为所欲为了

创建用户

create user username identified by password;
eg:create user C##msc identified by oracle; 

–在CDB中用户得以C##开头;如果不想用C##开头可以尝试新建表空间

删除用户及其数据

drop user username cascade;
grant connect, resource to username;

我一般是本地测试用直接给的dba权限,省事(生产服务器别这么玩)
grant dba to C##msc; --在CDB中用户得以C##开头;如果不想用C##开头可以尝试新建表空间

更新容器为开机自启动命令

docker update --restart=always 容器id;
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值