模擬問題集 › GCP-PCDBE › 練習問題 3

GCP-PCDBE 練習問題 3|データ ソリューションの移行

Professional Cloud Database Engineer・無料公開(全 200 問中 15 問を無料公開中)

問題
大規模な Oracle データベースを AlloyDB for PostgreSQL に移行する計画を立てています。このデータベースには、ストアド プロシージャとして記述された大量のアプリケーション ロジックが含まれており、それらも移行先のデータベースに移行する必要があります。移行の労力とダウンタイムの両方を最小限に抑えたいと考えています。どうすればよいですか。

選択肢と解説

  • 1
    スキーマとコードの変換、およびデータ移行に Ora2pg を使用する。
  • 2
    スキーマとコードの変換に Ora2pg を使用する。AlloyDB で oracle_fdw 拡張機能を使用し、CREATE TABLE AS SELECT ステートメントを使用してソースから宛先にデータを複製する。
  • ✓
    Database Migration Service を使用する。スキーマとコードの変換用にコンバージョン ワークスペースを設定する。移行ジョブを作成し、バックフィルと変更データ キャプチャ(CDC)を実行してソースから宛先にデータを複製する。
  • 4
    Database Migration Service を使用する。スキーマとコードの変換用に従来のコンバージョン ワークスペース(legacy conversion workspace)を設定する。移行ジョブを作成し、バックフィルと変更データ キャプチャ(CDC)を実行してソースから宛先にデータを複製する。

解説

【正解】C

【0からの解説】
①前提知識
Database Migration Service(DMS)は、Oracle から AlloyDB for PostgreSQL / Cloud SQL for PostgreSQL への異種(heterogeneous)移行をサポートするマネージド サービスです。異種移行では次の 2 つを行います。
・スキーマとコードの変換: 「コンバージョン ワークスペース(conversion workspace)」で、Oracle のテーブル定義やストアド プロシージャ、関数、トリガーなどの PL/SQL コードを PostgreSQL の構文に変換します。現行のコンバージョン ワークスペースは DMS 内で変換を行う対話型の SQL エディタを備え、Gemini による変換支援(コードの説明や変換問題の修正提案)にも対応しています。
・データの移行: 移行ジョブがまず既存データを一括で読み込み(フルダンプ / バックフィル)、その後は変更データ キャプチャ(CDC)でソースの変更を継続的に複製します。これにより、ソースを稼働させたまま同期し、最後に短時間で切り替える(カットオーバー)ことができます。
一方「従来のコンバージョン ワークスペース(legacy conversion workspace)」は、古く機能が限定されたタイプです。オープンソースの変換ツール Ora2Pg の設定ファイルを DMS の外部であらかじめ作成し、その設定に従って変換する仕組みで、Gemini による変換機能や対話型 SQL エディタには対応していません。さらに、生成されたコードは利用者が自分で移行先データベースに適用する必要があり、移行前にスキーマをテストできず、主キーのないテーブルには移行前に手作業で主キー制約を作成する必要があります。公式ドキュメントでも、従来型のコンバージョン ワークスペースを移行に使うことは推奨されていません。
この 2 種類の違いは細かい論点に見えますが、判断の軸はシンプルです。「変換・適用・テストまでを DMS の中で完結できるか(=人手の作業が少ないか)」と「CDC で稼働を止めずに同期できるか(=ダウンタイムが短いか)」の 2 点で選択肢を比べると、名前に「従来(legacy)」と付く方式は、現行方式より手作業が多い旧来の選択肢だと判断できます。

②要件と制約の整理
・大規模な Oracle データベースで、大量のストアド プロシージャ(コード)の変換が必要。
・「移行の労力」と「ダウンタイム」の両方を最小にしたい。

③正解が要件を満たす理由
C は、DMS の現行コンバージョン ワークスペースでスキーマとストアド プロシージャを DMS 内で(Gemini の支援も受けながら)変換でき、変換作業の労力を抑えられます。さらに移行ジョブのバックフィル + CDC で、ソースを止めずにデータを継続的に同期できるため、カットオーバー時のダウンタイムもごく短くできます。両方の要件を満たすのは C です。

【誤りの選択肢】
A:Ora2pg はオープンソースのツールで、スキーマ・コード変換とデータのエクスポートができますが、自前で環境を用意して実行・管理する必要があり労力が大きくなります。また基本的には一括コピーのため、大規模データベースでは移行中にソースへの書き込みを止める必要があり、ダウンタイムが長くなります。
B:oracle_fdw と CREATE TABLE AS SELECT によるデータのコピーは一回限りのスナップショット コピーで、継続的な変更の複製(CDC)がありません。大規模データのコピー中はソースを停止する必要があり、ダウンタイムが大きくなります。手作業の SQL が多く労力も大きくなります。
D:DMS とバックフィル + CDC を使う点は C と同じで、ダウンタイムの面では差がありません。違いはスキーマとコードの変換方法です。従来のコンバージョン ワークスペースでは、Ora2Pg の設定ファイルを DMS の外部で作成・調整し、変換されたコードを自分で移行先に適用し、主キーの不足も手作業で補う必要があります。移行前にスキーマをテストすることもできず、Gemini による変換支援や対話型エディタもありません。大量のストアド プロシージャを変換する本問では、この手作業の差がそのまま労力の差になるため、「労力を最小化」という要件では C に劣ります。

【参考】
Oracle から AlloyDB for PostgreSQL への移行の概要 | Database Migration Service for heterogeneous Oracle to AlloyDB for PostgreSQL
Database Migration Service を使用して SQL を変換する
← 練習問題 2練習問題 4 →
GCP-PCDBE の模擬問題集は全 200 問

本番形式の練習テスト 4 回を、試験モード/演習モードで受験できます。 全問に解説付き、ドメイン別の弱点分析にも対応。模試プラン(月額 ¥980)からご利用いただけます。

GCP-PCDBE の模試を受ける料金プランを見る

GCP-PCDBE の無料公開問題

問題 1問題 2問題 3問題 4問題 5問題 6問題 7問題 8問題 9問題 10問題 11問題 12問題 13問題 14問題 15