対策する資格
Java Silver ・ 近日ORACLE Silver ・ 近日
Gold 保有者 監修1Z0-083 対応
マルチテナント(アプリケーションコンテナ)難易度 高無料

アプリケーションコンテナのアプリケーションルート(APPROOT)で、共通の表構造を持つアプリケーション HR_APP をバージョン 2.0 へアップグレードした。アプリケーション PDB は HRPDB1HRPDB2 の2つがある。

-- アプリケーションルート APPROOT に接続して実行
SQL> ALTER PLUGGABLE DATABASE APPLICATION hr_app
  2    BEGIN UPGRADE '1.0' TO '2.0';

SQL>  ... (新しい共通表 / 列 / シードデータの定義を実行) ...

SQL> ALTER PLUGGABLE DATABASE APPLICATION hr_app END UPGRADE;
Pluggable database altered.

この END UPGRADE 完了後、各アプリケーション PDB(HRPDB1 / HRPDB2)でアプリケーションの変更を反映させるために必要な操作として、最も適切なものを選べ。(単一選択)

  1. Aアプリケーションルートでアップグレードを完了した時点で、すべてのアプリケーション PDB に変更は自動的に反映されているため、追加操作は不要
  2. B各アプリケーション PDB に接続し、ALTER PLUGGABLE DATABASE APPLICATION hr_app SYNC; を実行する
  3. C各アプリケーション PDB を CLOSEOPEN し直せば、再オープン時に自動で同期される
  4. Dアプリケーションルートで ALTER PLUGGABLE DATABASE APPLICATION hr_app SYNC ALL PDBS; を1回実行すれば、全アプリケーション PDB が一括同期される
正解・解説・誤答理由・ひっかけを見る▼ open
✓ 正解:BGold監修

解説

アプリケーションコンテナでは、アプリケーションルートでアプリケーションのインストール/アップグレード/パッチを行い(BEGIN INSTALL/UPGRADE/PATCHEND ... で囲む)、 その変更は各アプリケーション PDB で明示的に「同期(SYNC)」して初めて適用される。

同期は各アプリケーション PDB に接続して ALTER PLUGGABLE DATABASE APPLICATION hr_app SYNC; を実行する。 これによりその PDB が、ルートに記録されたアプリケーションの最新バージョン(ここでは 2.0)まで共通オブジェクト定義・シードデータを取り込む。

言い換えると、ルートでの END UPGRADE は「ルート側の正本を更新した」だけであり、各 PDB は SYNC するまで旧バージョンのまま動き続ける(段階的ロールアウトが可能)。

各誤答が違う理由
  • A自動反映されない。ルートのアップグレードと各 PDB への適用は分離されており、SYNC が必須。
  • CCLOSE/OPEN では同期されない。再オープンはアプリケーションの同期トリガーにはならない(必要なのは APPLICATION ... SYNC)。
  • DSYNC ALL PDBS のような「ルートから全 PDB を一括同期する」構文は標準の同期手段ではない。同期は各アプリケーション PDB 側で APPLICATION ... SYNC を実行するのが基本(コンテナ全体へ文を送る CONTAINERS/一括実行は別概念で、本問の正規解ではない)。
ひっかけ: 「ルートで終われば全 PDB に行き渡る(A)」という中央集権の思い込み。実際はルートで定義 → 各 PDB で SYNC して適用の二段構え。 これにより PDB ごとにアップグレード適用のタイミングをずらせる(=可用性管理)。SYNC を実行する場所が「ルート」か「各 PDB」かの取り違え(B vs D)も狙い。
Gold 保有者による書き下ろし解説・実機で検証済
この分野をもっと解いて、得点源に
マルチテナント を含む全問を分野別に演習できます(無料)。
演習する →