CDB重启时如何保持PDB的open模式(文档 ID 1933511.1)

来源:互联网 发布:godaddy域名证书 编辑:程序博客网 时间:2024/06/05 11:20
对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 openPluggable 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            MOUNTEDSQL> select con_name, state from dba_pdb_saved_states;no rows selectedSQL> 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 ;/

阅读全文
0 0
原创粉丝点击