移行ジョブを昇格させる

継続的な移行の場合、アプリケーションを移行先データベースにカットオーバーする準備が整ったら、プロモート プロセスを開始できます。移行ジョブをプロモートすると、移行先インスタンスが移行元から切断され、独立したスタンドアロンのプライマリ データベース インスタンスに変換されます。これにより、自動バックアップを再開し、ポイントインタイム リカバリ(PITR)を構成して、リードレプリカを作成できます。

移行ジョブをプロモートすることも、移行ジョブから選択したデータベースをプロモートすることもできます。

  1. 移行元データベースに対する書き込み、実行中のスクリプト、クライアント接続をすべて停止します。この時点からがダウンタイム期間となります。
  2. レプリケーション遅延指標がゼロまたはゼロに近くなるまで待ちます。これは、移行ジョブで未処理の変更がすべて処理されたことを意味します。

    レプリケーションの遅延がゼロでない場合でも、移行をプロモートできます。これにより、データベースのダウンタイムを短縮できますが、宛先のデータの精度に影響する可能性があります。

  3. プロモート アクションを実行します。

    コンソール

    1. Google Cloud コンソールで、[移行ジョブ] ページに移動します。

      [移行ジョブ] に移動する

    2. [ジョブ] タブで、プロモートする移行ジョブの表示名をクリックします。

      [移行ジョブの詳細] ページが開きます。

    3. 次のいずれかのプロモート操作を行います。
      • 移行に含まれるすべてのデータベースをプロモートする場合は、移行ジョブのツールバーで [プロモート] をクリックします。

        [移行ジョブをプロモート] ダイアログが表示されます。

      • 特定のデータベースのみをプロモートする場合は、データベース名の横にあるチェックボックスを使用してデータベースを選択し、[データベース] タブで [プロモート] をクリックします。

        プロモートするデータベースの数を示すダイアログが表示されます。

    4. ダイアログにエラーが表示されていないことを確認し、[プロモート] をクリックします。

    gcloud

    後述のコマンドデータを使用する前に、次のように置き換えます。

    • MIGRATION_JOB_ID は、移行ジョブ ID に置き換えます。

      識別子がわからない場合は、 gcloud database-migration migration-jobs list コマンドを使用して、特定のリージョン内のすべての移行ジョブを一覧表示し、その識別子を確認できます。

    • REGION は、接続プロファイルが保存されているリージョンの識別子に置き換えます。

    次のコマンドを実行します。

    Linux、macOS、Cloud Shell

    gcloud database-migration migration-jobs \
    promote MIGRATION_JOB_ID \
      --region=REGION

    Windows(PowerShell)

    gcloud database-migration migration-jobs `
    promote MIGRATION_JOB_ID `
      --region=REGION

    Windows(cmd.exe)

    gcloud database-migration migration-jobs ^
    promote MIGRATION_JOB_ID ^
      --region=REGION

    結果

    このアクションは非同期で実行されます。そのため、このコマンドは、長時間実行オペレーションを表す Operation エンティティを返します。

    done: false
    metadata:
      '@type': type.googleapis.com/google.cloud.clouddms.v1.OperationMetadata
      apiVersion: v1
      createTime: '2024-02-20T12:20:24.493106418Z'
      requestedCancellation: false
      target: MIGRATION_JOB_ID
      verb: start
    name: OPERATION_ID
    

    オペレーションが成功したかどうかを確認するには、返されたオペレーション オブジェクトをクエリするか、移行ジョブのステータスを確認します。

  4. 選択した宛先インスタンスまたはデータベースがプロモートされます。移行先インスタンスは移行元から切断され、独立したスタンドアロンのプライマリ インスタンスになり、アプリケーション トラフィックを完全に処理できるようになります。移行ジョブのステータスが Completed に変わります。
  5. (省略可)pg_cron 拡張機能を使用するソースの場合: pg_cron 拡張機能(または拡張機能に関連付けられた cron 設定)は Database Migration Service によって移行されませんが、Cloud SQL for PostgreSQL の移行先でサポートされています。ソース データベースで pg_cron 拡張機能を使用している場合は、移行先インスタンスに再インストールできます。
  6. これで、アプリケーションを Cloud SQL インスタンスに接続し、移行ジョブを削除できるようになりました。