すべてのプロダクト
Search
ドキュメントセンター

Data Transmission Service:Alibaba Cloud CLI を使用した DTS タスクの作成

最終更新日:May 15, 2026

このトピックでは、Alibaba Cloud CLI を使用して、データ移行、データ同期、データサブスクリプションのための Data Transmission Service (DTS) タスクを作成および設定する方法について説明します。

概要

Alibaba Cloud CLI を使用した DTS タスクの作成には、主に 3 つのステップがあります。

  1. DTS インスタンスの購入:CreateDtsInstance API を呼び出して、指定されたタイプの DTS インスタンスを購入し、そのインスタンス ID を取得します。

  2. DTS タスクの設定:ConfigureDtsJob API を呼び出して、ソースデータベースとターゲットデータベースの接続情報、移行または同期するオブジェクト、およびその他の設定を構成します。

  3. DTS タスクの開始:StartDtsJob API を呼び出してタスクを開始し、DescribeDtsJobDetail API を呼び出してそのステータスを照会します。

このトピックの例では、RDS for MySQL ソースデータベースから RDS for MySQL ターゲットデータベースへのデータ転送を示します。この例では、データ移行、データ同期、データサブスクリプションのタスクを作成するための CLI コマンドを示します。ソースデータベースとターゲットデータベースのパラメーターは、ご自身の環境に合わせて置き換えることができます。

前提条件

注意事項

  • CreateDtsInstance API の SourceRegion および DestinationRegion パラメーターは、ソースデータベースとターゲットデータベースのリージョンと一致している必要があります。

  • CreateDtsInstance API の Type パラメーターはタスクタイプを指定します。有効な値は、MIGRATION (データ移行)、SYNC (データ同期)、SUBSCRIBE (データサブスクリプション) です。

  • ConfigureDtsJob API の DbList パラメーターは、移行または同期するオブジェクトを JSON 形式で指定します。フォーマットの詳細については、「移行、同期、またはサブスクライブするオブジェクト」をご参照ください。

  • データ移行タスクは、従量課金のみに対応しています。データ同期タスクとデータサブスクリプションタスクは、従量課金とサブスクリプションの両方に対応しています。

  • SourceEndpointPasswordDestinationEndpointPassword などのデータベースパスワードのパラメーターは、コマンドライン上でプレーンテキストで表示されるのを避けるため、環境変数として渡してください。

データ移行タスクの作成

次の例では、Alibaba Cloud CLI を使用して、RDS for MySQL データベースから別のデータベースにデータ移行タスクを作成する方法を示します。

ステップ1:移行インスタンスの購入

次のコマンドを実行して CreateDtsInstance API を呼び出し、データ移行インスタンスを購入します。

aliyun dts CreateDtsInstance \
  --Type MIGRATION \
  --SourceRegion cn-hangzhou \
  --DestinationRegion cn-shanghai \
  --SourceEndpointEngineName MySQL \
  --DestinationEndpointEngineName MySQL \
  --PayType PostPaid \
  --InstanceClass small

出力例:

{
  "InstanceId": "dtsse7s11v26j****",
  "JobId": "se7s11v26j****",
  "RequestId": "E52C5BD7-AF7D-4F5D-A8F5-D3B5F0****",
  "Success": true
}

レスポンスの InstanceId を記録します。この値は DTS インスタンス ID であり、以降のステップで DtsInstanceId パラメーターとして使用されます。

ステップ2:移行タスクの設定

次のコマンドを実行して ConfigureDtsJob API を呼び出し、ソースデータベースとターゲットデータベースを設定します。

aliyun dts ConfigureDtsJob \
  --DtsInstanceId dtsse7s11v26j**** \
  --DtsJobName "rds_mysql_migration_demo" \
  --JobType MIGRATION \
  --SourceEndpointInstanceType RDS \
  --SourceEndpointInstanceID rm-bp1imrtn6fq****  \
  --SourceEndpointEngineName MYSQL \
  --SourceEndpointRegion cn-hangzhou \
  --SourceEndpointDatabaseName source_db \
  --SourceEndpointUserName dts_user \
  --SourceEndpointPassword '${SOURCE_DB_PASSWORD}' \
  --DestinationEndpointInstanceType RDS \
  --DestinationEndpointInstanceID rm-bp1k5v0rm3d****  \
  --DestinationEndpointEngineName MYSQL \
  --DestinationEndpointRegion cn-shanghai \
  --DestinationEndpointDatabaseName target_db \
  --DestinationEndpointUserName dts_user \
  --DestinationEndpointPassword '${DEST_DB_PASSWORD}' \
  --StructureInitialization true \
  --DataInitialization true \
  --DataSynchronization true \
  --DbList '{"source_db":{"name":"source_db","all":true}}'

出力例:

{
  "RequestId": "1D234B10-5C84-4F26-B06A-3E48D2****",
  "DtsJobId": "se7s11v26j****",
  "ErrCode": "",
  "Success": "true",
  "HttpStatusCode": 200
}

ステップ3:移行タスクの開始

次のコマンドを実行して StartDtsJob API を呼び出し、移行タスクを開始します。

aliyun dts StartDtsJob \
  --DtsJobId se7s11v26j****

出力例:

{
  "RequestId": "A7B3E61D-2C2F-4B3B-A5D8-F7E49D****",
  "ErrCode": "",
  "Success": "true",
  "HttpStatusCode": 200
}

ステップ4:タスクステータスの照会

次のコマンドを実行して DescribeDtsJobDetail API を呼び出し、移行タスクのステータスを照会します。

aliyun dts DescribeDtsJobDetail \
  --DtsJobId se7s11v26j****

レスポンスの StatusMigrating であることを確認します。これは、移行タスクが実行中であることを示します。

データ同期タスクの作成

次の例では、Alibaba Cloud CLI を使用して、RDS for MySQL データベースから別のデータベースにデータ同期タスクを作成する方法を示します。

ステップ1:同期インスタンスの購入

次のコマンドを実行して CreateDtsInstance API を呼び出し、データ同期インスタンスを購入します。

aliyun dts CreateDtsInstance \
  --Type SYNC \
  --SourceRegion cn-hangzhou \
  --DestinationRegion cn-hangzhou \
  --SourceEndpointEngineName MySQL \
  --DestinationEndpointEngineName MySQL \
  --PayType PostPaid \
  --InstanceClass small \
  --SyncArchitecture oneway

出力例:

{
  "InstanceId": "dtsbi6e22ay24****",
  "JobId": "bi6e22ay24****",
  "RequestId": "6C2FE2A1-B9D3-4E5C-8A1B-C3F28E****",
  "Success": true
}

ステップ2:同期タスクの設定

次のコマンドを実行して ConfigureDtsJob API を呼び出し、同期タスクのソースデータベースとターゲットデータベースを設定します。

aliyun dts ConfigureDtsJob \
  --DtsInstanceId dtsbi6e22ay24**** \
  --DtsJobName "rds_mysql_sync_demo" \
  --JobType SYNC \
  --SourceEndpointInstanceType RDS \
  --SourceEndpointInstanceID rm-bp1imrtn6fq****  \
  --SourceEndpointEngineName MYSQL \
  --SourceEndpointRegion cn-hangzhou \
  --SourceEndpointDatabaseName source_db \
  --SourceEndpointUserName dts_user \
  --SourceEndpointPassword '${SOURCE_DB_PASSWORD}' \
  --DestinationEndpointInstanceType RDS \
  --DestinationEndpointInstanceID rm-bp1k5v0rm3d**** \
  --DestinationEndpointEngineName MYSQL \
  --DestinationEndpointRegion cn-hangzhou \
  --DestinationEndpointDatabaseName target_db \
  --DestinationEndpointUserName dts_user \
  --DestinationEndpointPassword '${DEST_DB_PASSWORD}' \
  --StructureInitialization true \
  --DataInitialization true \
  --DataSynchronization true \
  --DbList '{"source_db":{"name":"source_db","all":true}}'

出力例:

{
  "RequestId": "8E2D3A9C-4B5F-4C6A-9D7E-A1B2C3****",
  "DtsJobId": "bi6e22ay24****",
  "ErrCode": "",
  "Success": "true",
  "HttpStatusCode": 200
}

ステップ3:同期タスクの開始

次のコマンドを実行して StartDtsJob API を呼び出し、同期タスクを開始します。

aliyun dts StartDtsJob \
  --DtsJobId bi6e22ay24****

ステップ4:タスクステータスの照会

次のコマンドを実行して DescribeDtsJobDetail API を呼び出し、同期タスクのステータスを照会します。

aliyun dts DescribeDtsJobDetail \
  --DtsJobId bi6e22ay24****

レスポンスの StatusSynchronizing であることを確認します。これは、同期タスクが進行中であることを示します。

データサブスクリプションタスクの作成

次の例では、Alibaba Cloud CLI を使用して、RDS for MySQL データベースのデータサブスクリプションタスクを作成する方法を示します。

ステップ1:サブスクリプションインスタンスの購入

次のコマンドを実行して CreateDtsInstance API を呼び出し、データサブスクリプションインスタンスを購入します。

aliyun dts CreateDtsInstance \
  --Type SUBSCRIBE \
  --SourceRegion cn-hangzhou \
  --SourceEndpointEngineName MySQL \
  --PayType PostPaid \
  --InstanceClass small

出力例:

{
  "InstanceId": "dtsk3m1zb527a****",
  "JobId": "k3m1zb527a****",
  "RequestId": "3F5A8B2C-6D7E-4A9B-8C1D-E2F3A4****",
  "Success": true
}

ステップ2:サブスクリプションタスクの設定

次のコマンドを実行して ConfigureSubscription API を呼び出し、データサブスクリプションタスクを設定します。

aliyun dts ConfigureSubscription \
  --RegionId cn-hangzhou \
  --DtsInstanceId dtsk3m1zb527a**** \
  --DtsJobName "rds_mysql_subscribe_demo" \
  --SourceEndpointInstanceType RDS \
  --SourceEndpointInstanceID rm-bp1imrtn6fq**** \
  --SourceEndpointEngineName MYSQL \
  --SourceEndpointRegion cn-hangzhou \
  --SourceEndpointDatabaseName source_db \
  --SourceEndpointUserName dts_user \
  --SourceEndpointPassword '${SOURCE_DB_PASSWORD}' \
  --DbList '{"source_db":{"name":"source_db","all":true}}' \
  --SubscriptionDataTypeDDL true \
  --SubscriptionDataTypeDML true \
  --SubscriptionInstanceNetworkType vpc \
  --SubscriptionInstanceVPCId vpc-bp1opxu1zkhn00g****  \
  --SubscriptionInstanceVSwitchId vsw-bp1s5fnvk4gn2tw****

出力例:

{
  "RequestId": "B4C5D6E7-8F9A-4B1C-2D3E-F4A5B6****",
  "DtsJobId": "k3m1zb527a****",
  "ErrCode": "",
  "Success": "true",
  "HttpStatusCode": 200
}

SubscriptionInstanceNetworkType は必須パラメーターで、現在は vpc のみに対応しています。このパラメーターを vpc に設定する場合、SubscriptionInstanceVPCId および SubscriptionInstanceVSwitchId パラメーターも指定する必要があります。

ステップ3:サブスクリプションタスクの開始

次のコマンドを実行して StartDtsJob API を呼び出し、サブスクリプションタスクを開始します。

aliyun dts StartDtsJob \
  --DtsJobId k3m1zb527a****

ステップ4:タスクステータスの照会

次のコマンドを実行して DescribeDtsJobDetail API を呼び出し、サブスクリプションタスクのステータスを照会します。

aliyun dts DescribeDtsJobDetail \
  --DtsJobId k3m1zb527a****

レスポンスの StatusNormal であることを確認します。これは、サブスクリプションタスクが正常に実行されていることを示します。

Create a data validation task

A data validation task verifies data consistency between the source and destination databases after data migration or synchronization. The following example shows how to create a validation task for an existing data migration task.

Step 1: Purchase a validation instance

Run the following command to call the CreateDtsInstance operation to purchase a data validation instance.

aliyun dts CreateDtsInstance \
  --Type CHECK \
  --SourceRegion cn-hangzhou \
  --DestinationRegion cn-shanghai \
  --SourceEndpointEngineName MySQL \
  --DestinationEndpointEngineName MySQL \
  --PayType PostPaid \
  --InstanceClass small

Sample output:

{
  "InstanceId": "dtsp2w8rx6315****",
  "JobId": "p2w8rx6315****",
  "RequestId": "D5E6F7A8-9B0C-4D1E-2F3A-B4C5D6****",
  "Success": true
}

Step 2: Configure the validation task

Run the following command to call the ConfigureDtsJob operation to configure the source and destination databases for the validation task.

aliyun dts ConfigureDtsJob \
  --DtsInstanceId dtsp2w8rx6315**** \
  --DtsJobName "rds_mysql_check_demo" \
  --JobType CHECK \
  --SourceEndpointInstanceType RDS \
  --SourceEndpointInstanceID rm-bp1imrtn6fq**** \
  --SourceEndpointEngineName MYSQL \
  --SourceEndpointRegion cn-hangzhou \
  --SourceEndpointDatabaseName source_db \
  --SourceEndpointUserName dts_user \
  --SourceEndpointPassword '${SOURCE_DB_PASSWORD}' \
  --DestinationEndpointInstanceType RDS \
  --DestinationEndpointInstanceID rm-bp1k5v0rm3d**** \
  --DestinationEndpointEngineName MYSQL \
  --DestinationEndpointRegion cn-shanghai \
  --DestinationEndpointDataBaseName target_db \
  --DestinationEndpointUserName dts_user \
  --DestinationEndpointPassword '${DEST_DB_PASSWORD}' \
  --StructureInitialization false \
  --DataInitialization true \
  --DataSynchronization false \
  --DbList '{"source_db":{"name":"source_db","all":true}}'

Sample output:

{
  "RequestId": "E6F7A8B9-0C1D-4E2F-3A4B-C5D6E7****",
  "DtsJobId": "p2w8rx6315****",
  "ErrCode": "",
  "Success": "true",
  "HttpStatusCode": 200
}

Step 3: Start the validation task

Run the following command to call the StartDtsJob operation to start the validation task.

aliyun dts StartDtsJob \
  --DtsJobId p2w8rx6315****

Step 4: Query the validation results

Run the following command to call the DescribeDtsJobDetail operation to query the results of the validation task.

aliyun dts DescribeDtsJobDetail \
  --DtsJobId p2w8rx6315****

Confirm that the Status in the returned result is Finished. This indicates that the verification task is complete. You can view the verification details in the returned result to determine whether the data is consistent.