天天看點

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;