配置DTS迁移、同步或校验任务

调用ConfigureDtsJob接口配置一个迁移、同步或校验任务。

  • 您可以根据需求在控制台进行相应的预配置,然后预览对应配置的OpenAPI参数信息,以协助您填写请求参数。更多信息,请参见预览OpenAPI的请求参数
  • 专属集群的任务仅支持先配置后购买,且不支持跨地域的任务。

调试

您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。

请求参数

名称

类型

是否必选

示例值

描述

Action String ConfigureDtsJob

系统规定参数。取值:ConfigureDtsJob

DtsJobName String rdsmysql_to_mysql

DTS实例名称。

SourceEndpointInstanceType String RDS

源实例类型,取值:

阿里云数据库
  • RDS:RDS MySQL、RDS SQL Server、RDS PostgreSQL、RDS MariaDB。
  • PolarDB:PolarDB MySQL版。
  • REDIS:云数据库Redis。
  • DISTRIBUTED_POLARDBX10:PolarDB-X 1.0(原DRDS)。
  • POLARDBX20:PolarDB-X 2.0。
  • MONGODB:云数据库MongoDB。
  • DISTRIBUTED_DMSLOGICDB:数据管理DMS逻辑库。
自建数据库
  • OTHER:有公网IP的自建数据库。
  • ECS:ECS上的自建数据库。
  • EXPRESS:通过专线接入的自建数据库。
  • CEN:通过云企业网CEN接入的自建数据库。
  • DG:通过数据库网关接入的自建数据库。
说明
  • 如源实例为PolarDB PostgreSQL版(兼容Oracle)集群,则源实例类型需选择OTHER或者EXPRESS,作为自建数据库,且通过公网IP或者专线的方式接入。
  • 关于支持的源库和目标库对应情况,请参见支持的数据库
  • 当源实例为自建数据库时,您还需要执行相应的准备工作,请参见准备工作概览
SourceEndpointInstanceID String rm-bp1imrtn6fq7h****

源实例ID。

如源实例为阿里云数据库(如RDS MySQL),则您需要传入阿里云数据库的ID(如RDS MySQL的实例ID)。

如源实例为自建数据库,则根据SourceEndpointInstanceType的取值不同,本参数的取值有所变化,例如SourceEndpointInstanceType取值为:

  • ECS,则该参数需传入ECS的实例ID。
  • DG,则该参数需传入数据库网关ID。
  • EXPRESSCEN:则该参数需传入已和源库互联的VPC ID。
说明 取值为CEN时,您还需要在预留参数Reserve中传入云企业网CEN的实例ID。配置方式,请参见Reserve参数说明
SourceEndpointEngineName String MYSQL

源实例的数据库类型。

  • MYSQL:MySQL数据库(包括RDS MySQL和自建MySQL)。
  • MARIADB:RDS MariaDB。
  • PolarDB:PolarDB MySQL版。
  • POLARDB_O:PolarDB PostgreSQL版(兼容Oracle)。
  • POLARDBX10:PolarDB-X 1.0(原DRDS)。
  • POLARDBX20:云原生分布式数据库PolarDB-X 2.0。
  • ORACLE:自建Oracle。
  • POSTGRESQL:PostgreSQL数据库(包括RDS PostgreSQL和自建PostgreSQL)。
  • MSSQL:SQL Server数据库(包括RDS SQL Server和自建SQL Server)。
  • MONGODB:MongoDB数据库(包括自建MongoDB和云数据库MongoDB)。
  • DB2:自建DB2 LUW。
  • AS400:自建Db2 for i。
  • DMSPOLARDB:数据管理DMS逻辑库。
  • HBASE:自建HBase数据库。
  • TERADATA:Teradata数据库。
  • TiDB:TiDB数据库。
  • REDIS:Redis数据库(包括自建Redis和云数据库Redis)。
说明
  • 默认取值为MYSQL
  • 当源实例的数据库类型取值为MONGODB时,您还需要在预留参数Reserve中传入部分信息。配置方式,请参见Reserve参数说明
SourceEndpointRegion String cn-hangzhou

源实例区域,详情请参见支持的地域列表

说明 如源为阿里云数据库,则该参数必须传入。
SourceEndpointIP String 172.16.**.***

源实例的IP地址。

说明 SourceEndpointInstanceTypeOTHEREXPRESSDGCEN时,本参数才可用且必须传入。
SourceEndpointPort String 3306

源实例的数据库服务端口。

说明 当源实例为自建数据库时,本参数才可用且必须传入。
SourceEndpointOracleSID String testsid

Oracle数据库的SID信息。

说明 SourceEndpointEngineName取值为Oracle,且Oracle数据库为非RAC实例时,本参数才可用且必须传入。
SourceEndpointDatabaseName String dtstestdatabase

源实例中迁移对象所属的数据库名称。

说明 当源实例或者源实例的数据库类型为PolarDB PostgreSQL版(兼容Oracle)、PostgreSQL、MongoDB数据库时,本参数才可用且必须传入。
SourceEndpointUserName String dtstest

源库的数据库账号。

说明
SourceEndpointPassword String Test123456

源库数据库账号密码。

SourceEndpointOwnerID String 140692647406****

源实例所属的阿里云账号ID。

说明 传入本参数即代表执行跨阿里云账号的数据迁移或同步,同时您还需要传入SourceEndpointRole参数。
SourceEndpointRole String ram-for-dts

源实例所属云账号配置的角色名称。

说明 执行跨阿里云账号的数据迁移或同步时须传入本参数,该角色所需的权限及授权方式,请参见跨阿里云账号数据迁移或同步时如何配置RAM授权
DestinationEndpointInstanceType String EXPRESS

目标实例类型,取值:

阿里云数据库
  • RDS:RDS MySQL、RDS SQLServer、RDS PostgreSQL、RDS MariaDB。
  • PolarDB:PolarDB MySQL版。
  • DISTRIBUTED_POLARDBX10:PolarDB-X 1.0(原DRDS)。
  • POLARDBX20:PolarDB-X 2.0。
  • REDIS:云数据库Redis。
  • ADS:AnalyticDB MySQL 2.0、3.0。
  • MONGODB:云数据库MongoDB。
  • GREENPLUM:AnalyticDB PostgreSQL。
  • DATAHUB:阿里云流数据处理平台DataHub。
  • ELK:阿里云检索分析服务Elasticsearch。
  • Tablestore:表格存储Tablestore。
  • ODPS:MaxCompute。
自建数据库
  • OTHER:有公网IP的自建数据库。
  • ECS:ECS上的自建数据库。
  • EXPRESS:通过专线接入的自建数据库。
  • CEN:通过云企业网CEN接入的自建数据库。
  • DG:通过数据库网关接入的自建数据库。
说明
  • 如目标实例为PolarDB PostgreSQL版(兼容Oracle)集群,则目标实例类型需选择OTHER或者EXPRESS,作为自建数据库,且通过公网IP或者专线的方式接入。
  • 目标实例为消息队列Kafka版,则目标实例类型需选择ECS或者EXPRESS,作为自建数据库,且通过ECS或者专线的方式接入。
  • 关于支持的源库和目标库对应情况,请参见支持的数据库
  • 当目标实例为自建数据库时,您还需要执行相应的准备工作,请参见准备工作概览
DestinationEndpointInstanceID String vpc-bp1opxu1zkhn00gzv****

目标实例ID。

如目标实例为云数据库(如RDS MySQL),则您需要传入云数据库的实例ID(如RDS MySQL的实例ID)。

如目标实例为自建数据库,则根据DestinationEndpointInstanceType的取值不同,本参数的取值有所变化,例如DestinationEndpointInstanceType取值为:

  • ECS,则该参数需传入ECS的实例ID。
  • DG,则该参数需传入数据库网关ID。
  • EXPRESSCEN:则该参数需传入已和源库互联的VPC ID。
说明 取值为CEN时,您还需要在预留参数Reserve中传入云企业网CEN的实例ID。配置方式,请参见Reserve参数说明
DestinationEndpointEngineName String MYSQL

目标实例的数据库类型。

  • MYSQL:MySQL数据库(包括RDS MySQL和自建MySQL)。
  • MARIADB:RDS MariaDB。
  • PolarDB:PolarDB MySQL版。
  • POLARDB_O:PolarDB PostgreSQL版(兼容Oracle)。
  • POLARDBX10:PolarDB-X 1.0(原DRDS)。
  • POLARDBX20:云原生分布式数据库PolarDB-X 2.0。
  • ORACLE:自建Oracle。
  • PostgreSQL:PostgreSQL数据库(包括RDS PostgreSQL、自建PostgreSQL)。
  • MSSQL:SQL Server数据库(包括RDS SQL Server和自建SQL Server)。
  • ADS:AnalyticDB MySQL 2.0。
  • ADB30:AnalyticDB MySQL 3.0。
  • MONGODB:MongoDB数据库(包括自建MongoDB和云数据库MongoDB)。
  • GREENPLUM:AnalyticDB PostgreSQL。
  • KAFKA:Kafka数据库(包括消息队列Kafka版和自建Kafka)。
  • DATAHUB:阿里云流式数据服务DataHub。
  • DB2:自建DB2 LUW。
  • AS400:Db2 for i。
  • ODPS:MaxCompute。
  • Tablestore:表格存储Tablestore。
  • ELK:阿里云检索分析服务Elasticsearch。
  • REDIS:Redis数据库(包括自建Redis和云数据库Redis)。
说明
  • 默认取值为MYSQL
  • 当目标实例的数据库类型取值为KAFKAMONGODBPolarDB时,您还需要在预留参数Reserve中传入部分信息。配置方式,请参见Reserve参数说明
DestinationEndpointRegion String cn-hangzhou

目标实例区域,请参见支持的地域列表

说明 如目标为阿里云数据库,则该参数必须传入。
DestinationEndpointIP String 172.16.**.***

目标实例的IP地址。

说明 DestinationEndpointInstanceTypeOTHEREXPRESSDGCEN时,本参数才可用且必须传入。
DestinationEndpointPort String 3306

目标实例的数据库服务端口。

说明 当目标实例为自建数据库时,本参数才可用且必须传入。
DestinationEndpointDataBaseName String dtstestdata

目标实例中迁移对象所属的数据库名称。

说明
  • 当目标实例或目标数据库的类型为PolarDB PostgreSQL版(兼容Oracle)、AnalyticDB PostgreSQL、PostgreSQL、MaxCompute、MongoDB数据库时,本参数才可用且必须传入。
  • 若目标库为MaxCompute,您需要填写为MaxCompute实例的Project。
DestinationEndpointUserName String dtstest

目标库的数据库账号。

说明
DestinationEndpointPassword String Test123456

目标库数据库账号密码。

说明 若目标库为MaxCompute,您需要填写为阿里云账号(主账号)的AccessKey Secret。获取方式,请参见创建AccessKey
DestinationEndpointOwnerID String 140692647406****

目标RDS MySQL实例所属的阿里云账号ID。

说明
  • 当前仅目标实例为RDS MySQL时可以配置。
  • 传入本参数即代表执行跨阿里云账号的数据迁移或同步,同时您还需要传入DestinationEndpointRole参数。
DestinationEndpointRole String ram-for-dts

目标实例所属云账号配置的角色名称。

说明 执行跨阿里云账号的数据迁移或同步时须传入本参数,该角色所需的权限及授权方式,请参见跨阿里云账号数据迁移或同步时如何配置RAM授权
StructureInitialization Boolean true

是否执行库表结构迁移或初始化,取值:

  • true:是,为默认值。
  • false:否。
说明 JobType取值为CHECK,只能取值为false
DataInitialization Boolean true

是否执行全量数据迁移或全量数据初始化,取值:

  • true:是,为默认值。
  • false:否。
说明 JobType取值为CHECK,只能取值为false
DataSynchronization Boolean true

是否执行增量数据迁移或同步,取值:

  • false:否,为默认值。
  • true:是。
说明 JobType取值为CHECK,只能取值为false
DbList String {"dtstest":{"name":"dtstest","all":true}}

待迁移或同步的对象,格式为JSON串。详细定义说明,请参见迁移、同步或订阅对象说明

说明 DbList最多支持传入10 MB的数据。
Reserve String { "srcInstanceId": "cen-9kqshqum*******" }

DTS预留参数,格式为JSON字符串,您可以传入本参数完善源目库信息(如目标Kafka数据库的数据存储格式、云企业网CEN的实例ID)。更多信息,请参见Reserve参数说明

Checkpoint String 1610540493

增量数据迁移的启动位点或者同步位点,格式为Unix时间戳,单位为秒。

DestinationEndpointOracleSID String testsid

Oracle数据库的SID信息。

说明 DestinationEndpointEngineName取值为Oracle,且Oracle数据库为非RAC实例时,本参数才可用且必须传入。
JobType String SYNC

任务类型,取值为:

  • MIGRATION:数据迁移。
  • SYNC:数据同步。
  • CHECK:数据校验(单独购买)。
说明 若取值为MIGRATIONSYNC,您也可以在迁移或同步实例中配置数据校验任务。
DtsJobId String k2gm967v16f****

迁移或同步任务ID。

说明 可调用DescribeDtsJobs获取任务ID。
DtsInstanceId String dtsk2gm967v16f****

迁移或同步实例ID。

说明 可调用DescribeDtsJobs获取实例ID。
DelayPhone String 1361234****,1371234****

延迟报警的联系人手机号码,多个手机号码以英文逗号(,)分隔。

说明
DelayRuleTime Long 10

触发延迟报警的阈值,单位为秒且需为整数,可根据业务需要设置阈值,建议设置10秒以上,避免因网络、数据库负载等原因导致的延迟波动。

说明 DelayNotice取值为true时,本参数必须传入。
DelayNotice Boolean true

是否监控延迟状态,取值:

  • true:是。
  • false:否。
ErrorPhone String 1361234****,1371234****

异常报警的联系人手机号码,多个手机号码以英文逗号(,)分隔。

说明
ErrorNotice Boolean true

是否监控异常状态,取值:

  • true:是。
  • false:否。
SynchronizationDirection String Forward

同步方向,取值:

  • Forward:正向。
  • Reverse:反向。
说明
  • 默认取值为Forward
  • 只有当同步任务的同步拓扑为双向时,本参数传入Reverse才会生效。
RegionId String cn-hangzhou

DTS实例所属的地域,请参见支持的地域列表

DedicatedClusterId String dtscluster_atyl3b5214uk***

DTS专属集群ID。

说明 当传入专属集群的ID时,任务调度到相应的集群上。
FileOssUrl String http://db-list-os-file.oss-cn-shanghai.aliyuncs.com/8e42_121852**********_79dd3aeabe2f43cdb**************

任务文件的OSS地址。

DataCheckConfigure String {"fullCheckModel":1,"fullCheckRatio":20,"checkMaximumHourEnable":1,"checkMaximumHour":1,"fullCheckErrorNotice":true,"fullCheckValidFailNotice":true,"fullCheckNoticeValue":8,"incrementalCheckErrorNotice":true,"incrementalCheckValidFailNotice":true,"incrementalCheckValidFailNoticeTimes":2,"incrementalCheckValidFailNoticePeriod":1,"incrementalCheckValidFailNoticeValue":1,"incrementalCheckDelayNotice":true,"incrementalCheckDelayNoticeTimes":2,"incrementalCheckDelayNoticePeriod":1,"incrementalCheckDelayNoticeValue":60,"fullDataCheck":true,"incrementalDataCheck":true,"dataCheckNoticePhone":"13126800****","dataCheckDbList":{"dts":{"name":"dts","all":true}}}

数据校验任务的参数,格式为JSON字符串,如参数限制或告警配置等信息。更多信息请参见DataCheckConfigure参数说明

DisasterRecoveryJob Boolean true

是否为灾备实例,取值:

  • true:是。
  • false:否。
SourceEndpointVSwitchID String vsw-bp10df3mxae6lpmku****

数据投递链路交换机实例ID。

DtsBisLabel String normal

DTS实例的环境标签,取值为:

  • normal普通
  • online线上
SrcCaCertificateOssUrl String ****

源库通过SSL安全连接时,CA证书的路径。

说明 当前暂不支持此功能,请勿传入此参数。
SrcCaCertificatePassword String ****

源库通过SSL安全连接时,CA证书的密钥。

说明 当前暂不支持此功能,请勿传入此参数。
DestCaCertificateOssUrl String ****

目标库通过SSL安全连接时,CA证书的路径。

说明 当前暂不支持此功能,请勿传入此参数。
DestCaCertificatePassword String ****

目标库通过SSL安全连接时,CA证书的密钥。

说明 当前暂不支持此功能,请勿传入此参数。
MinDu double 1

DU下限。

说明 仅Serverless实例支持。
MaxDu double 16

DU上限。

说明 仅Serverless实例支持。
SrcClientCertOssUrl String ****

源库通过SSL安全连接时,客户端证书的路径。

说明 当前暂不支持此功能,请勿传入此参数。
SrcClientKeyOssUrl String ****

源库通过SSL安全连接时,客户端证书私钥的路径。

说明 当前暂不支持此功能,请勿传入此参数。
SrcClientPassword String ****

源库通过SSL安全连接时,客户端证书私钥的密码。

说明 当前暂不支持此功能,请勿传入此参数。
DestClientCertOssUrl String ****

目标库通过SSL安全连接时,客户端证书的路径。

说明 当前暂不支持此功能,请勿传入此参数。
DestClientKeyOssUrl String ****

目标库通过SSL安全连接时,客户端证书私钥的路径。

说明 当前暂不支持此功能,请勿传入此参数。
DestClientPassword String ****

目标库通过SSL安全连接时,客户端证书私钥的密码。

说明 当前暂不支持此功能,请勿传入此参数。
ResourceGroupId String rg-acfmzawhxxc****

资源组ID。

返回数据

名称

类型

示例值

描述

HttpStatusCode String 200

状态码。

RequestId String 224DB9F7-3100-4899-AB9C-C938BCCB****

请求ID。

ErrCode String InternalError

调用出错时返回的错误码。

DtsJobId String k2gm967v16f****

迁移或同步任务ID。

DtsInstanceId String dtsk2gm967v16f****

迁移或同步实例ID。

Success String true

请求是否成功。

ErrMessage String The request processing has failed due to some unknown error.

调用错误时返回对应的错误信息。

示例

请求示例

http(s)://dts.aliyuncs.com/?Action=ConfigureDtsJob
&RegionId=cn-hangzhou
&SourceEndpointInstanceType=RDS
&DestinationEndpointInstanceType=EXPRESS
&StructureInitialization=true
&DataInitialization=true
&DataSynchronization=true
&DbList={"dtstest":{"name":"dtstest","all":true}}
&JobType=SYNC
&SourceEndpointInstanceID=rm-bp1imrtn6fq7h****
&SourceEndpointEngineName=MYSQL
&SourceEndpointRegion=cn-hangzhou
&SourceEndpointUserName=dtstest
&SourceEndpointPassword=Test123456
&DestinationEndpointInstanceID=vpc-bp1opxu1zkhn00gzv****
&DestinationEndpointEngineName=MYSQL
&DestinationEndpointIP=172.16.**.***
&DestinationEndpointRegion=cn-hangzhou
&DestinationEndpointPort=3306
&DestinationEndpointUserName=dtstest
&DestinationEndpointPassword=Test123456
&DtsJobId=k2gm967v16f****
&DtsInstanceId=dtsk2gm967v16f****
&DtsJobName=rdsmysql至专线接入的自建mysql
&<公共请求参数>

正常返回示例

XML格式

HTTP/1.1 200 OK
Content-Type:application/xml

<ConfigureDtsJobResponse>
    <DtsJobId>k2gm967v16f****</DtsJobId>
    <RequestId>224DB9F7-3100-4899-AB9C-C938BCCB****</RequestId>
    <HttpStatusCode>200</HttpStatusCode>
    <DtsInstanceId>dtsk2gm967v16f****</DtsInstanceId>
    <Success>true</Success>
</ConfigureDtsJobResponse>

JSON格式

HTTP/1.1 200 OK
Content-Type:application/json

{
  "DtsJobId" : "k2gm967v16f****",
  "RequestId" : "224DB9F7-3100-4899-AB9C-C938BCCB****",
  "HttpStatusCode" : 200,
  "DtsInstanceId" : "dtsk2gm967v16f****",
  "Success" : true
}

错误码

HttpCode

错误码

错误信息

描述

403 InvalidParameter.KafkaBrokerInvalid kafka broker configuration must be intranet IP Ecs自建Kafka节点的配置必须为ip,不支持节点配置为host
403 InvalidParameter.KafkaHostInvalid kafaka host name should be intranet IP kafka主机名暂不支持host形式,请输入内网IP
403 UpdateJob.OperationDenied.InitStatus The operation is not permitted due to Dts job status is init. 当前任务已经启动,无法修改,请使用重新配置任务功能(已配置任务会丢失)或者修改同步对象功能
403 GetMongoDbShardInfo.NoShardAddress MongoDb has not yet opened the shard connection address, please try again after opening. 无法获取分片连接信息,检查配置参数,确认数据库确实为分片MongoDb,并确定已经开通shard地址。
403 GetMongoDbShardInfo.EmptyInstances Failed to get MongoDb shard information, the return is empty. 无法获取分片信息,请检查配置参数,确认数据库确实为分片MongoDb。
403 CheckJobFailed.ServerUnAvailable Unable to check whether the node can connect to the database because the node service is unavailable. DTS下部分Node服务器无法连接,请重试,重试后仍出现请联系技术支持。
403 DbTypeNotSupport.PolarDBRDS The current rds instance is of type PolarDB, which is not supported for the time being. Only rds instances under drds are supported. DTS暂不支持分库类型为PolarDb MySQL的DRDS类型的同步。
403 DbTypeNotSupport.OnlyReadRDS Synchronization is not currently supported due to latency issues with read-only DRDS instances. DTS暂时不支持为分库只读库类型的DRDS同步。
403 DTS.Msg.InvalidParameter.KafkaBrokerInvalid kafka broker configuration must be intranet IP Ecs自建Kafka节点的配置必须为ip,不支持节点配置为host
403 DTS.Msg.InvalidParameter.KafkaHostInvalid kafaka host name should be intranet IP kafka主机名暂不支持host形式,请输入内网IP
403 DTS.Msg.UpdateJob.OperationDenied.InitStatus The operation is not permitted due to Dts job status is init. 当前任务已经启动,无法修改,请使用重新配置任务功能(已配置任务会丢失)或者修改同步对象功能
403 DTS.Msg.GetMongoDbShardInfo.NoShardAddress MongoDb has not yet opened the shard connection address, please try again after opening. 无法获取分片连接信息,检查配置参数,确认数据库确实为分片MongoDb,并确定已经开通shard地址。
403 DTS.Msg.GetMongoDbShardInfo.EmptyInstances Failed to get MongoDb shard information, the return is empty. 无法获取分片信息,请检查配置参数,确认数据库确实为分片MongoDb。
403 DTS.Msg.CheckJobFailed.ServerUnAvailable Unable to check whether the node can connect to the database because the node service is unavailable. DTS下部分Node服务器无法连接,请重试,重试后仍出现请联系技术支持。
403 DTS.Msg.DbTypeNotSupport.PolarDBRDS The current rds instance is of type PolarDB, which is not supported for the time being. Only rds instances under drds are supported. DTS暂不支持分库类型为PolarDb MySQL的DRDS类型的同步。
403 DTS.Msg.DbTypeNotSupport.OnlyReadRDS Synchronization is not currently supported due to latency issues with read-only DRDS instances. DTS暂时不支持为分库只读库类型的DRDS同步。
403 InvalidSecurityToken.Expired Specified SecurityToken is expired. 签名已经过期,请更新签名
400 Throttling.User Request was denied due to user flow control. 由于请求频次达到阈值,请求被拒绝,请稍后重试。
500 ServiceUnavailable The request has failed due to a temporary failure of the server. 由于服务端响应超时或者不可用导致请求失败,请重试,重试后仍失败请联系技术支持。

访问错误中心查看更多错误码。