Oracle 12c pdb自动启动
DB Pluggable Database是12c中扛鼎的一个新特性, 但是对于CDB中的PDB,默认启动CDB时不会将所有的PDB带起来,这样我们就需要手动alter pluggable database ALL OPEN;
例如:
SQL> shutdown immediate; Database closed. Database dismounted. ORACLE instance shut down. SQL> SQL> startup ; ORACLE instance started. Total System Global Area 1419685888 bytes Fixed Size 2288344 bytes Variable Size 536872232 bytes Database Buffers 872415232 bytes Redo Buffers 8110080 bytes Database mounted. Database opened. SQL> select con_id,name,open_mode from v$pdbs; CON_ID NAME OPEN_MODE ---------- ------------------------------ ---------- 2 PDB$SEED READ ONLY 3 MACC MOUNTED
可以通过添加Trigger的形式来客制化startup时自动将PDB OPEN:
CREATE TRIGGER open_all_pdbs AFTER STARTUP ON DATABASE BEGIN EXECUTE IMMEDIATE 'alter pluggable database all open'; END open_all_pdbs; / Trigger created. SQL> shutdown immediate; Database closed. Database dismounted. ORACLE instance shut down. SQL> SQL> startup; ORACLE instance started. Total System Global Area 1419685888 bytes Fixed Size 2288344 bytes Variable Size 536872232 bytes Database Buffers 872415232 bytes Redo Buffers 8110080 bytes Database mounted. Database opened. SQL> select con_id,name,open_mode from v$pdbs; CON_ID NAME OPEN_MODE ---------- ------------------------------ ---------- 2 PDB$SEED READ ONLY 3 MACC READ WRITE NOTE: dependency between database MAC and diskgroup resource ora.DATADG.dg is established alter pluggable database all open Sun Jul 07 01:40:59 2013 This instance was first to open pluggable database MACC (container=3) Opening pdb MACC (3) with no Resource Manager plan active Pluggable database MACC opened read write Completed: alter pluggable database all open Starting background process CJQ0
使用SYS用户创建如下触发器即可:
conn / as sysdba CREATE TRIGGER open_all_pdbs AFTER STARTUP ON DATABASE BEGIN EXECUTE IMMEDIATE 'alter pluggable database all open'; END open_all_pdbs; /