アクションは、移行ジョブリスト、単一の移行ジョブの詳細ページ、または Cloud SQL の移行先インスタンス ページから直接実行できます。 Google Cloud コンソールでは、複数のジョブの ステータスがすべて同じであれば、それらのジョブに対して同時にアクションを実行できます。1 つの移行ジョブに対して、 Google Cloud コンソールと Google Cloud CLI の両方でアクションを実行できます。
移行ジョブ全体に対して実行できるアクションもあれば、移行ジョブ内の選択した個々のデータベースに対して実行できるアクション(再起動、プロモート、詳細の表示など)もあります。
移行ジョブに対して次の操作を行うことができます。
| アクション | 説明 |
|---|---|
| 編集 | 次の変更を行うには、移行ジョブを編集します。
|
| 開始 | 開始されずに作成された移行ジョブを開始します。実行中または開始中の状態でないジョブを開始できます。 移行ジョブのステータスをご覧ください。 |
| 停止する | 実行中の移行ジョブはいつでも停止できます。データ移行が停止し、移行ジョブのステータスが
ソース データベース サーバーのレプリケーション スロットとディスク容量をモニタリングします。移行ジョブを削除すると、移行元のすべてのレプリケーション スロットがクリーンアップされ、ネットワーク トラフィックが停止します。 |
| 再開 | CDC フェーズ中に継続的な移行ジョブが停止された場合は、再開できます。移行ジョブを再開すると、停止中に蓄積されたイベントとデータ変更のレプリケーションが再開されます。 |
| 再起動 | 移行ジョブが失敗して復元できない場合、または最初の完全ダンプ フェーズ中に停止した場合は、最初から再開できます。 移行を再開すると、エラーの影響を受けた移行先データベースからすべてのデータがワイプされ、新しい完全なダンプが取得されます。移行の開始後に移行元の PostgreSQL サーバーで新しいデータベースが作成された場合、移行を再開すると、それらの新しいデータベースも移行先インスタンスに複製されます。 移行ジョブ内のすべてのデータベースを再起動することも、選択したデータベースのみを再起動することもできます。 |
| 削除 | 移行ジョブを削除します。移行ジョブは、どの状態でも削除できます。ただし、実行中の移行ジョブを削除できるのは Google Cloud コンソールのみです。 結果はジョブのステータスによって異なります。
移行ジョブを削除すると、ソース データベースに割り当てられたレプリケーション スロットが削除され、ネットワーク トラフィックが停止します。移行ジョブを削除しても、ソース データベースは削除されません。 |
| プロモーション | 移行先インスタンスをレプリカからスタンドアロンのプライマリ データベース インスタンスにプロモートし、移行先インスタンスを移行元から切断します。移行ジョブ全体をプロモートすることも、選択した個々のデータベースをプロモートすることもできます。 詳細については、 移行をプロモートするをご覧ください。 |
| 特定のデータベースを表示する | 移行用に構成された特定のデータベースの移行の詳細を表示します。 |
| すべてのデータベースを表示 | 移行用に構成されたすべてのデータベースの移行の詳細を表示します。 |
移行ジョブを開始する
移行ジョブが完全に作成されると(つまり、下書き状態で保存されていない場合)、いつでも開始してデータの移行を開始できます。
移行ジョブを開始する手順は次のとおりです。
コンソール
- Google Cloud コンソールで、[移行ジョブ] ページに移動します。
- [ジョブ] タブで、開始する移行ジョブの表示名をクリックします。
[移行ジョブの詳細] ページが開きます。
- [開始] をクリックします。
- ダイアログで [開始] をクリックします。
gcloud
後述のコマンドデータを使用する前に、次のように置き換えます。
- MIGRATION_JOB_ID は、移行ジョブ ID に置き換えます。
識別子がわからない場合は、
gcloud database-migration migration-jobs listコマンドを使用して、特定のリージョン内のすべての移行ジョブを一覧表示し、その識別子を確認できます。 - REGION は、接続プロファイルが保存されているリージョンの識別子に置き換えます。
次のコマンドを実行します。
Linux、macOS、Cloud Shell
gcloud database-migration migration-jobs \ start MIGRATION_JOB_ID \ --region=REGION
Windows(PowerShell)
gcloud database-migration migration-jobs ` start MIGRATION_JOB_ID ` --region=REGION
Windows(cmd.exe)
gcloud database-migration migration-jobs ^ start 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コマンドと MIGRATION_JOB_ID を使用して、移行ジョブのステータスを表示します。 - OPERATION_ID を指定して
gcloud database-migration operations describeコマンドを使用し、オペレーション自体のステータスを確認します。
移行ジョブを停止する
実行中の移行ジョブはいつでも停止できます。移行ジョブを停止すると、データ移行が停止し、移行ジョブのステータスが Stopping に変わり、その後 Stopped に変わります。
移行ジョブを停止する手順は次のとおりです。
コンソール
- Google Cloud コンソールで、[移行ジョブ] ページに移動します。
- [ジョブ] タブで、停止する移行ジョブの表示名をクリックします。
[移行ジョブの詳細] ページが開きます。
- [停止] をクリックします。
- ダイアログで [停止] をクリックします。
gcloud
後述のコマンドデータを使用する前に、次のように置き換えます。
- MIGRATION_JOB_ID は、移行ジョブ ID に置き換えます。
識別子がわからない場合は、
gcloud database-migration migration-jobs listコマンドを使用して、特定のリージョン内のすべての移行ジョブを一覧表示し、その識別子を確認できます。 - REGION は、接続プロファイルが保存されているリージョンの識別子に置き換えます。
次のコマンドを実行します。
Linux、macOS、Cloud Shell
gcloud database-migration migration-jobs \ stop MIGRATION_JOB_ID \ --region=REGION
Windows(PowerShell)
gcloud database-migration migration-jobs ` stop MIGRATION_JOB_ID ` --region=REGION
Windows(cmd.exe)
gcloud database-migration migration-jobs ^ stop 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: stop name: OPERATION_ID
-
gcloud database-migration migration-jobs describeコマンドを使用して、移行ジョブのステータスを表示します。 - OPERATION_ID を指定して
gcloud database-migration operations describeを使用し、オペレーション自体のステータスを確認します。
移行ジョブを再開する
変更データ キャプチャ(CDC)フェーズ中に継続的な移行ジョブが停止した場合は、再開できます。移行ジョブを再開すると、ジョブの停止中にソース データベースに蓄積されたイベントとデータ変更のレプリケーションが再開されます。
停止した移行ジョブを再開するには、次の操作を行います。
コンソール
- Google Cloud コンソールで、[移行ジョブ] ページに移動します。
- [ジョブ] タブで、再開する移行ジョブの表示名をクリックします。
[移行ジョブの詳細] ページが開きます。
- [再開] をクリックします。
- ダイアログで [再開] をクリックします。
gcloud
後述のコマンドデータを使用する前に、次のように置き換えます。
- MIGRATION_JOB_ID は、移行ジョブ ID に置き換えます。
識別子がわからない場合は、
gcloud database-migration migration-jobs listコマンドを使用して、特定のリージョン内のすべての移行ジョブを一覧表示し、その識別子を確認できます。 - REGION は、接続プロファイルが保存されているリージョンの識別子に置き換えます。
次のコマンドを実行します。
Linux、macOS、Cloud Shell
gcloud database-migration migration-jobs \ resume MIGRATION_JOB_ID \ --region=REGION
Windows(PowerShell)
gcloud database-migration migration-jobs ` resume MIGRATION_JOB_ID ` --region=REGION
Windows(cmd.exe)
gcloud database-migration migration-jobs ^ resume 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: resume name: OPERATION_ID
-
gcloud database-migration migration-jobs describeコマンドを使用して、移行ジョブのステータスを表示します。 - OPERATION_ID を指定して
gcloud database-migration operations describeを使用し、オペレーション自体のステータスを確認します。
移行ジョブを再開する
移行ジョブが失敗して復元できない場合、または最初のフルダンプ フェーズで停止した場合は、最初から再開できます。
移行を再開すると、エラーの影響を受けた移行先データベースからすべてのデータがワイプされ、新しい完全なダンプが開始されます。移行の開始後に移行元の PostgreSQL サーバーで新しいデータベースが作成された場合、移行を再開すると、それらの新しいデータベースも移行先インスタンスに複製されます。
移行ジョブ内のすべてのデータベースを再起動することも、特定のデータベースのみを再起動することもできます。
移行ジョブを再開する手順は次のとおりです。
コンソール
- Google Cloud コンソールで、[移行ジョブ] ページに移動します。
- [ジョブ] タブで、再開する移行ジョブの表示名をクリックします。
[移行ジョブの詳細] ページが開きます。
- 次のいずれかの再起動操作を行います。
移行に含まれるすべてのデータベースを再起動する場合は、移行ジョブのツールバーで [再起動] をクリックします。
[移行ジョブを再開] ダイアログが表示されます。
特定のデータベースのみを再起動する場合は、データベース名の横にあるチェックボックスを使用してデータベースを選択し、[データベース] タブで [再起動] をクリックします。
再起動するデータベースの数が表示されたダイアログが表示されます。
- ダイアログで [再起動] をクリックします。
gcloud
後述のコマンドデータを使用する前に、次のように置き換えます。
- MIGRATION_JOB_ID は、移行ジョブ ID に置き換えます。
識別子がわからない場合は、
gcloud database-migration migration-jobs listコマンドを使用して、特定のリージョン内のすべての移行ジョブを一覧表示し、その識別子を確認できます。 - REGION は、移行ジョブが保存されているリージョンの ID に置き換えます。
省略可: Database Migration Service は、デフォルトで移行元のすべてのデータベースを移行します。特定のデータベースのみを移行する場合は、
--databases-filterフラグを使用して、識別子をカンマ区切りのリストとして指定します。例:
--databases-filter=my-business-database,my-other-database--databases-filterフラグを使用して作成した移行ジョブは、後でgcloud database-migration migration-jobs updateコマンドを使用して編集できます。
次のコマンドを実行します。
Linux、macOS、Cloud Shell
gcloud database-migration migration-jobs \ restart MIGRATION_JOB_ID \ --region=REGION
Windows(PowerShell)
gcloud database-migration migration-jobs ` restart MIGRATION_JOB_ID ` --region=REGION
Windows(cmd.exe)
gcloud database-migration migration-jobs ^ restart 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: restart name: OPERATION_ID
-
gcloud database-migration migration-jobs describeコマンドを使用して、移行ジョブのステータスを表示します。 - OPERATION_ID を指定して
gcloud database-migration operations describeを使用し、オペレーション自体のステータスを確認します。
移行ジョブの下書きを更新する
移行ジョブの作成を完了するには、次の手順を行います。
コンソール
- Google Cloud コンソールで、[移行ジョブ] ページに移動します。
- [ドラフト] タブで、作成を完了する移行ジョブの表示名をクリックします。
移行ジョブ作成ウィザードが開きます。
- 移行ジョブの作成を完了します。 移行ジョブを作成するをご覧ください。
gcloud
このサンプルでは、オプションの --no-async フラグを使用して、すべてのオペレーションが同期的に実行されるようにしています。そのため、一部のコマンドの完了に時間がかかることがあります。--no-async フラグをスキップして、コマンドを非同期で実行できます。その場合は、gcloud database-migration operations describe コマンドを使用して、オペレーションが成功したかどうかを確認する必要があります。
後述のコマンドデータを使用する前に、次のように置き換えます。
- MIGRATION_JOB_ID は、移行ジョブの機械で読み取り可能な識別子に置き換えます。
- REGION は、接続プロファイルを保存するリージョン ID に置き換えます。
- MIGRATION_JOB_NAME は、移行ジョブの人が読める形式の名前に置き換えます。この値は、 Google Cloud コンソールの Database Migration Service に表示されます。
- SOURCE_CONNECTION_PROFILE_ID は、ソース接続プロファイルの機械で読み取り可能な識別子に置き換えます。
- DESTINATION_CONNECTION_PROFILE_ID は、宛先接続プロファイルの機械で読み取り可能な識別子に置き換えます。
- COMMA_SEPARATED_DATABASE_ID_LIST は、移行する PostgreSQL のデータベース ID のカンマ区切りのリストに置き換えます。
次のコマンドを実行します。
Linux、macOS、Cloud Shell
gcloud database-migration migration-jobs \ create MIGRATION_JOB_ID \ --no-async \ --region=REGION \ --display-name=MIGRATION_JOB_NAME \ --source=SOURCE_CONNECTION_PROFILE_ID \ --destination=DESTINATION_CONNECTION_PROFILE_ID \ --databases-filter=COMMA_SEPARATED_DATABASE_ID_LIST \ --type=CONTINUOUS
Windows(PowerShell)
gcloud database-migration migration-jobs ` create MIGRATION_JOB_ID ` --no-async ` --region=REGION ` --display-name=MIGRATION_JOB_NAME ` --source=SOURCE_CONNECTION_PROFILE_ID ` --destination=DESTINATION_CONNECTION_PROFILE_ID ` --databases-filter=COMMA_SEPARATED_DATABASE_ID_LIST ` --type=CONTINUOUS
Windows(cmd.exe)
gcloud database-migration migration-jobs ^ create MIGRATION_JOB_ID ^ --no-async ^ --region=REGION ^ --display-name=MIGRATION_JOB_NAME ^ --source=SOURCE_CONNECTION_PROFILE_ID ^ --destination=DESTINATION_CONNECTION_PROFILE_ID ^ --databases-filter=COMMA_SEPARATED_DATABASE_ID_LIST ^ --type=CONTINUOUS
次のようなレスポンスが返されます。
Waiting for migration job [MIGRATION_JOB_ID] to be updated with [OPERATION_ID] Waiting for operation [OPERATION_ID] to complete...done. Updated migration job MIGRATION_JOB_ID [OPERATION_ID]
移行ジョブにデータベースを追加または削除する
データベースは、移行の状態やフェーズに関係なく、必要に応じて何度でも追加または削除できます。データベースを削除すると、Database Migration Service はそのデータベースのレプリケーション プロセスを停止しますが、移行先の Cloud SQL インスタンスからは削除しません。
移行ジョブにデータベースを追加または削除する手順は次のとおりです。
- Google Cloud コンソールで、[移行ジョブ] ページに移動します。
- [ジョブ] タブで、移行ジョブの表示名をクリックします。[移行ジョブの詳細] ページが開きます。
- [編集] をクリックします。
- [移行するデータベースを選択] セクションで、チェックボックスを使用して、移行ジョブに追加する新しいデータベースを選択するか、削除するデータベースのチェックボックスをオフにします。
- [保存] をクリックします。
ドラフト以外の移行ジョブを編集する
実行中の移行ジョブのデータダンプの並列処理レベルを編集するには、並列処理に関する考慮事項をご覧ください。並列処理の設定を変更した後は、移行ジョブを保存して再開する必要があります。
ドラフト以外の移行ジョブの場合は、Google Cloud CLI を使用して移行ジョブの表示名を変更できます。
このサンプルでは、オプションの --no-async フラグを使用して、すべてのオペレーションが同期的に実行されるようにしています。そのため、一部のコマンドの完了に時間がかかることがあります。--no-async フラグをスキップして、コマンドを非同期で実行できます。その場合は、gcloud database-migration operations describe コマンドを使用して、オペレーションが成功したかどうかを確認する必要があります。
後述のコマンドデータを使用する前に、次のように置き換えます。
- MIGRATION_JOB_ID は、移行ジョブ ID に置き換えます。
識別子がわからない場合は、
gcloud database-migration migration-jobs listコマンドを使用して、特定のリージョン内のすべての移行ジョブを一覧表示し、その識別子を確認できます。 - REGION は、接続プロファイルが保存されているリージョンの識別子に置き換えます。
- MIGRATION_JOB_NAME は、移行ジョブの人が読める形式の名前に置き換えます。この値は、 Google Cloud コンソールの Database Migration Service に表示されます。
次のコマンドを実行します。
Linux、macOS、Cloud Shell
gcloud database-migration migration-jobs \ update MIGRATION_JOB_ID \ --region=REGION \ --display-name=MIGRATION_JOB_NAME
Windows(PowerShell)
gcloud database-migration migration-jobs ` update MIGRATION_JOB_ID ` --region=REGION ` --display-name=MIGRATION_JOB_NAME
Windows(cmd.exe)
gcloud database-migration migration-jobs ^ update MIGRATION_JOB_ID ^ --region=REGION ^ --display-name=MIGRATION_JOB_NAME
次のようなレスポンスが返されます。
Waiting for migration job [MIGRATION_JOB_ID] to be updated with [OPERATION_ID] Waiting for operation [OPERATION_ID] to complete...done. Updated migration job MIGRATION_JOB_ID [OPERATION_ID]
移行ジョブをテストする
移行ジョブを実行する前に、テスト オペレーションを実行して、Database Migration Service が必要なすべての移行元エンティティと移行先エンティティにアクセスできるかどうかを確認できます。 Google Cloud コンソールでは、移行ジョブ作成ウィザードで作成したドラフト移行ジョブのみをテストできます( 移行ジョブを作成するをご覧ください)。
gcloud CLI を使用すると、作成済みでまだ開始されていない移行ジョブをテストできます。
後述のコマンドデータを使用する前に、次のように置き換えます。
- MIGRATION_JOB_ID は、移行ジョブ ID に置き換えます。
識別子がわからない場合は、
gcloud database-migration migration-jobs listコマンドを使用して、特定のリージョン内のすべての移行ジョブを一覧表示し、その識別子を確認できます。 - REGION は、接続プロファイルが保存されているリージョンの識別子に置き換えます。
次のコマンドを実行します。
Linux、macOS、Cloud Shell
gcloud database-migration migration-jobs \ verify MIGRATION_JOB_ID \ --region=REGION
Windows(PowerShell)
gcloud database-migration migration-jobs ` verify MIGRATION_JOB_ID ` --region=REGION
Windows(cmd.exe)
gcloud database-migration migration-jobs ^ verify 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: verify name: OPERATION_ID
オペレーションが成功したかどうかを確認するには、返されたオペレーション オブジェクトをクエリするか、移行ジョブのステータスを確認します。
-
gcloud database-migration migration-jobs describeコマンドと MIGRATION_JOB_ID を使用して、移行ジョブのステータスを表示します。 - OPERATION_ID を指定して
gcloud database-migration operations describeコマンドを使用し、オペレーション自体のステータスを確認します。
特定のデータベースの移行の詳細を表示する
移行ジョブが完全に作成されると(つまり、ドラフト状態で保存されていない場合)、Google Cloud CLI を使用して、その移行ジョブ内の特定のデータベースの詳細を表示できます。
このサンプルでは、オプションの --no-async フラグを使用して、すべてのオペレーションが同期的に実行されるようにしています。そのため、一部のコマンドの完了に時間がかかることがあります。--no-async フラグをスキップして、コマンドを非同期で実行できます。その場合は、gcloud database-migration operations describe コマンドを使用して、オペレーションが成功したかどうかを確認する必要があります。
後述のコマンドデータを使用する前に、次のように置き換えます。
- MIGRATION_JOB_ID は、移行ジョブ ID に置き換えます。
識別子がわからない場合は、
gcloud database-migration migration-jobs listコマンドを使用して、特定のリージョン内のすべての移行ジョブを一覧表示し、その識別子を確認できます。 - REGION は、接続プロファイルが保存されているリージョンの識別子に置き換えます。
- DATABASE_NAME は、データベースの名前に置き換えます。
次のコマンドを実行します。
Linux、macOS、Cloud Shell
gcloud database-migration objects lookup --migration-job=MIGRATION_JOB_ID \ --region=REGION --database=DATABASE_NAME
Windows(PowerShell)
gcloud database-migration objects lookup --migration-job=MIGRATION_JOB_ID ` --region=REGION --database=DATABASE_NAME
Windows(cmd.exe)
gcloud database-migration objects lookup --migration-job=MIGRATION_JOB_ID ^ --region=REGION --database=DATABASE_NAME
結果
出力は次のようになります。
createTime: '2025-03-21T17:05:19.211441641Z' name: PROJECT_ID phase: FULL_DUMP sourceObject: database: DATABASE_NAME type: DATABASE state: RUNNING
-
gcloud database-migration migration-jobs describeコマンドを使用して、移行ジョブのステータスを表示します。 - OPERATION_ID を指定して
gcloud database-migration operations describeを使用し、オペレーション自体のステータスを確認します。
特定のデータベースの移行の詳細を表示する
移行ジョブが完全に作成されると(つまり、下書き状態で保存されていない場合)、Google Cloud CLI を使用して、その移行ジョブに選択したすべてのデータベースを一覧表示し、詳細を表示できます。
このサンプルでは、オプションの --no-async フラグを使用して、すべてのオペレーションが同期的に実行されるようにしています。そのため、一部のコマンドの完了に時間がかかることがあります。--no-async フラグをスキップして、コマンドを非同期で実行できます。その場合は、gcloud database-migration operations describe コマンドを使用して、オペレーションが成功したかどうかを確認する必要があります。
後述のコマンドデータを使用する前に、次のように置き換えます。
- MIGRATION_JOB_ID は、移行ジョブ ID に置き換えます。
識別子がわからない場合は、
gcloud database-migration migration-jobs listコマンドを使用して、特定のリージョン内のすべての移行ジョブを一覧表示し、その識別子を確認できます。 - REGION は、接続プロファイルが保存されているリージョンの識別子に置き換えます。
次のコマンドを実行します。
Linux、macOS、Cloud Shell
gcloud database-migration objects list --migration-job=MIGRATION_JOB_ID \ --region=REGION
Windows(PowerShell)
gcloud database-migration objects list --migration-job=MIGRATION_JOB_ID ` --region=REGION
Windows(cmd.exe)
gcloud database-migration objects list --migration-job=MIGRATION_JOB_ID ^ --region=REGION
結果
出力は次のようになります。
Waiting for migration job MIGRATION_JOB_ID
to fetch source objects with OPERATION_ID
Waiting for operation OPERATION_ID to complete...done.
SOURCE_OBJECT STATE PHASE ERROR
{'database': 'db1', 'type': 'DATABASE'} RUNNING FULL_DUMP
{'database': 'db2', 'type': 'DATABASE'} STOPPED CDC {'code': 1, 'message': 'Internal error'}
-
gcloud database-migration migration-jobs describeコマンドを使用して、移行ジョブのステータスを表示します。 - OPERATION_ID を指定して
gcloud database-migration operations describeを使用し、オペレーション自体のステータスを確認します。