之前写的Docker部署Oracle19c 是cdb模式参见//www.greatytc.com/p/9000cdd58cd8#comments
这里补充说明如何创建noncdb模式的19c数据库
Oracle官方提供的 docke-images 构建程序, 默认是CDB模式的IMAGE, 当我们需要创建NONCDB容器 ,我们需要对docke-images 构建程序进行一些修改, 然后创建新NOCDB镜像,然后通过该镜像创建 NONCDB实例;
1. 修改docke-images 构建程序
2. 创建 noncdb 镜像
3. 通过noncdb 镜像创建noncdb 实例
1. 修改docke-images 构建程序中三个文件
1.1 修改文件 : dbca.rsp.tmpl
路径 : docker-images-master/OracleDatabase/SingleInstance/dockerfiles/19.3.0
修改 dbca.rsp.tmpl 修改如下几值设置 ,
createAsContainerDatabase=false
numberOfPDBs=0
#pdbName=###ORACLE_PDB###
#pdbAdminPassword=###ORACLE_PWD###
#另把em也关掉,不要安装,浪费资源
emConfiguration=NONE
1.2 修改 createDB.sh
搜索及删除如下两句:
ALTER PLUGGABLE DATABASE $ORACLE_PDB SAVE STATE;
EXEC DBMS_XDB_CONFIG.SETGLOBALPORTENABLED (TRUE);
1.3 修改 checkDBStatus.sh
v\\$pdbs 改为 v\\$database
2. 创建noncdb镜像
创建noncdb镜像
cd /Users/myz/Docker/docker-images-master/OracleDatabase/SingleInstance/dockerfiles/
./buildDockerImage.sh -v 19.3.0 -e
myzmac:19.3.0 myz$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
oracle/database 19.3.0-ee 46a2b01a5809 35 minutes ago 6.62GB
更新tag
docker tag 46a2b01a5809 oracle/database:19.3.0-noncdb
docker rmi oracle/database:19.3.0-ee
3. 创建容器
mkdir -p /Users/myz/Docker/Oracle/19.3/
--执行创建实例
docker run -e TZ="Asia/Shanghai" -itd -h ora193 -m 2048m --name ora193 \
-p 1521:1521 \
-e ORACLE_SID=MYDB \
-v /Users/myz/Docker/Oracle/19.3/:/opt/oracle/oradata oracle/database:19.3.0-noncdb
通过命令:docker logs -f ora193 观察部署进度,预估10-15分钟完成
4. 验证
修改口令
docker exec ora193 ./setPassword.sh welcome1
docker exec -it ora193 bash
默认已有ORACLE_BASE,HOME.SID等变量, 这里加几个常用的.
vi .bash_profile
…
export EDITOR=vi
stty erase ^H
alias sqlplus='rlwrap sqlplus'
alias rman='rlwrap rman'
source .bash_profile
sqlplus / as sysdba
SQL> sho pdbs
SQL> select * from v$pdbs;
no rows selected