PDB 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;
/