IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    PDB随CDB启动

    小荷发表于 2016-05-26 03:20:44
    love 0

    12.1.0.2之前,用startup trigger:

    --在CDB中建立startup trigger
    CREATE TRIGGER open_all_pdbs
       AFTER STARTUP
       ON DATABASE
    BEGIN
       EXECUTE IMMEDIATE 'alter pluggable database all open';
    END open_all_pdbs;
    /

    12.1.0.2之后,用PDB save state

    下面的命令可以放pdb保持其关机前的状态,语法如下:
    ALTER PLUGGABLE DATABASE [all]|[PDB_NAME] SAVE STATE;
    取消设置的话,语法如下:
    ALTER PLUGGABLE DATABASE [all]|[PDB_NAME]  DISCARD STATE;
     
    如:
    alter pluggable database pdbrac1 save state;
    alter pluggable database all discard state;
     
     
    注意,savle state只是抓取当前的状态进行save,如果当前状态是mount,然后save state了。然后在open all pdb,再重启cdb,重启后只是会恢复到open all pdb之前的状态,即save state时的状态。
     
    SQL> show con_name
     
    CON_NAME
    ------------------------------
    CDB$ROOT
    SQL>
    SQL> startup
    ORACLE instance started.
     
    Total System Global Area 1560281088 bytes
    Fixed Size                  2924784 bytes
    Variable Size            1056968464 bytes
    Database Buffers          486539264 bytes
    Redo Buffers               13848576 bytes
    Database mounted.
    Database opened.
    SQL>  --最初时,2个pdb启动后状态都是mounted的。       
    SQL>  select NAME,OPEN_MODE from v$pdbs;
     
    NAME                           OPEN_MODE
    ------------------------------ ----------
    PDB$SEED                       READ ONLY
    PDBRAC1                        MOUNTED
    PDBRAC2                        MOUNTED
     
    SQL> alter pluggable database PDBRAC1 open;
     
    Pluggable database altered.
     
    SQL> alter pluggable database pdbrac1 save state;
     
    Pluggable database altered.
     
    SQL>
    SQL>
    SQL> shutdown immediate;
    Database closed.
    Database dismounted.
    ORACLE instance shut down.
    SQL>
    SQL>
    SQL>
    SQL> startup
    ORACLE instance started.
     
    Total System Global Area 1560281088 bytes
    Fixed Size                  2924784 bytes
    Variable Size            1056968464 bytes
    Database Buffers          486539264 bytes
    Redo Buffers               13848576 bytes
    Database mounted.
     Database opened.
    SQL>
    SQL>
    SQL> --save state之后,PDBRAC1就是随cdb一起启动了。
    SQL> select NAME,OPEN_MODE from v$pdbs;
     
    NAME                           OPEN_MODE
    ------------------------------ ----------
    PDB$SEED                       READ ONLY
    PDBRAC1                        READ WRITE
    PDBRAC2                        MOUNTED
     
    SQL>
    SQL> --如果是先save state,在open all,那么记录的状态只是在open all 之前的。
     
    SQL> alter pluggable database all save state;
     
    Pluggable database altered.
     
    SQL> alter pluggable database all open;
     
    Pluggable database altered.
     
    SQL>
    SQL>
    SQL>
    SQL>
    SQL> shutdown immediate
    Database closed.
    Database dismounted.
    ORACLE instance shut down.
    SQL>
    SQL>
    SQL>
    SQL> startup
    ORACLE instance started.
     
    Total System Global Area 1560281088 bytes
    Fixed Size                  2924784 bytes
    Variable Size            1056968464 bytes
    Database Buffers          486539264 bytes
    Redo Buffers               13848576 bytes
    Database mounted.
     Database opened.
    SQL>
    SQL> --因此重启cdb之后,也只是恢复save state时候的状态,即open all之前的,只有PDBRAC1打开的状态。
    SQL> select NAME,OPEN_MODE from v$pdbs;
     
    NAME                           OPEN_MODE
    ------------------------------ ----------
    PDB$SEED                       READ ONLY
    PDBRAC1                        READ WRITE
    PDBRAC2                        MOUNTED
     
    SQL>


沪ICP备19023445号-2号
友情链接