移行の進行状況を表示して管理する

Oracle から Cloud SQL for PostgreSQL への異種移行では、移行ジョブ全体または移行ジョブに含まれる個々のテーブルの移行の進行状況をモニタリングして管理できます。

このページでは、各レベルで実行できる操作について説明します。詳細については、 移行ジョブを管理する 個々のテーブルを管理するの各セクションをご覧ください。

移行ジョブの管理

Google Cloud コンソールでは、同じ ステータスの移行ジョブに対して一括でアクションを実行できます。単一の移行ジョブに対して、 Google Cloud コンソールと Google Cloud CLI の両方でアクションを実行できます。

移行ジョブに対して次のいずれかの操作を行うことができます。

アクション 説明
開始 実行中または開始中の状態ではない移行ジョブを開始します。 移行ジョブのステータスをご覧ください。
停止 実行中の移行ジョブを停止します。データ移動が一時停止されます。移行ジョブのステータスは、最初に Stopping に変わり、次に Stopped に変わります。停止した移行ジョブを再開、削除、または 昇格できます。

場合によっては、移行ジョブを再開するまで、ソース データベースでデータを保持する必要があります。ソースのデータベースの保持期間が制限されている場合があります。移行ジョブが保持期間よりも長く一時停止され、その後移行ジョブが再開されると、移行ジョブが失敗する可能性があります。この場合は、移行ジョブを削除するか、再起動します。

再開 CDC フェーズで停止した移行ジョブを再開できます。移行ジョブを再開すると、Database Migration Service は、移行ジョブの停止中に蓄積された変更イベントのレプリケーションを再開します。
再起動

エラーが発生し、データ複製を続行できない移行ジョブを再起動できます。

移行ジョブの再起動の結果は、失敗した理由によって異なります。

  • 1 つ以上の移行元または移行先データベース テーブルのエラーが原因でレプリケーションが失敗した場合、移行ジョブを再起動すると、移行ジョブに含まれる移行先データベース テーブルからすべてのデータがワイプされます。
  • 移行ジョブを再開しても、Database Migration Service は移行元データベースで作成した新しいテーブルを複製しません。まず、 テーブルを変換ワークスペースに追加して、スキーマを変換する必要があります。
編集 移行ジョブを編集するをご覧ください。
削除 移行ジョブは削除できます。結果はジョブのステータスによって異なります。
  • 移行ジョブが Completed ステータスの場合、レコードは移行ジョブリストから削除されます。
  • 移行ジョブが他のステータスの場合、関連付けられている移行先の Cloud SQL for PostgreSQL インスタンスを削除するオプションがあります。
宣伝 移行プロセス中、移行先のデータベースは読み取り専用状態になり、Database Migration Service によって完全に管理されます。アプリケーションを移行先のデータベースに切り替える場合は、移行ジョブをプロモートすると、移行先のデータベースがスタンドアロン レプリカに更新されます。 移行をプロモートするをご覧ください。

移行ジョブの確認

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

    移行ジョブに移動する

  2. 移行ジョブを選択して、詳細ページを表示します。このページには次の情報が表示されます。
    • 移行ジョブのメタデータ(表示名、ID、移行タイプ、移行元接続プロファイル、移行元データベース エンジン、移行先、接続方法、移行ジョブの作成日時、移行ジョブの実行時間など)。
    • 移行ジョブのステータスとサブステータス、追加情報。移行ジョブのステータスとサブステータスに応じて、さまざまなアクションを使用できます。

移行ジョブを開始する

移行ジョブが完全に作成されると(下書き状態ではない場合)、いつでも開始してデータの移行を開始できます。

移行ジョブを開始するには、次の操作を行います。

コンソール

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

    移行ジョブに移動する

  2. [ジョブ] タブで、開始する移行ジョブの表示名をクリックします。

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

  3. [開始] をクリックします。
  4. ダイアログで [開始] をクリックします。

gcloud

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

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

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

  • 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

結果

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

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

移行ジョブを停止する

次の手順を行うと、 実行中の移行ジョブをいつでも停止できます。

コンソール

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

    移行ジョブに移動する

  2. [ジョブ] タブで、開始する移行ジョブの表示名をクリックします。

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

  3. [停止] をクリックします。
  4. ダイアログで [停止] をクリックします。

gcloud

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

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

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

  • 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

結果

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

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

移行ジョブを再開する

停止した移行ジョブを再開するには、次の操作を行います。

コンソール

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

    移行ジョブに移動する

  2. [ジョブ] タブで、開始する移行ジョブの表示名をクリックします。

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

  3. [再開] をクリックします。
  4. ダイアログで [再開] をクリックします。

gcloud

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

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

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

  • 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

結果

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

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

移行ジョブを再開する

移行ジョブを再起動すると、Database Migration Service は移行先テーブルからすべてのデータを消去します。移行元データは影響を受けません。移行プロセスは、完全なダンプ段階から新たに開始されます。

移行ジョブを再開する手順は次のとおりです。

コンソール

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

    移行ジョブに移動する

  2. [ジョブ] タブで、再開する移行ジョブの表示名をクリックします。

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

  3. [再起動] をクリックします。
  4. ダイアログで [再起動] をクリックします。

gcloud

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

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

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

  • REGION: 移行ジョブが保存されているリージョンの ID。

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

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

結果

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

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

移行ジョブの下書きを更新する

移行ジョブの作成を完了するには、次の操作を行います。

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

    移行ジョブに移動する

  2. [下書き] タブで、作成を完了する移行ジョブの表示名をクリックします。

    移行ジョブ作成ウィザードが開きます。

  3. 移行ジョブの作成を完了します。 移行ジョブを作成するをご覧ください。

移行ジョブを編集する

移行元データベースのテーブルやスキーマなど、Database Migration Service が移行先に移行する移行元の構成情報を変更できます。Database Migration Service は、この構成情報を使用して、移行元から移行先に正しいデータを移行します。

移行からオブジェクトを追加または削除する

移行からテーブルまたはスキーマを追加または削除する手順は次のとおりです。

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

    移行ジョブに移動する

  2. 変更する移行ジョブの表示名をクリックします。移行ジョブの概要ページが表示されます。

  3. [移行するオブジェクトを選択] セクションで、チェックボックスをオンまたはオフにして、Database Migration Service が移行先に移行する移行元のテーブルとスキーマを変更します。

  4. [保存] または [保存して再起動] をクリックします。

    • [保存] をクリックすると、Database Migration Service は、選択したスキーマとテーブルの履歴データのみを移動します。

    • [保存して再開] をクリックすると、Database Migration Service は、移行先で選択したテーブルをクリーンアップした後、移行を最初から開始します。

ソース データベースへの同時接続の最大数を調整する

完全なダンプフェーズまたは CDC フェーズで、Database Migration Service が移行元インスタンスに作成できる最大同時接続数をカスタマイズできます。

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

    移行ジョブに移動する

  2. 変更する移行ジョブの表示名をクリックします。移行ジョブの概要ページが表示されます。

  3. [ソース構成をカスタマイズ] > [ソース読み取り設定] セクションを開きます。

  4. [完全なダンプの最大同時接続数] セクションまたは [CDC の最大同時接続数] セクションで、[カスタム] フィールドを使用して、完全なダンプまたは CDC フェーズの最大接続数の上限を入力します。

  5. [保存] または [保存して再起動] をクリックします。

移行先の構成設定を調整する

移行先データベースのトランザクション タイムアウトと最大同時接続数をカスタマイズできます。

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

    [移行ジョブ] に移動します。

  2. 変更する移行ジョブの表示名をクリックします。

    移行ジョブの概要ページが表示されます。

  3. [送信先構成をカスタマイズ] セクションを開き、次の設定を変更します。
    移行先の最大同時接続数

    デフォルト値: 128

    許容値: 最小値 2、最大値 256

    Database Migration Service が移行先インスタンスに確立できる最大同時接続数をカスタマイズできます。

    Database Migration Service は、指定された接続制限内で最適なパフォーマンスを確保するために、接続数を調整します。最大接続上限を増やすと移行速度を向上させることができますが、移行先のデータベースに負荷がかかります。

    トランザクションのタイムアウト

    デフォルト値: 30

    許容値: 最小値 30、最大値 300

    移行プロセス中に、Database Migration Service でトランザクションがタイムアウトする原因となる特定の問題が発生することがあります。Database Migration Service がトランザクションの完了を待機してからキャンセルするまでの秒数を調整できます。

    トランザクションがキャンセルされても、移行ジョブは失敗しません。移行ジョブはデータのコピーを続行しますが、ステータスが [Running with errors] に変わります。移行ジョブの詳細を表示して、対処が必要な問題を確認できます。

  4. [保存] または [保存して再起動] をクリックします。

移行ジョブをテストする

移行ジョブを実行する前に、テスト オペレーションを実行して、Database Migration Service が必要な移行元エンティティと移行先エンティティにすべてアクセスできるかどうかを確認できます。 Google Cloud コンソールでは、移行ジョブ作成ウィザードで作成した移行ジョブの下書きのみをテストできます( 移行ジョブを作成するをご覧ください)。

gcloud CLI を使用すると、作成済みでまだ開始されていない移行ジョブをテストできます。

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

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

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

  • 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

結果

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

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

個々のテーブルを管理する

Oracle から Cloud SQL for PostgreSQL への異種移行では、移行ジョブに含まれる特定のテーブルのステータスの詳細を表示できます。

ジョブ内のすべてのテーブルを表示する

移行ジョブ内のすべてのテーブルの詳細を表示する手順は次のとおりです。

コンソール

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

    移行ジョブに移動する

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

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

  3. [テーブル] タブを選択して、ジョブに含まれるすべてのテーブルを表示します。インタラクティブ フィルタを使用してリストを絞り込むこともできます。

gcloud

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

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

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

  • REGION: 移行ジョブが保存されているリージョンの ID。

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

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

結果

このコマンドは、移行ジョブに含まれるすべてのテーブルの状態、フェーズ、エラーの詳細を空行で区切って返します。

SOURCE_OBJECT: {'schema': 'Schema1', 'table': 'MyTable1', 'type': 'TABLE'}
STATE: RUNNING
PHASE: CDC
ERROR: {}

SOURCE_OBJECT: {'schema': 'Production', 'table': 'MyTable2', 'type': 'TABLE'}
STATE: RUNNING
PHASE: FULL_DUMP
ERROR:
  { 'code': 2,
    'details': [
        { '@type': 'type.googleapis.com/google.rpc.ErrorInfo',
          'domain': 'datamigration.googleapis.com',
          'metadata': {
            'errorMessage': '[DATABASE] error trying to write processed rows.
              Line: 2619 Position: 0 Schema: production Table: mytable2',
            'errorScope': 'NON_GLOBAL',
            'objectId': 'Production_MyTable2',
            'projectName': 'PROJECT_ID',
            'resourceName': 'MIGRATION_JOB_ID',
            'severity': 'ERROR'
          },
          'reason': 'DESTINATION_WRITE_ERROR'
        }
      ],
    'message': 'Encountered errors with your migration job table. Check the `details`
                  array for specific information on each issue.'
  }

単一のテーブルの詳細を表示する

単一のテーブルの移行の詳細を表示するには、次の操作を行います。

コンソール

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

    移行ジョブに移動する

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

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

  3. [テーブル] タブを選択し、検査するテーブルをクリックします。インタラクティブ フィルタを使用してリストを絞り込むこともできます。

    テーブルの詳細サイドパネルが開きます。

gcloud

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

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

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

  • REGION: 移行ジョブが保存されているリージョンの ID。
  • SCHEMA_NAME は、テーブルを含む親スキーマの名前に置き換えます。
  • TABLE_NAME はテーブルの名前に置き換えます。

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

Linux、macOS、Cloud Shell

gcloud database-migration objects lookup \
  --migration-job=MIGRATION_JOB_ID \
  --region=REGION \
  --schema=SCHEMA_NAME \
  --table=TABLE_NAME

Windows(PowerShell)

gcloud database-migration objects lookup `
  --migration-job=MIGRATION_JOB_ID `
  --region=REGION `
  --schema=SCHEMA_NAME `
  --table=TABLE_NAME

Windows(cmd.exe)

gcloud database-migration objects lookup ^
  --migration-job=MIGRATION_JOB_ID ^
  --region=REGION ^
  --schema=SCHEMA_NAME ^
  --table=TABLE_NAME

結果

このコマンドは、テーブルの状態、フェーズ、作成時間、エラーの詳細を返します。レスポンス全体は、複数行の YAML 形式の文字列です。次に例を示します。

createTime: '2025-06-02T10:20:29.792832Z'
error:
  code: 2
  details:
  - '@type': type.googleapis.com/google.rpc.ErrorInfo
    domain: datamigration.googleapis.com
    metadata:
      errorMessage: '[DATABASE] error trying to write processed rows.
              Line: 2619 Position: 0 Schema: production Table: mytable2'
      errorScope: NON_GLOBAL
      objectId: Production_MyTable2
      projectName: PROJECT_ID
      resourceName: MIGRATION_JOB_ID
      severity: ERROR
    reason: DESTINATION_WRITE_ERROR
  message: Encountered errors with your migration job table. Check the `details` array
    for specific information on each issue.
name: projects/PROJECT_ID/locations/REGION/migrationJobs/MIGRATION_JOB_ID/objects/TABLE_UUID
phase: FULL_DUMP
sourceObject:
  schema: Production
  table: MyTable2
  type: TABLE
state: RUNNING