移行ジョブを昇格させる

継続的な移行の場合は、読み取りと書き込みを移行先データベースに移動するタイミングになったら、プロモーション プロセスを開始できます。 プロモーションとは、移行された Cloud SQL データベースがすべての読み取り / 書き込みオペレーションでアクセス可能になることを意味します。

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

  1. プロモーションを開始します。データ損失を回避するため、移行元データベースへのすべての書き込み、 実行中のスクリプト、クライアント接続を停止してください。 ここからダウンタイムが始まります。
  2. トランザクション ログファイルから利用可能なすべてのデータが Cloud SQL for SQL Server の移行先インスタンスにレプリケートされていることを確認します。

    Cloud SQL for SQL Server ソース

    Cloud SQL for SQL Server ソースの場合、Database Migration Service はトランザクション ログのエクスポートのモニタリングを自動的に処理します。 移行元インスタンスへの書き込みを停止したら、追加の操作を行う必要はありません。移行ジョブのプロモートに進むことができます。

    自己管理または Amazon RDS ソース

    自己管理または Amazon RDS ソースの場合、次のいずれかの操作を行うことで、この結果を得ることができます。

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

    コンソール

    Database Migration Service または移行先インスタンスのページから移行ジョブをプロモートできます。

    Database Migration Service の場合:

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

      移行ジョブに移動する

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

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

    3. 次のいずれかのプロモート アクションを実行します。
      • すべてのデータベースをプロモートする場合は、ツールバーの [プロモート] をクリックします。
      • 特定のデータベースのみをプロモートする場合は、[データベース] タブでそれらを選択し、[プロモート] をクリックします。
    4. ダイアログで、エラーが表示されていないことを確認し、[プロモート] をクリックします。

    移行先インスタンスの場合:

    1. コンソールで、[Cloud SQL インスタンス] ページに移動します。 Google Cloud

      Cloud SQL の [インスタンス] に移動

    2. 移行先インスタンスの表示名をクリックします。

      インスタンスの詳細ページが開きます。

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

    gcloud

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

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

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

    • REGION は、接続プロファイルが保存されているリージョン の ID に置き換えます。
    • 省略可: Database Migration Service は、デフォルトで移行元のすべてのデータベースを移行します。特定のデータベースのみを移行する場合は、 --databases-filter フラグを使用して、ID をカンマ区切りのリストとして指定します。

      例: --databases-filter=my-business-database,my-other-database

      --database-filter flag で作成した移行ジョブは、後で gcloud database-migration migration-jobs update コマンドを使用して編集できます。

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

    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. これで、アプリケーションを Cloud SQL インスタンスに接続し、 移行ジョブを安全に削除できます。