在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;