Oracle から Cloud SQL for PostgreSQL への移行の概要

Database Migration Service を使用すると、Oracle データベースのスキーマ、テーブル、コード オブジェクトを PostgreSQL の構文に変換し、Oracle データベースから Cloud SQL for PostgreSQL にデータを移行できます。 Database Migration Service は、Bare Metal Solution、Oracle Real Application Clusters(RAC)、 セルフマネージドインスタンスなど、さまざまな Oracle サービスをサポートしています。

このページでは、Oracle から Cloud SQL for PostgreSQL への異種移行のための Database Migration Service の主な機能の概要について説明します。

  • サポートされている移行元と移行先には、Database Migration Service でサポートされているすべての Oracle バージョンが一覧表示されます。

  • コードとスキーマの変換では、Database Migration Service を使用して、スキーマ、テーブル、その他のオブジェクトを Oracle の構文から PostgreSQL の構文に変換する方法について説明します。

  • 継続的な移行のデータフローでは、移行プロセス中にデータがどのように移動するか Google Cloud をエンドツーエンドで説明します。

  • モニタリング では、移行ジョブの進行状況と健全性を確認するのに役立つログと指標について説明します。

  • 移行のセキュリティでは、 Database Migration Service が提供する暗号化機能について説明します。

サポートされている移行元と移行先のデータベース

Database Migration Service は、移行元として次の Oracle データベースをサポートしています。

  • Amazon RDS for Oracle
  • 自己ホスト型デプロイメント(以下を含む):
    • Oracle シングル インスタンス データベース デプロイ
    • Oracle Exadata
    • Oracle Active Data Guard
    • Oracle Real Application Clusters(RAC)

完全なサポートは、移行元の Oracle バージョンによっても異なります。 次の表に、Oracle の異種移行でサポートされているすべてのバージョンを示します。

移行元データベース 移行先データベース
Oracle 11g、バージョン 11.2.0.4 Cloud SQL for PostgreSQL 12、13、14、15、16、17、18。
Oracle 12c、バージョン 12.1.0.2
Oracle 12c、バージョン 12.2.0.1
Oracle 18c
Oracle 19c
Oracle 21c

サポートされていない移行元データベース

Database Migration Service は、Oracle Autonomous Database からの移行をサポートしていません。

コードとスキーマの変換

Database Migration Service のコンバージョン ワークスペースには、スキーマ、テーブル、その他のオブジェクトを Oracle の構文から PostgreSQL の構文に変換できるインタラクティブ エディタが用意されています。インタラクティブなコンバージョン ワークスペースでは、Gemini によるワークフローの支援、コードの説明、変換の問題の修正もサポートされています。

詳細については、 コンバージョン ワークスペースをご覧ください。

移行データフロー

PostgreSQL への Oracle の異種移行の場合、 Database Migration Service は 継続的な移行フローと 1 回限りの移行フローをサポートしています。 継続的な移行では、データは最初にフルダンプから読み込まれ、その後 データベース ログファイルから抽出されたデータ変更情報に基づいて継続的に更新されます。

Database Migration Service を使用した Oracle から Cloud SQL for PostgreSQL への移行のデータフロー図。移行元から移行先への継続的なレプリケーションを示しています。
図 1.Oracle から Cloud SQL for PostgreSQL への Database Migration Service の異種移行中の継続的なデータ移動。(クリックして拡大)
Database Migration Service を使用した Oracle から Cloud SQL for PostgreSQL への移行のデータフロー図。移行元から移行先への継続的なレプリケーションを示しています。

大まかに言うと、データは次のように移行フェーズを移動します。

1 回限りの移行

  1. Database Migration Service のコンバージョン ワークスペースを使用して、スキーマ、 テーブル、その他のオブジェクトを Oracle の構文から PostgreSQL の構文に変換します。

    Oracle データベースには、スキーマを変換する必要があるオブジェクトが数千個含まれている場合があります 。Database Migration Service を使用すると、 作業を複数のフェーズに分割できます。Database Migration Service は、必要に応じて移行元データベースに接続し、必要なスキーマ情報を取得できます。

  2. すべてのエンティティを PostgreSQL の構文に変換したら、 移行先インスタンスのデータベースにスキーマを適用します。

    この段階の目的は、移行先データベースを準備して、 Database Migration Service が後で移行元テーブルから AlloyDB for PostgreSQL の正しい同等のテーブルにデータを複製できるようにすることです。

    スキーマが適用されたら、データの移行を開始できます。

  3. フルダンプ フェーズ は、1 回限りの移行 プロセスの一部です。このフェーズでは、Database Migration Service は移行元 インスタンスに接続し、移行用に選択したテーブルの内容を読み取ってから、AlloyDB for PostgreSQL の移行先インスタンスにデータを読み込みます。

    1 回限りの移行では、フルダンプ フェーズ中に移行元データベースへの書き込みを無効にすることをおすすめします。これにより、移行プロセスの開始後に作成されたデータの損失を防ぐことができます。

  4. フルダンプ フェーズが終了したら、移行先 データベースを昇格させ、新しい移行先データベースを使用するようにアプリケーションを切り替えることができます。

継続的な移行

  1. Database Migration Service のコンバージョン ワークスペースを使用して、スキーマ、 テーブル、その他のオブジェクトを Oracle の構文から PostgreSQL の構文に変換します。

    Oracle データベースには、スキーマを変換する必要があるオブジェクトが数千個含まれている場合があります 。Database Migration Service を使用すると、 作業を複数のフェーズに分割できます。Database Migration Service は、必要に応じて移行元データベースに接続し、必要なスキーマ情報を取得できます。

  2. すべてのエンティティを PostgreSQL の構文に変換したら、 移行先インスタンスのデータベースにスキーマを適用します。

    この段階の目的は、移行先データベースを準備して、 Database Migration Service が後で移行元テーブルから AlloyDB for PostgreSQL の正しい同等のテーブルにデータを複製できるようにすることです。

    スキーマが適用されたら、データの移行を開始できます。

  3. フルダンプ フェーズ は、移行プロセスの最初の部分です。 フルダンプを完了するには、次の 2 つの方法があります。

    • 自動: Database Migration Service は移行元インスタンスに接続し、移行用に選択したテーブルの内容を読み取ってから、AlloyDB for PostgreSQL の移行先インスタンスにデータを読み込みます。

      このフェーズでは、Database Migration Service はデータベースの実際のコンテンツを キャプチャします。

    • 手動: フルダンプ フェーズをスキップして、Database Migration Service の外部で自分で実行できます。その場合は、レプリケーションの開始点として Oracle システム変更番号を指定して、変更データ キャプチャ(CDC)フェーズから移行プロセスを開始できます。
  4. 継続的な移行の場合、フルダンプ フェーズが終了すると、 Database Migration Service は CDC フェーズ に切り替わります。CDC 中、 Database Migration Service は移行元データベースの変更をモニタリングし、 移行先インスタンスで継続的に複製します。

    CDC フェーズでは、Database Migration Service は移行元 テーブルから実際のデータをコピーしません。代わりに、 データベース ログファイルから抽出された情報を読み取って、移行先で変更を複製します。このメカニズムの詳細については、 変更データ キャプチャをご覧ください。アプリケーションを切り替えて、AlloyDB for PostgreSQL の移行先インスタンスを本番環境データベースとして使用する場合は、進行中のレプリケーションを停止して移行ジョブを昇格させることができます。

詳細なステップごとの移行ガイドについては、 Oracle から Cloud SQL for PostgreSQL への移行ガイドをご覧ください。

モニタリング

Database Migration Service の Oracle から Cloud SQL for PostgreSQL への移行ジョブのレプリケーション遅延指標を示すグラフの例。
図 2.Database Migration Service の移行ジョブでレプリケーションの遅延を示すオブザーバビリティ チャートの例。(クリックして拡大)
Database Migration Service の Oracle から Cloud SQL for PostgreSQL への移行ジョブのレプリケーション遅延指標を示すグラフの例。

Database Migration Service には、移行の進行状況をモニタリングするのに役立つ豊富なロギング機能とオブザーバビリティ機能が用意されています。これらの機能には、レプリケーションの遅延と CDC の進行状況のリアルタイム診断、Cloud SQL for PostgreSQL の移行先インスタンスの健全性と移行ジョブの状態の詳細なログが含まれます。

詳細については、 移行ジョブの指標をご覧ください。

移行のセキュリティ

Database Migration Service には、移行プロセス中のセキュリティを強化するために使用できる複数の暗号化メカニズムが用意されています。これらのメカニズムは次のとおりです。

  • Database Migration Service と移行元データベース間のネットワーク接続を暗号化するための SSL/TLS 証明書。詳細については、 暗号化の概要をご覧ください。

  • フルダンプ フェーズと CDC フェーズでのデータ移動を保護するための暗号化証明書。詳細については、移行ジョブの CMEK をご覧ください。

次のステップ