Oracle PDB的开启和关闭

时间:2024-12-15 11:00:05

[生产环境关闭与开启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