准备
- oracle 安装包,在oracle官网下载
- docker-images-master.zip。在https://github.com/oracle/docker-images下载。
复制linuxx64_12201_database.zip文件到目录
/Users/liuda/Downloads/docker-images-master/OracleDatabase/SingleInstance/dockerfiles/12.2.0.1
运行脚本构建images
./buildDockerImage.sh -v 12.2.0.1 -e
运行容器
docker run -d --name oracle12c -p 1522:1521 registry.cn-hangzhou.aliyuncs.com/limingong/oracle12c:12.2.0.1-ee
启动完成后进入容器
docker exec -it 72a4270ada88 /bin/bash
设置密码(会报错PDBADMIN用户不存在,不用理会)
./setPassword.sh sys
查看oracle 变量
echo $ORACLE_HOME
echo $ORACLE_SID
如果没有sid 运行
export ORACLE_SID=ORCLCDB
登陆数据并重启
sqlplus /nolog
conn / as sysdba
shutdown immediate
startup
oracle12c,pdb与cdb之间切换
查看当前属于哪个容器
show con_name;
查看所有PDB
show pdbs;
切换容器
alter session set container=ORCLPDB1;
alter session set container=CDB$ROOT;
启动PDB
alter pluggable database orclpdb1 open; --开启指定PDB
alter pluggable database all open; --开启所有PDB
alter session set container=orclpdb1; --切换到PDB进去开启数据库
startup
关闭PDB
alter pluggable database orclpdb1 close; --关闭指定的PDB
alter pluggable database all close; --关闭所有PDB
alter session set container=orclpdb1; --切换到PDB进去关闭数据库
shutdown immediate
创建一个新的PDB:(需要CBD下sysdba权限)
create pluggable database test admin user admin identified by admin;
alter pluggable database test_pdb open; --将test_pdb 打开
克隆PDB(需要CBD下sysdba权限)
create pluggable database orcl2 from orcl1; --test_pdb必须是打开的,才可以被打开
alter pluggable database orcl2 open; --然后打开这个pdb
删除PDB(需要CBD下sysdba权限)
alter pluggable database orcl2 close; --关闭之后才能删除
drop pluggable database orcl2 including datafiles; --删除PDB orcl2
设置CDB启动PDB自动启动(在这里使用的是触发器)
CREATE OR REPLACE TRIGGER open_pdbs
AFTER STARTUP ON DATABASE
BEGIN
EXECUTE IMMEDIATE 'ALTER PLUGGABLE DATABASE ALL OPEN';
END open_pdbs;
/