Pluggable Database(PDB)为Oracle 12c中的一个重要的新特性, 但启动12c实例时并不会自动打开PDB数据库,这样,在启动实例后必须手动打开PDBs。


1. 实例启动后,手工打开PDBs


[Oracle@12c ~]$ sqlplus "/as sysdba"




SQL> select open_mode from v$database;




SQL> alter pluggable database pdb1 open;




SQL> alter pluggable database pdb2 open;




SQL> select con_id,name,open_mode from v$pdbs;




--或用all选项启动所有PDBs




SQL> alter pluggable database all open;




2. 实例启动时,自动打开所有PDBs。


如果不想或不方便手工打开PDBs,也可通过定制Trigger在启动实例时将PDBs自动打开。


CDB$ROOT中SYS用户下创建如下触发器即可:


CREATE TRIGGER open_all_pdbs


AFTER STARTUP


ON DATABASE


BEGIN


EXECUTE IMMEDIATE 'alter pluggable database all open';


END open_all_pdbs;


/


这样,在oracle 12c实例启动时,其所有的PDBs也会自动打开并可供用户使用了。