概要
このページでは、Database Migration Service API を使用して AlloyDB の移行先データベースの移行ジョブを管理する方法について説明します。
Database Migration Service API を使用する方法は 2 つあります。REST API 呼び出しを行うか、Google Cloud CLI(CLI)を使用できます。
gcloud を使用して Database Migration Service 移行ジョブを管理する大まかな情報は、こちらをご覧ください。
移行ジョブの下書きを作成する
次の例は、ドラフトモードで移行ジョブを作成するリクエストを示しています。これにより、移行ジョブを一度に作成する必要がなくなります。一部を作成してから、PATCH オペレーションを使用して更新できます。
たとえば、移行ジョブを作成するが、移行先データベースまたはネットワーク接続方法がない場合は、次のコードを使用できます。
REST
リクエストのデータを使用する前に、次のように置き換えます。
- project-id: プロジェクト ID
- region: プロジェクトのリージョン
- migration-job-id: 移行ジョブ ID
- migration-job-name: 移行ジョブ名
- source-connection-profile-id: ソース接続プロファイル ID
- destination-connection-profile-id: 宛先接続プロファイル ID
HTTP メソッドと URL:
POST https://datamigration.googleapis.com/v1/projects/project-id/locations/region/migrationJobs?migrationJobId=migration-job-id
リクエストの本文(JSON):
{
  "displayName": "migration-job-name",
  "state": "DRAFT",
  "type": "CONTINUOUS",
  "source": "projects/project-id/locations/region/connectionProfiles/source-connection-profile-id",
  //"destination":"projects/project-id/locations/region/connectionProfiles/destination-connection-profile-id",
  
  "sourceDatabase": {
    "engine": "POSTGRESQL"
  },
  
  //"vpcPeeringConnectivity": {
  //"vpc": "default"
  //}
}
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
{
  "name": "projects/project-id/locations/region/operations/operation-1591975557292-5a7e4b195623c-e350e3da-713dee7d",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.clouddms.v1.OperationMetadata",
    "createTime": "2020-06-12T15:25:57.430715421Z",
    "target": "projects/project-id/locations/region/migrationJobs/migration-job-id",
    "verb": "create",
    "requestedCancellation": false,
    "apiVersion": "v1"
  },
  "done": false
}
VPC ピアリング接続を使用して継続的な移行ジョブを作成する
次のコードは、VPC ピアリング接続を使用して、PostgreSQL to AlloyDB データベース(Google Compute Engine VM で実行)を Cloud SQL for PostgreSQL to AlloyDB に移行するための継続的な移行ジョブを作成するリクエストを示しています。
REST
リクエストのデータを使用する前に、次のように置き換えます。
- project-id: プロジェクト ID
- region: プロジェクトのリージョン
- migration-job-id: 移行ジョブ ID
- migration-job-name: 移行ジョブ名
- source-connection-profile-id: ソース接続プロファイル ID
- destination-connection-profile-id: 宛先接続プロファイル ID
HTTP メソッドと URL:
POST https://datamigration.googleapis.com/v1/projects/project-id/locations/region/migrationJobs?migrationJobId=migration-job-id
リクエストの本文(JSON):
{
  "displayName": "migration-job-name",
  "state": "NOT_STARTED",
  "type": "CONTINUOUS",
  "source": "projects/project-id/locations/region/connectionProfiles/source-connection-profile-id",
  "destination":"projects/project-id/locations/region/connectionProfiles/destination-connection-profile-id",
  "sourceDatabase": {
    "engine": "POSTGRESQL"
  },
  "vpcPeeringConnectivity": {
    "vpc": "default"
  }
}
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
{
  "name": "projects/project-id/locations/region/operations/operation-1591975557292-5a7e4b195623c-e350e3da-713dee7d",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.clouddms.v1.OperationMetadata",
    "createTime": "2020-06-12T15:25:57.430715421Z",
    "target": "projects/project-id/locations/region/migrationJobs/migration-job-id",
    "verb": "create",
    "requestedCancellation": false,
    "apiVersion": "v1"
  },
  "done": false
}
gcloud
gcloud を使用して Database Migration Service 移行ジョブを作成する方法については、こちらをご覧ください。
リバース SSH 接続を使用して継続的な移行ジョブを作成する
次のコードは、リバース SSH 接続を使用して、Amazon RDS PostgreSQL to AlloyDB データベースを Cloud SQL for PostgreSQL to AlloyDB に移行するための継続的に実行される移行ジョブを作成するリクエストを示しています。
REST
リクエストのデータを使用する前に、次のように置き換えます。
- project-id: プロジェクト ID
- region: プロジェクトのリージョン
- migration-job-id: 移行ジョブ ID
- migration-job-name: 移行ジョブ名
- source-connection-profile-id: ソース接続プロファイル ID
- destination-connection-profile-id: 宛先接続プロファイル ID
- vm-name: SSH VM の名前。たとえば、dms-ssh-bastion です。
- vm-ip-address: SSH VM の IP アドレス。たとえば、11.22.33.44 などです。
- vm-port: SSH VM の接続ポート。例: 3306。
- vpc-name: VPC ネットワーク名。たとえば、projects/project-id/global/networks/test-network です。
- provider: ソース データベースの分類タイプに関連付けられたプロバイダ。- スタンドアロンの PostgreSQL から AlloyDB インスタンスの場合は、DATABASE_PROVIDER_UNSPECIFIEDを使用します。この値はオンプレミス データベースに関連付けられているためです。
- Cloud SQL for PostgreSQL から AlloyDB インスタンスの場合は、CLOUDSQLを使用します。
- マネージド データベース サービスの場合は、対応する ENUM値を使用します。DatabaseProviderオブジェクト リファレンスをご覧ください。
 
- スタンドアロンの PostgreSQL から AlloyDB インスタンスの場合は、
HTTP メソッドと URL:
POST https://datamigration.googleapis.com/v1/projects/project-id/locations/region/migrationJobs?migrationJobId=migration-job-id
リクエストの本文(JSON):
{
  "displayName": "migration-job-name",
  "state": "NOT_STARTED",
  "type": "CONTINUOUS",
  "source": "projects/project-id/locations/region/connectionProfiles/source-connection-profile-id",
  "destination":"projects/project-id/locations/region/connectionProfiles/destination-connection-profile-id",
  
  "sourceDatabase": {
    "engine": "POSTGRESQL",
    "provider": "provider"
  },
  
  "reverseSshConnectivity": {
    "vm": "vm-name",
    "vm_ip": "vm-ip-address",
    "vm_port": vm-port,
    "vpc": "vpc-name"
  }
}
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
{
  "name": "projects/project-id/locations/region/operations/operation-1591973161667-5a7e422cb0ba4-3004980d-2ae97165",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.clouddms.v1.OperationMetadata",
    "createTime": "2020-06-12T14:46:01.744267779Z",
    "target": "projects/project-id/locations/region/migrationJobs/migration-job-id",
    "verb": "create",
    "requestedCancellation": false,
    "apiVersion": "v1"
  },
  "done": false
}
gcloud
gcloud を使用して Database Migration Service 移行ジョブを作成する方法については、こちらをご覧ください。
移行ジョブに関する情報を取得する
REST
リクエストのデータを使用する前に、次のように置き換えます。
- project-id: プロジェクト ID
- region: プロジェクトのリージョン
- migration-job-id: 移行ジョブ ID
HTTP メソッドと URL:
GET https://datamigration.googleapis.com/v1/projects/project-id/locations/region/migrationJobs/migration-job-id
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
{
  "name": "projects/project-id/locations/region/migrationJobs/one-time-vpc-job",
  "createTime": "2020-06-12T15:48:39.666093835Z",
  "updateTime": "2020-06-12T15:48:39.666093835Z",
  "displayName": "migration-job-display-name",
  "state": "CREATING",
  "type": "CONTINUOUS",
  "source": "projects/project-id/locations/region/connectionProfiles/connection-profile-id",
  "destination": "projects/project-id/locations/region/connectionProfiles/connection-profile-id",
  
  "sourceDatabase": {
    "engine": "POSTGRESQL"
  },
  "destinationDatabase": {
    "provider": "ALLOYDB"
  },
  
  "vpcPeeringConnectivity": {
    "vpc": "default"
  }
}
gcloud
gcloud を使用して移行ジョブに関する情報を取得する方法の詳細については、こちらをご覧ください。
移行ジョブを一覧表示する
REST
リクエストのデータを使用する前に、次のように置き換えます。
- project-id: プロジェクト ID
- region: プロジェクトのリージョン
- orderBy:このフィルタを使用すると、特定のリージョンのすべての移行ジョブのリストをアルファベット順で取得できます。たとえば、- orderBy=nameフィルタは、すべての移行ジョブを名前でアルファベット順に返します。
- 
    pageSize:このフィルタを使用すると、Database Migration Service が取得してページに表示する移行ジョブの最大数を指定できます。たとえば、pageSize=10を設定すると、Database Migration Service は 1 ページに最大 10 個の移行ジョブを返します。
移行ジョブが 10 件を超える場合は、他のページに表示されます。各ページの最後に、nextPageToken パラメータと一意の識別子(oasndfoasdnoasun1241243ojsandf など)が表示されます。この識別子を使用して、次のページの移行ジョブのリストを取得します。最後のページには、nextPageToken パラメータと一意の識別子は表示されません。
HTTP メソッドと URL:
GET https://datamigration.googleapis.com/v1/projects/project-id/locations/region/migrationJobs
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
{
  "migrationJobs": [
    {
      "name": "projects/project-id/locations/region/migrationJobs/name-of-first-migration-job",
      "createTime": "2020-06-12T15:48:39.666093835Z",
      "updateTime": "2020-06-12T15:48:39.666093835Z",
      "displayName": "display-name-of-first-migration-job",
      "state": "NOT_STARTED",
      "type": "CONTINUOUS",
      "source": "projects/project-id/locations/region/connectionProfiles/connection-profile-id",
      "destination": "projects/project-id/locations/region/connectionProfiles/connection-profile-id",
      
      "sourceDatabase": {
        "engine": "POSTGRESQL"
      },
      "destinationDatabase": {
        "provider": "ALLOYDB"
      },
      
      "vpcPeeringConnectivity": {
        "vpc": "default"
      }
    }
    {
      "name": "projects/project-id/locations/region/migrationJobs/name-of-second-migration-job",
      "createTime": "2021-02-13T11:59:39.104613835Z",
      "updateTime": "2021-02-13T12:01:38.666093835Z",
      "displayName": "display-name-of-second-migration-job",
      "state": "RUNNING",
      "type": "CONTINUOUS",
      "source": "projects/project-id/locations/region/connectionProfiles/connection-profile-id",
      "destination": "projects/project-id/locations/region/connectionProfiles/connection-profile-id",
      
      "sourceDatabase": {
        "engine": "POSTGRESQL"
      },
      "destinationDatabase": {
        "provider": "ALLOYDB"
      },
      
      "staticIpConnectivity": {}
        "vpc": "default"
    }
  ],
  "nextPageToken": "unique-identifier"
}
gcloud
gcloud を使用してすべての移行ジョブに関する情報を取得する方法については、こちらをご覧ください。
移行ジョブの SSH トンネル構成スクリプトを生成する
REST
リクエストのデータを使用する前に、次のように置き換えます。
- project-id: プロジェクト ID
- region: プロジェクトのリージョン
- migration-job-id: 移行ジョブ ID
HTTP メソッドと URL:
POST https://datamigration.googleapis.com/v1/projects/project-id/locations/region/migrationJobs/migration-job-id:generateSshScript
リクエストの本文(JSON):
{
  "vm":"vm-name",
  "vmCreationConfig":{
    "vmMachineType":"machine-type",
    "subnet":"subnet-name"
	}
}
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
{
  "name": "projects/project-id/locations/region/operations/operation-1591973161667-5a7e422cb0ba4-3004980d-2ae97165",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.clouddms.v1.OperationMetadata",
    "createTime": "2020-06-12T14:46:01.744267779Z",
    "target": "projects/project-id/locations/region/migrationJobs/migration-job-id",
    "verb": "generate",
    "requestedCancellation": false,
    "apiVersion": "v1"
  },
  "done": false
}
gcloud
gcloud を使用して移行ジョブの SSH スクリプトを生成する方法の詳細については、こちらをご覧ください。
移行ジョブを確認する
次の例は、移行ジョブを確認するリクエストを示しています。移行ジョブを検証することで、ジョブが正常に開始して実行されることを確認できます。
REST
リクエストのデータを使用する前に、次のように置き換えます。
- project-id: プロジェクト ID
- region: プロジェクトのリージョン
- migration-job-id: 移行ジョブ ID
HTTP メソッドと URL:
POST https://datamigration.googleapis.com/v1/projects/project-id/locations/region/migrationJobs/migration-job-id:verify
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
{
  "name": "projects/project-id/locations/region/operations/operation-1591973161667-5a7e422cb0ba4-3004980d-2ae97165",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.clouddms.v1.OperationMetadata",
    "createTime": "2020-06-12T14:46:01.744267779Z",
    "target": "projects/project-id/locations/region/migrationJobs/migration-job-id",
    "verb": "verify",
    "requestedCancellation": false,
    "apiVersion": "v1"
  },
  "done": false
}
gcloud
gcloud を使用して移行ジョブを確認する方法の詳細については、こちらをご覧ください。
移行ジョブを更新する
次の例は、既存の移行ジョブの表示名を更新するリクエストを示しています。リクエストで updateMask パラメータを使用することによって、これらのフィールドのみをリクエストの本文に含めば済むようになります。
REST
リクエストのデータを使用する前に、次のように置き換えます。
- project-id: プロジェクト ID
- region: プロジェクトのリージョン
- migration-job-id: 移行ジョブ ID
HTTP メソッドと URL:
PATCH https://datamigration.googleapis.com/v1/projects/project-id/locations/region/connectionProfiles/connection-profile-id?updateMask=displayName
リクエストの本文(JSON):
{
  "displayName": "updated-display-name",
}
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
{
  "name": "projects/project-id/locations/region/operations/operation-1591973161667-5a7e422cb0ba4-3004980d-2ae97165",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.clouddms.v1.OperationMetadata",
    "createTime": "2020-06-12T14:46:01.744267779Z",
    "target": "projects/project-id/locations/region/migrationJobs/migration-job-id",
    "verb": "update",
    "requestedCancellation": false,
    "apiVersion": "v1"
  },
  "done": false
}
gcloud
gcloud を使用して移行ジョブを更新する方法の詳細については、こちらをご覧ください。
移行ジョブを開始する
次のコードは、移行ジョブを開始するリクエストを示しています。
REST
リクエストのデータを使用する前に、次のように置き換えます。
- project-id: プロジェクト ID
- region: プロジェクトのリージョン
- migration-job-id: 移行ジョブ ID
HTTP メソッドと URL:
POST https://datamigration.googleapis.com/v1/projects/project-id/locations/region/migrationJobs/migration-job-id:start
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
{
  "name": "projects/project-id/locations/region/operations/operation-1591973161667-5a7e422cb0ba4-3004980d-2ae97165",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.clouddms.v1.OperationMetadata",
    "createTime": "2020-06-12T14:46:01.744267779Z",
    "target": "projects/project-id/locations/region/migrationJobs/migration-job-id",
    "verb": "start",
    "requestedCancellation": false,
    "apiVersion": "v1"
  },
  "done": false
}
gcloud
gcloud を使用して移行ジョブを開始する方法の詳細については、こちらをご覧ください。
失敗した移行ジョブを再起動する
次の例は、移行ジョブを再起動するリクエストを示しています。移行に失敗して復元できない場合や、完全なダンプ中に停止した場合は、移行ジョブを最初から再開できます。
REST
リクエストのデータを使用する前に、次のように置き換えます。
- project-id: プロジェクト ID
- region: プロジェクトのリージョン
- migration-job-id: 移行ジョブ ID
HTTP メソッドと URL:
POST https://datamigration.googleapis.com/v1/projects/project-id/locations/region/migrationJobs/migration-job-id:restart
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
{
  "name": "projects/project-id/locations/region/operations/operation-1591973161667-5a7e422cb0ba4-3004980d-2ae97165",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.clouddms.v1.OperationMetadata",
    "createTime": "2020-06-12T14:46:01.744267779Z",
    "target": "projects/project-id/locations/region/migrationJobs/migration-job-id",
    "verb": "restart",
    "requestedCancellation": false,
    "apiVersion": "v1"
  },
  "done": false
}
gcloud
gcloud を使用して移行ジョブを再起動する方法の詳細については、こちらをご覧ください。
移行ジョブを停止する
次の例は、移行ジョブを停止するリクエストを示しています。
REST
リクエストのデータを使用する前に、次のように置き換えます。
- project-id: プロジェクト ID
- region: プロジェクトのリージョン
- migration-job-id: 移行ジョブ ID
HTTP メソッドと URL:
POST https://datamigration.googleapis.com/v1/projects/project-id/locations/region/migrationJobs/migration-job-id:stop
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
{
  "name": "projects/project-id/locations/region/operations/operation-1591973161667-5a7e422cb0ba4-3004980d-2ae97165",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.clouddms.v1.OperationMetadata",
    "createTime": "2020-06-12T14:46:01.744267779Z",
    "target": "projects/project-id/locations/region/migrationJobs/migration-job-id",
    "verb": "stop",
    "requestedCancellation": false,
    "apiVersion": "v1"
  },
  "done": false
}
gcloud
gcloud を使用して移行ジョブを停止する方法の詳細については、こちらをご覧ください。
移行ジョブを再開する
次のコードは、移行ジョブを再開するリクエストを示しています。
REST
リクエストのデータを使用する前に、次のように置き換えます。
- project-id: プロジェクト ID
- region: プロジェクトのリージョン
- migration-job-id: 移行ジョブ ID
HTTP メソッドと URL:
POST https://datamigration.googleapis.com/v1/projects/project-id/locations/region/migrationJobs/migration-job-id:resume
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
{
  "name": "projects/project-id/locations/region/operations/operation-1591973161667-5a7e422cb0ba4-3004980d-2ae97165",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.clouddms.v1.OperationMetadata",
    "createTime": "2020-06-12T14:46:01.744267779Z",
    "target": "projects/project-id/locations/region/migrationJobs/migration-job-id",
    "verb": "resume",
    "requestedCancellation": false,
    "apiVersion": "v1"
  },
  "done": false
}
gcloud
gcloud を使用して移行ジョブを再開する方法の詳細については、こちらをご覧ください。
移行ジョブをプロモートする
次の例は、移行ジョブを昇格させるリクエストを示しています。
REST
リクエストのデータを使用する前に、次のように置き換えます。
- project-id: プロジェクト ID
- region: プロジェクトのリージョン
- migration-job-id: 移行ジョブ ID
HTTP メソッドと URL:
POST https://datamigration.googleapis.com/v1/projects/project-id/locations/region/migrationJobs/migration-job-id:promote
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
{
  "name": "projects/project-id/locations/region/operations/operation-1591973161667-5a7e422cb0ba4-3004980d-2ae97165",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.clouddms.v1.OperationMetadata",
    "createTime": "2020-06-12T14:46:01.744267779Z",
    "target": "projects/project-id/locations/region/migrationJobs/migration-job-id",
    "verb": "promote",
    "requestedCancellation": false,
    "apiVersion": "v1"
  },
  "done": false
}
gcloud
gcloud を使用して移行ジョブを昇格させる方法の詳細については、こちらをご覧ください。
移行ジョブを削除する
次のコードは、移行ジョブを削除するリクエストを示しています。
REST
リクエストのデータを使用する前に、次のように置き換えます。
- project-id: プロジェクト ID
- region: プロジェクトのリージョン
- migration-job-id: 移行ジョブ ID
HTTP メソッドと URL:
DELETE https://datamigration.googleapis.com/v1/projects/project-id/locations/region/migrationJobs/migration-job-id
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
{
  "name": "projects/project-id/locations/region/operations/operation-1591973161667-5a7e422cb0ba4-3004980d-2ae97165",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.clouddms.v1.OperationMetadata",
    "createTime": "2020-06-12T14:46:01.744267779Z",
    "target": "projects/project-id/locations/region/migrationJobs/migration-job-id",
    "verb": "delete",
    "requestedCancellation": false,
    "apiVersion": "v1"
  },
  "done": false
}
gcloud
gcloud を使用して移行ジョブを削除する方法の詳細については、こちらをご覧ください。