全部產品
Search
文件中心

Data Transmission Service:使用阿里雲CLI建立DTS任務

更新時間:May 15, 2026

本文通過阿里雲CLI操作樣本,示範如何通過CLI建立和配置DTS資料移轉、資料同步、資料訂閱和資料校正任務。

方案概覽

使用阿里雲CLI建立DTS任務的基本流程分為以下三個步驟:

  1. 購買DTS執行個體:調用CreateDtsInstance介面購買指定類型的DTS執行個體,擷取執行個體ID。

  2. 配置DTS任務:調用ConfigureDtsJob介面配置源庫和目標庫的串連資訊、遷移或同步對象等。

  3. 啟動DTS任務:調用StartDtsJob介面啟動任務,並通過DescribeDtsJobDetail介面查詢任務狀態。

本文以RDS MySQL為源庫、RDS MySQL為目標庫的情境為例,分別示範建立資料移轉、資料同步、資料訂閱和資料校正任務的CLI命令。您可以根據實際業務需求替換源庫和目標庫的相關參數。

前提條件

注意事項

  • CreateDtsInstance介面中的SourceRegion和DestinationRegion參數需要與源庫和目標庫所在地區一致。

  • CreateDtsInstance介面中的Type參數決定任務類型,取值為MIGRATION(遷移)、SYNC(同步)或SUBSCRIBE(訂閱)。

  • ConfigureDtsJob介面中的DbList參數為JSON格式,用於指定遷移或同步對象。具體格式說明,請參見遷移、同步或訂閱對象說明

  • 資料移轉任務僅支援隨用隨付(PostPaid),資料同步和資料訂閱任務支援隨用隨付(PostPaid)和訂用帳戶(PrePaid)。

  • CLI命令中的資料庫密碼參數(SourceEndpointPassword、DestinationEndpointPassword)建議使用環境變數傳入,避免在命令列中明文暴露。

建立資料移轉任務

以下樣本示範如何通過阿里雲CLI建立一個從RDS MySQL遷移到RDS MySQL的資料移轉任務。

步驟一:購買遷移執行個體

執行以下命令,調用CreateDtsInstance介面購買資料移轉執行個體。

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參數使用。

步驟二:配置遷移任務

執行以下命令,調用ConfigureDtsJob介面配置源庫和目標庫資訊。

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
}

步驟三:啟動遷移任務

執行以下命令,調用StartDtsJob介面啟動遷移任務。

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

返回結果樣本:

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

步驟四:查詢任務狀態

執行以下命令,調用DescribeDtsJobDetail介面查詢遷移任務執行狀態。

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

確認返回結果中的StatusMigrating,表示遷移任務正在運行中。

建立資料同步任務

以下樣本示範如何通過阿里雲CLI建立一個從RDS MySQL同步到RDS MySQL的資料同步任務。

步驟一:購買同步執行個體

執行以下命令,調用CreateDtsInstance介面購買資料同步執行個體。

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
}

步驟二:配置同步任務

執行以下命令,調用ConfigureDtsJob介面配置同步任務的源庫和目標庫資訊。

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
}

步驟三:啟動同步任務

執行以下命令,調用StartDtsJob介面啟動同步任務。

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

步驟四:查詢任務狀態

執行以下命令,調用DescribeDtsJobDetail介面查詢同步任務狀態。

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

確認返回結果中的StatusSynchronizing,表示同步任務正在運行中。

建立資料訂閱任務

以下樣本示範如何通過阿里雲CLI建立一個RDS MySQL的資料訂閱任務。

步驟一:購買訂閱執行個體

執行以下命令,調用CreateDtsInstance介面購買資料訂閱執行個體。

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

返回結果樣本:

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

步驟二:配置訂閱任務

執行以下命令,調用ConfigureSubscription介面配置資料訂閱任務。

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時,還需同時指定SubscriptionInstanceVPCIdSubscriptionInstanceVSwitchId參數。

步驟三:啟動訂閱任務

執行以下命令,調用StartDtsJob介面啟動訂閱任務。

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

步驟四:查詢任務狀態

執行以下命令,調用DescribeDtsJobDetail介面查詢訂閱任務狀態。

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

確認返回結果中的StatusNormal,表示訂閱任務正在運行中。

建立資料校正任務

資料校正任務用於驗證遷移或同步後源庫與目標庫的資料一致性。以下樣本示範如何為已有的資料移轉任務建立校正任務。

步驟一:購買校正執行個體

執行以下命令,調用CreateDtsInstance介面購買資料校正執行個體。

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

返回結果樣本:

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

步驟二:配置校正任務

執行以下命令,調用ConfigureDtsJob介面配置校正任務的源庫和目標庫資訊。

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}}'

返回結果樣本:

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

步驟三:啟動校正任務

執行以下命令,調用StartDtsJob介面啟動校正任務。

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

步驟四:查詢校正結果

執行以下命令,調用DescribeDtsJobDetail介面查詢校正任務的執行結果。

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

確認返回結果中的StatusFinished,表示校正任務已完成。您可以查看返回結果中的校正詳情判斷資料是否一致。