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;