マルチテナント(プラグイン違反)難易度 高無料
別の CDB から unplug した PDB を、XML 記述子を使ってこの CDB にプラグインした。プラグイン直後の PDB は MOUNTED 状態である。次に以下を実行した。
SQL> ALTER PLUGGABLE DATABASE sales OPEN; Pluggable database altered. SQL> SELECT name, open_mode, restricted FROM v$pdbs WHERE name='SALES';
プラグイン時に互換性に関わる軽微な不一致(例:オプション/コンポーネントの差異)が PDB_PLUG_IN_VIOLATIONS に WARNING として記録されていた。OPEN の結果として最も適切なものを選べ。(単一選択)
- A
OPENはORA-xxxxxで失敗し、PDB はMOUNTEDのまま - BPDB は
READ WRITEかつRESTRICTED=YESで開く - CPDB は
READ WRITEかつRESTRICTED=NOで開く(WARNING は無視される) - DPDB は
READ ONLYで開く
正解・解説・誤答理由・ひっかけを見る▼ open
✓ 正解:B✓Gold監修
解説
PDB をプラグイン(またはクローン/作成)した後、Oracle は互換性チェックを行い、問題があれば PDB_PLUG_IN_VIOLATIONS ビューに記録する。
違反には ERROR(致命的)と WARNING(警告)がある。
WARNING レベルの違反が残っている状態で OPEN すると、PDB は開くものの
RESTRICTED モード(RESTRICTED=YES)で開く。これは「管理者に未解決の問題があることを気付かせ、修正させる」ための安全装置である。
一般ユーザーは RESTRICTED SESSION 権限を持たない限り接続できない。
管理者は PDB_PLUG_IN_VIOLATIONS を確認して原因を解消し、いったん CLOSE → 再 OPEN すると、違反が消えていれば
RESTRICTED=NO の通常モードで開けるようになる。
- A
WARNINGレベルではOPEN自体は成功する(失敗=エラーで開けないのは別物)。文も "Pluggable database altered." を返している。 - C違反が記録されている以上、通常モード(
RESTRICTED=NO)では開かない。WARNING は「無視」されない。 - D
READ ONLYはOPEN READ ONLYを明示した場合の状態。違反による自動降格はREAD ONLYではなくRESTRICTEDモード。
ひっかけ: 「違反があれば OPEN できない(=A)」あるいは「警告くらいなら普通に開く(=C)」と二択で誤りがち。
正解は開くが RESTRICTED に降格という中間挙動。
RESTRICTED と READ ONLY の混同(B vs D)も頻出。実機確認の答え合わせ
SELECT name, open_mode, restricted FROM v$pdbs WHERE name='SALES'; → SALES / READ WRITE / YES 解消後の再OPENで restricted=NO に戻る。
✓Gold 保有者による書き下ろし解説・実機で検証済