ORACLE Master Gold 保有者が監修1Z0-083 対応
マルチテナント(プラグイン違反)難易度 高無料

別の CDB から unplug した PDB を、XML 記述子を使ってこの CDB にプラグインした。プラグイン直後の PDB は MOUNTED 状態である。次に以下を実行した。

SQL> ALTER PLUGGABLE DATABASE sales OPEN;

Warning: PDB altered with errors.

SQL> SELECT name, open_mode, restricted FROM v$pdbs WHERE name='SALES';

プラグイン時に互換性に関わる不一致(例:オプション/コンポーネントの差異)が PDB_PLUG_IN_VIOLATIONSERROR として記録されていた。OPEN の結果として最も適切なものを選べ。(単一選択)

  1. AOPENORA-xxxxx で失敗し、PDB は MOUNTED のまま
  2. BPDB は READ WRITE かつ RESTRICTED=YES で開く
  3. CPDB は READ WRITE かつ RESTRICTED=NO で開く(ERROR は無視される)
  4. DPDB は READ ONLY で開く
正解・解説・誤答理由・ひっかけを見る▼ open
✓ 正解:B有資格者監修

解説

PDB をプラグイン(またはクローン/作成)した後、Oracle は互換性チェックを行い、問題があれば PDB_PLUG_IN_VIOLATIONS ビューに記録する。 違反には ERROR(致命的)WARNING(警告)がある。

WARNING なら PDB は通常どおり(RESTRICTED=NO)開き、ERROR なら開くものの RESTRICTED モードへ降格する。この対比がこの設問の論点である。

ERROR レベルの違反が残っている状態で OPEN すると、OPEN 自体は成功して Warning: PDB altered with errors. が表示され、PDB は RESTRICTED モード(RESTRICTED=YES)で開く。これは「管理者に未解決の問題があることを気付かせ、修正させる」ための安全装置である。 一般ユーザーは RESTRICTED SESSION 権限を持たない限り接続できない。 一方 WARNING レベルの違反はアラートログに記録されるだけで、PDB の OPEN は通常どおり成功し RESTRICTED=NO のままである。

管理者は PDB_PLUG_IN_VIOLATIONS を確認して原因を解消し、いったん CLOSE → 再 OPEN すると、違反が消えていれば RESTRICTED=NO の通常モードで開けるようになる。

各誤答が違う理由
  • AERROR レベルの違反があっても OPEN 自体は成功する(違反の記録と OPEN の失敗は別物)。文も "Warning: PDB altered with errors." を返しており、MOUNTED のままではない。
  • CERROR レベルの違反が残っている以上、通常モード(RESTRICTED=NO)では開かない。RESTRICTED=NO で開くのは違反が WARNING どまりの場合である。
  • DREAD ONLYOPEN READ ONLY を明示した場合の状態。違反による自動降格は READ ONLY ではなく RESTRICTED モード。
ひっかけ: 「違反があれば OPEN できない(=A)」あるいは「違反があっても普通に開く(=C)」と二択で誤りがち。 正解は開くが RESTRICTED に降格という中間挙動。ERRORWARNING の取り違え(WARNING なら降格しない)と、RESTRICTEDREAD ONLY の混同(B vs D)も頻出。
コマンド例と想定される挙動(未実行)
ALTER PLUGGABLE DATABASE sales OPEN;
→ Warning: PDB altered with errors.

SELECT name, open_mode, restricted FROM v$pdbs WHERE name='SALES';
→ SALES / READ WRITE / YES
解消後の再OPENで restricted=NO に戻る。
有資格者(著者)による書き下ろし解説
この分野をもっと解いて、得点源に
マルチテナント を含む問題を分野別に演習できます。
演習する →