[生产环境关闭与开启Oracle PDB]
【运维场景】
在运维Oracle PDB的时候经常要开启和关闭PDB,对关闭和开启PDB的操作要非常熟悉。
【操作方法】
1. PDB的打开与关闭
关闭和开启DB的时候要看DB的警告日志,日志位置(在Oracle用户下查看)
tail -100f $ORACLE_BASE/diag/rdbms/<db_name>/<SID>/trace/alert_<SID>.log
以下操作均是使用sys用户操作!
–单机,开启和关闭
–在CDB下操作
– 关闭单个PDB
alter session set container=cdb$root;
alter pluggable database pdb1 close immediate; -- 推荐
or
alter pluggable database pdb1 close;
备注:如果在日志中出现等待进程关闭,需要使用alter pluggable database pdb1 close immediate;去关闭,否则会一直等待
– 开启单个PDB
alter pluggable database pdb1 open;
alter pluggable database pdb1 open force;
alter pluggable database pdb1 open read only;
–开启所有PDB
alter pluggable database all open;
alter pluggable database all open read only;
–在PDB下操作
alter session set container=pdb1;
alter database open;
–RAC,开启和关闭
# 注意开启PDB后,可能与PDB相关的服务没有启动,需要手动启动服务。
--在CDB下操作
alter session set container=cdb$root;
--关闭所有实例上的PDB1
alter pluggable database pdb1 colse immediate instances=all; -推荐
alter pluggable database pdb1 close instances=all;
-- 启动关闭实例也可以关闭实例下的PDB
shutdown immediate
--开启所有实例上的PDB1
alter pluggable database pdb1 open instances=all;
--开启所有实例上的所有PDB
alter pluggable database all open instances=all;
-- 检查单个PDB下的服务
srvctl status service -d dbname -pdb pdb1
例如看到服务名是pdb1_s
-- 启动服务
srvctl start service -d dbname -s pdb1_s
-- 检查这个CDB下的服务
srvctl status service -d dbname
2. 设置PDB随着CDB自启动
从12.1.0.2开始,在PDB是READ WRITE状态操作,即OPEN状态,设置PDB随着CDB自启动.
–设置所有PDB
–在CDB下操作
alter session set container=cdb$root;
alter pluggable database all save state;
alter pluggable database all discard state;
–设置单个PDB
–在CDB下操作
alter pluggable database pdb1 save state;
alter pluggable database pdb1 discard state;
显示名称PDB or CDB
show con_name