对12.1.0.2及更新版本有效
PDB的默认open mode是什么?
PDB的默认开放模式是MOUNTED(除了PDB $ SEED是READ ONLY,不能被用户打开READ WRITE)。
SYS@cnt122> select CON_ID, NAME, OPEN_MODE, RESTRICTED, OPEN_TIME from gv$containers;
CON_ID NAME OPEN_MODE RESTRICTED OPEN_TIME
---------- -------------------- ---------- ---------- -----------------------------------
1 CDB$ROOT READ WRITE NO 08-OCT-14 09.14.42.775 +01:00
2 PDB$SEED READ ONLY NO 08-OCT-14 09.14.42.873 +01:00
3 PDBP2 MOUNTED
4 DB12C2PDB MOUNTED
如何在CDB重新启动时保存或放弃PDB的open mode?
您将ALTER PLUGGABLE DATABASE SQL语句与pdb_save或discard_state子句一起使用。
这个想法是,你可以保存一个PDB的当前打开状态,这样,当CDB重新启动时,PDB将处于打开模式。
当您放弃先前保存的PDB的开放模式时,当CDB重新启动时,PDB将处于MOUNTED模式。
例如。 要保存PDBP2的当前打开状态,请执行以下操作:
SQL> ALTER PLUGGABLE DATABASE PDBP2 SAVE STATE;
Pluggable database altered.
例如。 放弃PDBP2保存的状态,执行以下操作:
SQL> ALTER PLUGGABLE DATABASE PDBP2 DISCARD STATE;
Pluggable database altered.
对于Oracle RAC CDB,可以将instances子句与pdb_save或discard_state子句一起使用,以指定实例保留PDB的open mode。
如何监视PDB的保存状态?
您可以使用DBA_PDB_SAVED_STATES视图来查看PDB的保存状态。
在下面的例子中,我们保存了PDBP2的OPEN状态,这样下一次CDB重新启动时,PDBP2将被打开而不是挂载。
SQL> STARTUP PLUGGABLE DATABASE PDBP2 open
Pluggable Database opened.
SQL> select CON_ID, NAME, OPEN_MODE, RESTRICTED, OPEN_TIME from gv$containers;
CON_ID NAME OPEN_MODE RESTRICTED OPEN_TIME
---------- -------------------- ---------- ---------- ---------------------------------------------------------------------------
1 CDB$ROOT READ WRITE NO 08-OCT-14 09.14.42.775 AM +01:00
2 PDB$SEED READ ONLY NO 08-OCT-14 09.14.42.873 AM +01:00
3 PDBP2 READ WRITE NO 08-OCT-14 09.28.26.830 AM +01:00
4 DB12C2PDB MOUNTED
SQL> select con_name, state from dba_pdb_saved_states;
no rows selected
SQL> ALTER PLUGGABLE DATABASE PDBP2 SAVE STATE;
Pluggable database altered.
SQL> select con_name, state from dba_pdb_saved_states;
CON_NAME STATE
-------------------- --------------
PDBP2 OPEN
只记录保存状态。 一旦为PDB执行discard state命令,从DBA_PDB_SAVED_STATES中删除保存的pdb状态条目。
SQL> ALTER PLUGGABLE DATABASE PDBP2 DISCARD STATE;
Pluggable database altered.
SQL> select con_name, state from dba_pdb_saved_states;
no rows selected
如上所述,自12.1.0.2开始保存PDB的打开状态。
对于12.1.0.1,您可以创建一个数据库启动触发器,以便在数据库启动时将PDB(s)置于特定的打开模式。
例如 要在CDB启动时打开所有PDB,请在CDB中创建以下触发器:
CREATE TRIGGER open_all_pdbs
AFTER STARTUP ON DATABASE
BEGIN
EXECUTE IMMEDIATE 'ALTER PLUGGABLE DATABASE ALL OPEN';
END ;
/
CDB重启时如何保持PDB的open模式(文档 ID 1933511.1)
最新推荐文章于 2024-07-25 22:00:53 发布