调用OpenAPI配置DTS任务

本文为您介绍如何调用OpenAPI配置DTS同步、迁移、订阅任务。

背景信息

调用OpenAPI配置DTS任务与在控制台配置DTS任务一样,分为先购买再配置和先配置再购买两种。

  • 先购买再配置的DTS任务:

    • 同步或迁移任务:该任务是否启动预检查模块,取决于配置DTS任务接口(ConfigureDtsJob)中预留参数(Reserve参数autoStartModulesAfterConfig的参数值。

    • 订阅任务:默认不会启动预检查模块。

  • 先配置再购买的DTS任务:

    该任务是否启动预检查模块,取决于购买DTS实例接口(CreateDtsInstance)中AutoStart的参数值。

注意事项

  • 在调用OpenAPI接口时,请务必注意参数的格式,否则可能会导致接口调用失败。

  • 调用OpenAPI先购买再配置的同步或迁移任务,若预检查模块执行完成且无报错,则该DTS任务将自动执行后续所有模块。

准备工作

收集数据库实例信息,例如源库实例的ID、地域、域名或IP地址、端口、数据账号、账号密码等。

操作步骤

说明

本操作以配置迁移任务为例,为您介绍调用OpenAPI配置DTS任务的方法。

场景一:先购买再配置

暂不启动预检查模块

  1. 调用CreateDtsInstance接口购买DTS实例。

    请求示例

    {
      "DestinationEndpointEngineName":"MySQL",
      "DestinationRegion":"cn-hangzhou",
      "InstanceClass":"small",
      "PayType":"PostPaid",
      "RegionId":"cn-hangzhou",
      "SourceEndpointEngineName":"MySQL",
      "SourceRegion":"cn-hangzhou",
      "Type":"MIGRATION"
    }

    返回示例

    {
      "RequestId": "76C0****-879D-5FB7-8F08-BC11B67C****",
      "InstanceId": "dtsza0i4l8x167****",
      "Success": true,
      "JobId": "za0i4l8x167****"
    }
  2. 调用ConfigureDtsJob接口配置DTS任务。

    说明
    • 需在预留参数(Reserve参数中,将autoStartModulesAfterConfig的参数值指定为none

    • 订阅任务需调用ConfigureSubscription接口,且预留参数(Reserve参数中的autoStartModulesAfterConfig参数不生效。

    请求示例

    {
      "DataInitialization":"true",
      "DataSynchronization":"false",
      "DestinationEndpointInstanceType":"RDS",
      "DtsJobName":"rdsmysql_to_rdsmysql",
      "JobType":"MIGRATION",
      "SourceEndpointInstanceType":"RDS",
      "StructureInitialization":"true",
      "DbList":{
        "dtsdb":{
          "name":"dtsdb_1",
          "all":"false",
          "Table":{
            "person":{
              "name":"person",
               "all":"true"
            }
          }
        }
      },
      "DestinationEndpointEngineName":"MYSQL",
      "DestinationEndpointInstanceID":"rm-bp1072qxu5q3h****",
      "DestinationEndpointPassword":"**********",
      "DestinationEndpointRegion":"cn-hangzhou",
      "DestinationEndpointUserName":"dtstest",
      "DtsInstanceId":"dtsza0i4l8x167****",
      "RegionId":"cn-hangzhou",
      "Reserve":{
        "targetTableMode":"0",
        "autoStartModulesAfterConfig":"none"
      },
      "SourceEndpointDatabaseName":"dtsdb",
      "SourceEndpointEngineName":"MYSQL",
      "SourceEndpointInstanceID":"rm-bp1072qxu5q3h****",
      "SourceEndpointPassword":"**********",
      "SourceEndpointRegion":"cn-hangzhou",
      "SourceEndpointUserName":"dtstest"
    }

    返回示例

    {
      "DtsJobId": "za0i4l8x167****",
      "RequestId": "9233****-9539-5DB7-B801-69AADEB9****",
      "HttpStatusCode": 200,
      "DtsInstanceId": "dtsza0i4l8x167****",
      "Success": true
    }
  3. 可选:在业务需要时,调用StartDtsJob接口启动DTS任务(预检查并继续向后运行)。

    请求示例

    {
    "DtsJobId":"za0i4l8x167****",
    "RegionId":"cn-hangzhou"
    }

    返回示例

    {
      "RequestId": "CE51****-40F3-5913-AA27-C50251E2****",
      "HttpStatusCode": 200,
      "Success": true
    }

启动预检查模块

说明

不适用于订阅实例。

  1. 调用CreateDtsInstance接口购买DTS实例。

    请求示例

    {
      "DestinationEndpointEngineName":"MySQL",
      "DestinationRegion":"cn-hangzhou",
      "InstanceClass":"small",
      "PayType":"PostPaid",
      "RegionId":"cn-hangzhou",
      "SourceEndpointEngineName":"MySQL",
      "SourceRegion":"cn-hangzhou",
      "Type":"MIGRATION"
    }

    返回示例

    {
      "RequestId": "63F4****-935A-5E55-A7BC-D0464BA1****",
      "InstanceId": "dtsdg6e4m0e177****",
      "Success": true,
      "JobId": "dg6e4m0e177****"
    }
  2. 调用ConfigureDtsJob接口配置DTS任务。

    说明
    • 预留参数(Reserve参数中,不指定autoStartModulesAfterConfig的参数值或将其参数值指定为auto

    • 若预检查模块执行完成且无报错,则DTS任务将自动执行后续所有模块。

    请求示例

    {
      "DataInitialization":"true",
      "DataSynchronization":"false",
      "DestinationEndpointInstanceType":"RDS",
      "DtsJobName":"rdsmysql_to_rdsmysql_1",
      "JobType":"MIGRATION",
      "SourceEndpointInstanceType":"RDS",
      "StructureInitialization":"true",
      "DbList":{
        "dtsdb":{
          "name":"dtsdb_1",
          "all":"false",
          "Table":{
            "person":{
              "name":"person_1",
               "all":"true"
            }
          }
        }
      },
      "DestinationEndpointEngineName":"MYSQL",
      "DestinationEndpointInstanceID":"rm-bp1072qxu5q3h****",
      "DestinationEndpointPassword":"**********",
      "DestinationEndpointRegion":"cn-hangzhou",
      "DestinationEndpointUserName":"dtstest",
      "DtsInstanceId":"dtsdg6e4m0e177****",
      "RegionId":"cn-hangzhou",
      "SourceEndpointDatabaseName":"dtsdb",
      "SourceEndpointEngineName":"MYSQL",
      "SourceEndpointInstanceID":"rm-bp1072qxu5q3h****",
      "SourceEndpointPassword":"**********",
      "SourceEndpointRegion":"cn-hangzhou",
      "SourceEndpointUserName":"dtstest"
    }

    返回示例

    {
      "DtsJobId": "za0i4l8x167****",
      "RequestId": "9233****-9539-5DB7-B801-69AADEB9****",
      "HttpStatusCode": 200,
      "DtsInstanceId": "dtsza0i4l8x167****",
      "Success": true
    }

场景二:先配置再购买

暂不启动预检查模块

  1. 调用ConfigureDtsJob接口配置DTS任务。

    说明

    订阅任务需调用ConfigureSubscription接口。

    请求示例

    {
      "DataInitialization":"true",
      "DataSynchronization":"false",
      "DestinationEndpointInstanceType":"RDS",
      "DtsJobName":"rdsmysql_to_rdsmysql_2",
      "JobType":"MIGRATION",
      "SourceEndpointInstanceType":"RDS",
      "StructureInitialization":"true",
      "DbList":{
        "dtsdb":{
          "name":"dtsdb_1",
          "all":"false",
          "Table":{
            "person":{
              "name":"person_2",
               "all":"true"
            }
          }
        }
      },
      "DestinationEndpointEngineName":"MYSQL",
      "DestinationEndpointInstanceID":"rm-bp1072qxu5q3h****",
      "DestinationEndpointPassword":"**********",
      "DestinationEndpointRegion":"cn-hangzhou",
      "DestinationEndpointUserName":"dtstest",
      "RegionId":"cn-hangzhou",
      "Reserve":{
        "targetTableMode":"0",
        "autoStartModulesAfterConfig":"none"
      },
      "SourceEndpointDatabaseName":"dtsdb",
      "SourceEndpointEngineName":"MYSQL",
      "SourceEndpointInstanceID":"rm-bp1072qxu5q3h****",
      "SourceEndpointPassword":"**********",
      "SourceEndpointRegion":"cn-hangzhou",
      "SourceEndpointUserName":"dtstest"
    }

    返回示例

    {
      "DtsJobId": "w4rg4pj4169****",
      "RequestId": "F0CC****-A556-5A9D-AFF0-85D2B284****",
      "HttpStatusCode": 200,
      "Success": true
    }
  2. 可选:在业务需要时,参考启动预检查模块(暂不启动DTS任务)启动预检查模块(启动DTS任务)(步骤2及之后)启动DTS任务(预检查并继续向后运行)。

启动预检查模块(暂不启动DTS任务)

  1. 调用ConfigureDtsJob接口配置DTS任务。

    说明

    订阅任务需调用ConfigureSubscription接口。

    请求示例

    {
      "DataInitialization":"true",
      "DataSynchronization":"false",
      "DestinationEndpointInstanceType":"RDS",
      "DtsJobName":"rdsmysql_to_rdsmysql_3",
      "JobType":"MIGRATION",
      "SourceEndpointInstanceType":"RDS",
      "StructureInitialization":"true",
      "DbList":{
        "dtsdb":{
          "name":"dtsdb_1",
          "all":"false",
          "Table":{
            "person":{
              "name":"person_3",
               "all":"true"
            }
          }
        }
      },
      "DestinationEndpointEngineName":"MYSQL",
      "DestinationEndpointInstanceID":"rm-bp1072qxu5q3h****",
      "DestinationEndpointPassword":"**********",
      "DestinationEndpointRegion":"cn-hangzhou",
      "DestinationEndpointUserName":"dtstest",
      "RegionId":"cn-hangzhou",
      "SourceEndpointDatabaseName":"dtsdb",
      "SourceEndpointEngineName":"MYSQL",
      "SourceEndpointInstanceID":"rm-bp1072qxu5q3h****",
      "SourceEndpointPassword":"**********",
      "SourceEndpointRegion":"cn-hangzhou",
      "SourceEndpointUserName":"dtstest"
    }

    返回示例

    {
      "DtsJobId": "w4rg4pj4169****",
      "RequestId": "F0CC****-A556-5A9D-AFF0-85D2B284****",
      "HttpStatusCode": 200,
      "Success": true
    }
  2. 调用StartDtsJob接口启动预检查模块。

    请求示例

    {
    "DtsJobId":"w4rg4pj4169****",
    "RegionId":"cn-hangzhou"
    }

    返回示例

    {
      "RequestId": "2A54****-4467-520E-B45A-D144A0C8****",
      "HttpStatusCode": 200,
      "Success": true
    }
  3. 调用DescribePreCheckStatus接口查看预检查模块的执行情况。

    请求示例

    {
    "DtsJobId":"w4rg4pj4169****",
    "JobCode":"01",
    "RegionId":"cn-hangzhou",
    "StructType":"before"
    }

    返回示例

    若返回如下信息,表示预检查模块执行完成且无报错。

    {
      ******
      "AnalysisJobProgress": [],
      "PageRecordCount": 20,
      "RequestId": "4436****-EE62-5DC3-8838-30807292****",
      "FullNetCheckJobStatus": [],
      "JobName": "****",
      "ErrorItem": 0,
      "SubDistributedJobStatus": [],
      "Code": "01",
      "Success": true,
      "PageNumber": 1,
      "State": "Finished",
      "Total": 9,
      "HttpStatusCode": 200,
      "JobId": "w4rg4pj4169****",
      ******
    }
  4. 调用CreateDtsInstance接口购买DTS实例。

    说明

    不指定AutoStart的参数值或将其参数值指定为false,DTS实例不会自动继续向后运行(等效于控制台的购买并保存)。

    请求示例

    {
    "InstanceClass":"small",
    "JobId":"w4rg4pj4169****",
    "PayType":"PostPaid",
    "RegionId":"cn-hangzhou"
    }

    返回示例

    {
      "RequestId": "63F4****-935A-5E55-A7BC-D0464BA1****",
      "InstanceId": "dtsgvbn4c28167****",
      "Success": true,
      "JobId": "w4rg4pj4169****"
    }
  5. 可选:在业务需要时,调用StartDtsJob接口启动DTS任务。

    请求示例

    {
    "DtsJobId":"w4rg4pj4169****",
    "RegionId":"cn-hangzhou"
    }

    返回示例

    {
      "RequestId": "EC1F****-10B0-501E-8B3E-71963809****",
      "HttpStatusCode": 200,
      "Success": true
    }

启动预检查模块(启动DTS任务)

  1. 调用ConfigureDtsJob接口配置DTS任务。

    说明

    订阅任务需调用ConfigureSubscription接口。

    请求示例

    {
      "DataInitialization":"true",
      "DataSynchronization":"false",
      "DestinationEndpointInstanceType":"RDS",
      "DtsJobName":"rdsmysql_to_rdsmysql_4",
      "JobType":"MIGRATION",
      "SourceEndpointInstanceType":"RDS",
      "StructureInitialization":"true",
      "DbList":{
        "dtsdb":{
          "name":"dtsdb_1",
          "all":"false",
          "Table":{
            "person":{
              "name":"person_4",
               "all":"true"
            }
          }
        }
      },
      "DestinationEndpointEngineName":"MYSQL",
      "DestinationEndpointInstanceID":"rm-bp1072qxu5q3h****",
      "DestinationEndpointPassword":"**********",
      "DestinationEndpointRegion":"cn-hangzhou",
      "DestinationEndpointUserName":"dtstest",
      "RegionId":"cn-hangzhou",
      "SourceEndpointDatabaseName":"dtsdb",
      "SourceEndpointEngineName":"MYSQL",
      "SourceEndpointInstanceID":"rm-bp1072qxu5q3h****",
      "SourceEndpointPassword":"**********",
      "SourceEndpointRegion":"cn-hangzhou",
      "SourceEndpointUserName":"dtstest"
    }

    返回示例

    {
      "DtsJobId": "etom45sg17e****",
      "RequestId": "46F2****-69DD-59D7-8FF5-A119D72A****",
      "HttpStatusCode": 200,
      "Success": true
    }
  2. 调用StartDtsJob接口启动预检查模块。

    请求示例

    {
    "DtsJobId":"etom45sg17e****",
    "RegionId":"cn-hangzhou"
    }

    返回示例

    {
      "RequestId": "2A54****-4467-520E-B45A-D144A0C8****",
      "HttpStatusCode": 200,
      "Success": true
    }
  3. 调用DescribePreCheckStatus接口查看预检查模块的执行情况。

    请求示例

    {
    "DtsJobId":"etom45sg17e****",
    "JobCode":"01",
    "RegionId":"cn-hangzhou",
    "StructType":"before"
    }

    返回示例

    若返回如下信息,表示预检查模块执行完成且无报错。

    {
      ******
      "AnalysisJobProgress": [],
      "PageRecordCount": 20,
      "RequestId": "4436****-EE62-5DC3-8838-30807292****",
      "FullNetCheckJobStatus": [],
      "JobName": "****",
      "ErrorItem": 0,
      "SubDistributedJobStatus": [],
      "Code": "01",
      "Success": true,
      "PageNumber": 1,
      "State": "Finished",
      "Total": 9,
      "HttpStatusCode": 200,
      "JobId": "etom45sg17e****",
      ******
    }
  4. 调用CreateDtsInstance接口购买DTS实例。

    说明

    指定AutoStart的参数值为true,DTS任务将自动继续向后运行(等效于控制台的购买并启动)。

    请求示例

    {
    "AutoStart":"true",
    "InstanceClass":"small",
    "JobId":"etom45sg17e****",
    "PayType":"PostPaid",
    "RegionId":"cn-hangzhou"
    }

    返回示例

    {
      "RequestId": "4280****-9D5C-5053-9CA3-FAE47248****",
      "InstanceId": "dtst7lg4f20178****",
      "Success": true,
      "JobId": "etom45sg17e****"
    }

相关文档