修改DTS任务的源或目标库实例

调用ModifyDtsJobEndpoint接口,修改(替换)DTS同步或迁移任务的源或目标库实例。

说明 数据库实例被修改后,DTS增量写入模块会回退10秒写入。若同步或迁移的数据没有主键,在替换数据库实例期间源端实例关联的业务需要停止写入数据,否则可能会出现重复数据。

调试

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

请求参数

名称

类型

是否必选

示例值

描述

Action String ModifyDtsJobEndpoint

系统规定参数。取值:ModifyDtsJobEndpoint

RegionId String cn-hangzhou

DTS实例所属的地域。

DtsJobId String m4312mab158****

DTS任务ID,可调用DescribeDtsJobs查询。

说明 若不填入此参数,则必须填入DtsInstanceId
DtsInstanceId String dtsaw012y2g15q****

DTS实例的ID。

说明 若不填入此参数,则必须填入DtsJobId
SynchronizationDirection String Forward

同步方向,取值:

  • Forward(默认值):正向。
  • Reverse:反向。
Endpoint String src

待修改的数据库实例,取值:

  • src:源库实例。
  • dest:目标库实例。
EndpointRegionId String cn-hangzhou

数据库实例所属的地域。

EndpointInstanceType String rds

数据库实例类型,取值为:

  • rds:RDS MySQL、RDS SQL Server或RDS PostgreSQL。
  • polardb:PolarDB MySQL版或PolarDB PostgreSQL版。
  • mongodb:云数据库MongoDB(副本集)。
  • distributed_mongodb:云数据库MongoDB(分片集群)。
  • greenplum:云原生数据仓库AnalyticDB PostgreSQL版。
  • kafka:云消息队列Kafka版。
  • ecs:ECS自建的数据库(仅限支持的数据库类型)。
  • express:专线接入的数据库(仅限支持的数据库类型)。
  • other:公网接入的数据库(仅限支持的数据库类型)。
说明
  • 当前支持的数据库类型有MySQLPolarDB for MySQLPostgreSQLPolarDB for PostgreSQLMongoDBSQLServerKafkaAnalyticDB PostgreSQL
  • 若数据库为MongoDB(分片集群),则新数据库的Shard数量需与原来的MongoDB(分片集群)相同。
  • 若需要修改的是源库实例,且数据库类型为PostgreSQL,则需确保DTS实例的延迟时间小于30秒,并且停止向源库写入数据,否则可能会出现不一致数据。
  • 传入的参数大小写不敏感。
EndpointInstanceId String rm-bp10k50h8374w****

数据库实例的ID。

EndpointIp String 172.168.XX.XXX

数据库实例的IP。

EndpointPort String 3306

数据库实例的端口。

ModifyAccount Boolean false

是否修改账号密码,取值为:

  • true:是。
  • false(默认值):否。
Username String dtstest

数据库账号。

说明 仅当ModifyAccount取值为true时才生效。
Password String DTStest****

数据库密码。

说明 仅当ModifyAccount取值为true时才生效。
Database String admin

当数据库类型为PostgreSQLPolarDB for PostgreSQLAnalyticDB PostgreSQL时,表示数据库名称;当数据库类型为MongoDB时,表示鉴权数据库名称。

说明 当数据库类型为PostgreSQLPolarDB for PostgreSQLAnalyticDB PostgreSQLMongoDB时,本参数才可用且必须传入。
ShardUsername String shard

MongoDB分片集群实例的Shard的账号。

说明
  • 当源数据库实例为MongoDB(分片集群架构)时,本参数才可用且必须传入。
  • ModifyAccount取值为true时才生效。
ShardPassword String DTStest****

MongoDB分片集群实例的Shard的密码。

说明
  • 当源数据库实例为MongoDB(分片集群架构)时,本参数才可用且必须传入。
  • ModifyAccount取值为true时才生效。
RoleName String ram-for-dts

跨阿里云账号角色名。

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

数据库实例所属的阿里云账号(主账号)的ID。

说明 传入本参数即代表执行跨阿里云账号的数据同步,同时您还需要传入RoleName参数。
DryRun Boolean true

是否只进行预检查,取值为:

  • true:是。预检查通过后,实例不进行变更操作。
  • false(默认值):否。预检查通过后,修改DTS任务的数据库实例并运行。
ResourceGroupId String rg-acfmzawhxxc****

资源组ID。

返回数据

名称

类型

示例值

描述

HttpStatusCode String 200

状态码。

RequestId String 3FA98DF2-2F81-51FF-8A38-AA5112DD****

请求ID。

Success Boolean true

请求是否成功。

ErrCode String DTS.Msg.InvalidEndpoint

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

ErrMessage String The endpoint is invalid.

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

示例

请求示例

http(s)://dts.aliyuncs.com/?Action=ModifyDtsJobEndpoint
&RegionId=cn-hangzhou
&DtsInstanceId=dtsaw012y2g15q****
&SynchronizationDirection=Forward
&Endpoint=src
&EndpointInstanceType=rds
&EndpointInstanceId=rm-bp10k50h8374w****
&Username=dtstest
&Password=DTStest****
&DryRun=true
&公共请求参数

正常返回示例

XML格式

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

<ModifyDtsJobEndpointResponse>
    <HttpStatusCode>200</HttpStatusCode>
    <RequestId>3FA98DF2-2F81-51FF-8A38-AA5112DD****</RequestId>
    <Success>true</Success>
</ModifyDtsJobEndpointResponse>

JSON格式

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

{
  "HttpStatusCode" : "200",
  "RequestId" : "3FA98DF2-2F81-51FF-8A38-AA5112DD****",
  "Success" : true
}

错误码

HttpCode

错误码

错误信息

描述

400 InvalidParameter.TagKey The Tag.N.Key parameter is invalid. 标签键无效,请输入有效的标签键。
400 InvalidParameter.TagValue The Tag.N.Value parameter is invalid. 标签值无效,请输入有效的标签值。
400 InvalidParameter.Tags The specified value of parameter Tags is not valid. 标签的键或值无效,请输入有效的标签键或值。
400 Missing.TagKey You must specify the key for value %s in Tag.N.Key. 同一个N的标签键值对,对应的Value缺失相同Key。
400 MissingParameter.TagOrResourceId Either Tags or ResourceIds must be specified. 标签和ResourceId(DTS实例ID)均不可以为空。
400 NumberExceed.Tags The maximum number of Tags is exceeded. The maximum value is 20. 已超过标签数量上限(上限:20个),请先删除不需要的标签。
400 NumberExceed.ResourceIds The maximum number of ResourceIds is exceeded. The maximum value is 50. 已超过ResourceId(DTS实例ID)的数量上限(上限:20个),请先删除不需要的ResourceId。
400 InvalidParameter.Category The specified Category is invalid. Valid values are Custom and System. 标签类型非法,合法值为Custom,System。
400 InvalidParameter.NextToken The parameter NextToken is invalid. 参数NextToken(查询凭证)无效,请输入正确的NextToken值。
400 InvalidParameter.ResourceType The ResourceType parameter is invalid. 参数ResourceType无效,请输入固定值ALIYUN::DTS::INSTANCE。
400 InvalidParameter.Scope The specified Scope is invalid. Valid value: public, private. 标签可见范围输入无效,请输入有效值public或 private。
400 Throttling.User Request was denied due to user flow control. 由于请求频次达到阈值,请求被拒绝,请稍后重试。
403 Duplicate.TagKey The Tag.N.Key contains duplicate keys. 存在重复的标签键,请删除多余的标签键。
403 NoPermission.SystemTag You are not authorized to operate system tag because the product code is invalid. 由于产品code非法,您未被授权操作该系统标签键。
403 QuotaExceed.TagsPerResource The maximum number of tags for each resource is exceeded. 已超过标签数量上限,请先删除不需要的标签。
403 NoPermission.Operator The user is not authorized to operate on the specified resource. 该用户未被授权在指定的资源上进行操作。
403 InvalidSecurityToken.Expired Specified SecurityToken is expired. 签名已经过期,请更新签名
500 ServiceUnavailable The request has failed due to a temporary failure of the server. 由于服务端响应超时或者不可用导致请求失败,请重试,重试后仍失败请联系技术支持。

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