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也会自动打开并可供用户使用了。