12.1.0.2之前,用startup trigger:
| 代碼如下 |
複製代碼 |
--在CDB中建立startup trigger CREATE TRIGGER open_all_pdbs AFTER STARTUP ON DATABASE BEGIN EXECUTE IMMEDIATE 'alter pluggable database all open'; END open_all_pdbs; / |
12.1.0.2之後,用PDB save state
| 代碼如下 |
複製代碼 |
下面的命令可以放pdb保持其關機前的狀態,文法如下: ALTER PLUGGABLE DATABASE [all]|[PDB_NAME] SAVE STATE; 取消設定的話,文法如下: ALTER PLUGGABLE DATABASE [all]|[PDB_NAME] DISCARD STATE; 如: alter pluggable database pdbrac1 save state; alter pluggable database all discard state; 注意,savle state只是抓取當前的狀態進行save,如果目前狀態是mount,然後save state了。然後在open all pdb,再重啟cdb,重啟後只是會恢複到open all pdb之前的狀態,即save state時的狀態。 SQL> show con_name CON_NAME ------------------------------ CDB$ROOT SQL> SQL> startup ORACLE instance started. Total System Global Area 1560281088 bytes Fixed Size 2924784 bytes Variable Size 1056968464 bytes Database Buffers 486539264 bytes Redo Buffers 13848576 bytes Database mounted. Database opened. SQL> --最初時,2個pdb啟動後狀態都是mounted的。 SQL> select NAME,OPEN_MODE from v$pdbs; NAME OPEN_MODE ------------------------------ ---------- PDB$SEED READ ONLY PDBRAC1 MOUNTED PDBRAC2 MOUNTED SQL> alter pluggable database PDBRAC1 open; Pluggable database altered. SQL> alter pluggable database pdbrac1 save state; Pluggable database altered. SQL> SQL> SQL> shutdown immediate; Database closed. Database dismounted. ORACLE instance shut down. SQL> SQL> SQL> SQL> startup ORACLE instance started. Total System Global Area 1560281088 bytes Fixed Size 2924784 bytes Variable Size 1056968464 bytes Database Buffers 486539264 bytes Redo Buffers 13848576 bytes Database mounted. Database opened. SQL> SQL> SQL> --save state之後,PDBRAC1就是隨cdb一起啟動了。 SQL> select NAME,OPEN_MODE from v$pdbs; NAME OPEN_MODE ------------------------------ ---------- PDB$SEED READ ONLY PDBRAC1 READ WRITE PDBRAC2 MOUNTED SQL> SQL> --如果是先save state,在open all,那麼記錄的狀態只是在open all 之前的。 SQL> alter pluggable database all save state; Pluggable database altered. SQL> alter pluggable database all open; Pluggable database altered. SQL> SQL> SQL> SQL> SQL> shutdown immediate Database closed. Database dismounted. ORACLE instance shut down. SQL> SQL> SQL> SQL> startup ORACLE instance started. Total System Global Area 1560281088 bytes Fixed Size 2924784 bytes Variable Size 1056968464 bytes Database Buffers 486539264 bytes Redo Buffers 13848576 bytes Database mounted. Database opened. SQL> SQL> --因此重啟cdb之後,也只是恢複save state時候的狀態,即open all之前的,只有PDBRAC1開啟的狀態。 SQL> select NAME,OPEN_MODE from v$pdbs; NAME OPEN_MODE ------------------------------ ---------- PDB$SEED READ ONLY PDBRAC1 READ WRITE PDBRAC2 MOUNTED SQL> |