alter pluggable database save state

Oracle12c R1 のリリース当初は、CDB を起動してもデフォルトでは PDB(プラガブルデータベース)が自動起動されなかった。よって バッチやシェルで起動コマンドを作りこむ必要があったが、12.1.0.2 からはコマンド単体で簡単に起動状態を指定することが可能となった。



PDB自動起動の確認

自動起動を設定するには、 対象の PDB をオープン状態にしておく必要がある。
※show pdbs コマンドで、OPEN MODE = READ WRITE となっていること。

SQL> show pdbs

  CON_ID PDB_NAME   OPEN MODE    RESTRICTED
-------- ---------- ------------ ------------
       2 PDB$SEED   READ ONLY    NO
       3 PDB1       READ WRITE   YES
       4 PDB2       READ WRITE   YES
       5 PDB3       MOUNT        NO

OPEN MODE = MOUNT となっている場合は、PDB が停止しているため、
PDB 起動コマンドを実行する。

SQL> alter pluggable database PDB名 open;

「save state」で自動起動を設定

all :オープンしている全ての PDB が対象

SQL> alter pluggable database all save state;

プラガブル・データベースが変更されました。

PDB名 : 指定した PDB が対象

個別に自動起動を設定したい場合 all ではなく、PDB 名を直接指定する。
カンマ区切りにすることで、複数同時設定も可能だ。

SQL> alter pluggable database pdb1, pdb2 save state;

CDB の再起動

CDB(コンテナデータベース)を再起動する。

PDB自動起動有効化を確認

SQL> show pdbs

  CON_ID PDB_NAME   OPEN MODE    RESTRICTED
-------- ---------- ------------ ------------
       2 PDB$SEED   READ ONLY    NO
       3 PDB1       READ WRITE   YES
       4 PDB2       READ WRITE   YES
       5 PDB3       MOUNT        NO

PDB1 と PDB2 が自動起動された。

補足

「discard state」でオープン状態を MOUNT に設定

SQL> alter pluggable database PDB名 discard state;

「except PDB名」で除外設定

SQL> alter pluggable database all except PDB名 save state;