このページでは、Oracle データベースを PostgreSQL 構文に変換し、Database Migration Service を使用してデータを Cloud SQL for PostgreSQL に移行する方法について説明します。
移行プロセスには、次のタスクが含まれます。
- 移行接続用に移行元データベースを構成し、PostgreSQL への変換用にデータを準備します。 
- 移行先の Cloud SQL for PostgreSQL インスタンスを作成する。 
- Database Migration Service の変換ワークスペースを使用して、Oracle スキーマやその他のオブジェクトを PostgreSQL 構文に変換する。 
- Database Migration Service で移行ジョブを作成し、実行します。 
- Database Migration Service のオブザーバビリティ機能を使用して、移行ジョブの進行状況をモニタリングします。 
- データが完全に移行された後、移行ジョブをプロモートします。 
費用
このドキュメントでは、課金対象である次のGoogle Cloudコンポーネントを使用します。
- Cloud SQL( Cloud SQL の料金をご覧ください)。
- 顧客管理の暗号鍵(CMEK)の保存に使用する場合: Cloud Storage( Cloud Storage の料金を参照)。
料金計算ツールを使うと、予想使用量に基づいて費用の見積もりを生成できます。
始める前に
-  この移行パスでシナリオを完全にサポートできるかどうかを確認します。次のページをご覧ください。
    - シナリオの概要ページの サポートされている移行元と移行先に、サポートされているすべての移行元と移行先のバージョンが一覧表示されます。
- 既知の制限事項では、サポートされているデータ型、データベース サイズ、その他の制限事項について説明します。
- 
        ネットワーキングの概要では、利用可能なネットワーク接続ソリューションについて説明しています。データを移行するには、Database Migration Service で移行元インスタンスと移行先インスタンスへのネットワーク接続を確立する必要があります。アーキテクチャによっては、ネットワーク接続を容易にするために追加の準備が必要になる場合があります。 
 
- 宛先データベースを作成するリージョンを検討します。Database Migration Service は完全にリージョン プロダクトです。つまり、移行に関連するすべてのエンティティ(移行元と移行先の接続プロファイル、移行ジョブ、移行先データベース、変換ワークスペース)は、単一のリージョンに保存する必要があります。
- Google Cloud コンソールのプロジェクト セレクタ ページで、 Google Cloud プロジェクトを選択または 作成します。
- Database Migration Service、Compute Engine、Cloud Storage、Cloud SQL Admin API を有効にします。
必要なロール
Database Migration Service で異種 Oracle 移行を実行するために必要な権限を取得するには、プロジェクトに必要な IAM ロールを付与するよう管理者に依頼してください。
-  
  データベース移行管理者(roles/datamigration.admin)
- 
  Cloud SQL 管理者(roles/cloudsql.admin)
ロールの付与の詳細については、Identity and Access Management のドキュメントの アクセスを管理するをご覧ください。
これらの事前定義ロールには、Database Migration Service を使用して異種 Oracle 移行を実行するために必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。
必要な権限
Database Migration Service を使用して異種 Oracle 移行を行うには、次の権限が必要です。
- datamigration.*
- cloudaicompanion.entitlements.get- この権限は、 - roles/datamigration.adminロールに含まれています。 Gemini を活用したコンバージョン機能で必要です。
- cloudsql.instances.create
- cloudsql.instances.get
- cloudsql.instances.list
- cloudsql.instances.update
- cloudsql.instances.delete
- cloudsql.operations.get
- cloudsql.users.list
- cloudsql.users.get
- cloudsql.users.create
- cloudsql.users.update
- cloudsql.users.delete
カスタムロールや他の 事前定義ロールを使用して、これらの権限を取得することもできます。
ステップ 1. 移行元データベースを準備する
移行するソースデータを準備する手順は次のとおりです。
- 移行元データベースの接続を設定します。次の操作を行います。
    - 省略可: SSL/TLS 証明書を使用して移行元ネットワーク接続を保護するかどうかを検討します。詳細については、
        TLS を使用してネットワーク接続を保護するをご覧ください。SSL/TLS 暗号化は、Oracle バージョン 12 以降でサポートされています。Database Migration Service は TLS 暗号化方式のみをサポートしています。SSL/TLS 構成によっては、移行元データベースで追加の構成手順が必要になる場合があります。 
- 移行元ネットワークの接続方法を選択して構成します。
 
- 省略可: SSL/TLS 証明書を使用して移行元ネットワーク接続を保護するかどうかを検討します。詳細については、
        TLS を使用してネットワーク接続を保護するをご覧ください。
- 
    移行元データベース インスタンスを構成します。このステップでは、移行専用のデータベース ユーザー アカウントを作成し、必要なレプリケーション機能を有効にします。 
- 
    省略可: ログファイル構成を最適化します。 アーカイブされたログファイルにアクセスすると、移行プロセスに遅延が発生します。特定のログファイル設定を調整して、レイテンシの影響を制御できます。 
- 
    ソース接続プロファイルを作成します。接続プロファイルには、Database Migration Service がソース データベースへの接続を確立するために必要な情報が含まれています。接続の詳細は、使用する ソース ネットワーク接続方法によって異なります。 
ステップ 2. Cloud SQL for PostgreSQL の移行先インスタンスを準備する
移行先の Cloud SQL インスタンスを構成するには、次の操作を行います。
- 宛先ネットワークの接続方法を選択して構成します。
- 
  Cloud SQL for PostgreSQL の移行先インスタンスを作成して構成します。移行のニーズを満たすのに十分なコンピューティング リソースとメモリリソースを使用していることを確認します。詳細については、 移行の推奨事項をご覧ください。 
- 
    宛先接続プロファイルを作成します。接続プロファイルには、Database Migration Service が移行先データベースへの接続を確立するために必要な情報が含まれています。接続の詳細は、使用する 宛先ネットワーク接続方法によって異なります。 
ステップ 3. Oracle オブジェクトを PostgreSQL 構文に変換する
データベースには数千ものオブジェクトが含まれていることがよくあります。すべてを 1 つのセッションで変換するのは難しい場合があります。コンバージョン ワークスペースを使用すると、コンバージョン プロセスを複数のフェーズに分割できます。新しいオブジェクトをコンバージョンに追加し、問題を修正してから、移行先データベースでテストします。
移行元データベースからオブジェクトを変換するには、次の操作を行います。
ステップ 4. 移行ジョブを作成して実行する
移行を構成して実行する手順は次のとおりです。
- 省略可: 移行ジョブの独自の証明書を管理する場合は、 必要な暗号鍵を準備します。
- 
    省略可: フルダンプ フェーズを自分で実行する場合は、Oracle ソース データベースからすべてのデータをエクスポートし、Database Migration Service の外部で宛先 Cloud SQL for PostgreSQL インスタンスに読み込むことができます。 移行ジョブ フローの外部で完全なダンプを実行する場合は、Database Migration Service が CDC レプリケーションを開始するシステム変更番号(SCN)を記録してください。 
- 
      移行ジョブを作成して実行します。移行中、移行先の Cloud SQL データベースは書き込み可能であり、必要に応じて DML の変更を適用できます。移行プロセスが中断したり、データの完全性に影響する可能性があるため、データベース構成やテーブル構造を変更しないように注意してください。 Database Migration Service のオブザーバビリティ機能を使用すると、移行の進行状況と移行先インスタンスの健全性をモニタリングできます。 移行ジョブの指標をご覧ください。 
ステップ 5. 移行を完了する
アプリケーションを新しい Cloud SQL for PostgreSQL インスタンスに切り替える場合は、次の手順で移行を完了します。
- 移行元データベースに対するすべての書き込みオペレーションを停止します。読み取り専用モードに切り替えて、運用機能を維持できます。
- 省略可: 移行データの完全性を 確認する。
- 移行ジョブをプロモートします。
接続プロファイル、移行ジョブ、コンバージョン ワークスペースなど、すべての Database Migration Service エンティティをクリーンアップできるようになりました。これらのエンティティを保持して、別の移行で再利用することもできます。
次のステップ
Cloud SQL for PostgreSQL の Google Cloud 機能の詳細を確認する。 Cloud SQL for PostgreSQL の機能をご覧ください。