天天看点

Oracle学习笔记之12C中的PDB自启动

在Oracle 12C版本中,CDB启动后,PDB是MOUNT状态,而不是和CDB一样的READ WRITE状态。启动PDB需要手动在CBD下执行PDB启动命令,例如,alter pluggable database all open,启动所有的PDB,这也有些麻烦,下面来介绍2种PDB的自启动方法。

1.在12.1.0.1版本,PDB是不支持自启动的,只能通过触发器来实现

在CDB种创建触发器,在CDB启动时启动PDB

下面是启动所有PDB

CREATE TRIGGER open_pdbs

AFTER STARTUP

ON DATABASE

BEGIN

EXECUTE IMMEDIATE 'alter pluggable database all open';

END open_all_pdbs;

/

如果要单独启动PDB,修改启动语句即可

单独启动PDB1

EXECUTE IMMEDIATE 'alter pluggable database pdb1 open';

2.从12.1.0.2版本,PDB开始支持自启动,通过alter pluggable database [pdb_name | all] save state命令来实现,该命令会记录PDB当前状态到数据字典dba_pdb_saved_states中,在下次启动CDB时,会查询该视图中的PDB状态,如果PDB是OPEN,那么就启动PDB

alter pluggable database [pdb_name | all] save state;

查询记录的PDB状态

select con_name,state from dba_pdb_saved_states;