継続的な移行の場合は、読み取りと書き込みを移行先データベースに移動するタイミングになったら、プロモーション プロセスを開始できます。 プロモーションとは、移行された Cloud SQL データベースがすべての読み取り / 書き込みオペレーションでアクセス可能になることを意味します。
移行ジョブをプロモートすることも、移行ジョブから選択したデータベースをプロモートすることもできます。
- プロモーションを開始します。データ損失を回避するため、移行元データベースへのすべての書き込み、 実行中のスクリプト、クライアント接続を停止してください。 ここからダウンタイムが始まります。
- トランザクション ログファイルから利用可能なすべてのデータが
Cloud SQL for SQL Server の移行先インスタンスにレプリケートされていることを確認します。
Cloud SQL for SQL Server ソース
Cloud SQL for SQL Server ソースの場合、Database Migration Service はトランザクション ログのエクスポートのモニタリングを自動的に処理します。 移行元インスタンスへの書き込みを停止したら、追加の操作を行う必要はありません。移行ジョブのプロモートに進むことができます。
自己管理または Amazon RDS ソース
自己管理または Amazon RDS ソースの場合、次のいずれかの操作を行うことで、この結果を得ることができます。
- 自動バックアップ ファイルのアップロードを停止するか、最後のトランザクション ログファイルをアップロードします。 未処理のトランザクション ログ バックアップのサイズをモニタリングして、Database Migration Service がそのファイルの処理を完了するタイミングを判断します。
- 必要に応じて、名前が
.trn.finalサフィックスで終わるトランザクション ログファイルをアップロードできます。Database Migration Service は、名前が.trn.finalサフィックスの命名規則に一致するバックアップ ファイルを検出すると、継続的な読み込みを停止します。Database Migration Service がそのファイルの処理を完了すると、移行 ジョブのステータスが [**プロモートの準備完了**] に変わります。
- プロモート アクションを実行します。
コンソール
Database Migration Service または移行先インスタンスのページから移行ジョブをプロモートできます。
Database Migration Service の場合:
- コンソールで、[移行ジョブ] ページに移動します。 Google Cloud
- [ジョブ] タブで、プロモートする移行ジョブの表示名をクリックします。
移行ジョブの詳細ページが開きます。
- 次のいずれかのプロモート アクションを実行します。
- すべてのデータベースをプロモートする場合は、ツールバーの [プロモート] をクリックします。
- 特定のデータベースのみをプロモートする場合は、[データベース] タブでそれらを選択し、[プロモート] をクリックします。
- ダイアログで、エラーが表示されていないことを確認し、[プロモート] をクリックします。
移行先インスタンスの場合:
- コンソールで、[Cloud SQL インスタンス] ページに移動します。 Google Cloud
- 移行先インスタンスの表示名をクリックします。
インスタンスの詳細ページが開きます。
- [移行] セクションで [プロモート] をクリックします。
- ダイアログで、エラーが表示されていないことを確認し、[プロモート] をクリックします。
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
-
gcloud database-migration migration-jobs describeコマンドを使用して、移行ジョブのステータスを表示します。 -
gcloud database-migration operations describeを指定して OPERATION_ID を使用すると、オペレーション自体のステータスを確認できます。
- 移行先インスタンスまたは選択したデータベースがプロモートされ、移行したデータベース
がすべての読み取り / 書き込みオペレーションでアクセス可能になります。
移行ジョブのステータスが
Completedに変わります。 - これで、アプリケーションを Cloud SQL インスタンスに接続し、 移行ジョブを安全に削除できます。