当数据同步作业的源数据库或目标数据库发生了主备切换时,您可以调用SwitchSynchronizationEndpoint接口,将主备切换后新数据库的连接信息传给DTS,DTS将从断点处重新启动数据同步任务。

  • 如发生主备切换的源或目标实例是公网、ECS或专线接入的自建MySQL,您需调用本接口,来更新主备切换后的新数据库的连接信息。
  • 如发生主备切换的源或目标实例是阿里云数据库实例(例如RDS、MongoDB等),DTS会自动更新连接信息,您无需手动调用本接口。
    说明
    • 如果数据同步实例的同步拓扑为双向,且源或目标实例发生主备切换,则需要调用两次本接口,更新主备切换后新数据库的连接信息。

      比如当正向的目标数据库发生主备切换时,您需要调用两次本接口。第一次调用时,SynchronizationDirectionForwardEndpoint.Type Destination,并传入新数据库的连接信息。第二次调用时,SynchronizationDirectionReverseEndpoint.Type Source,并传入新数据库的连接信息。

调试

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

请求参数

名称 类型 是否必选 示例值 描述
Action String SwitchSynchronizationEndpoint

系统规定参数,取值:SwitchSynchronizationEndpoint

Endpoint.InstanceId String i-bp11haem1kpkhoup****

ECS或专有网络的实例ID。

说明
  • Endpoint.InstanceType取值为ECS时,本参数需传入ECS实例的ID。
  • Endpoint.InstanceType取值为Express时,本参数需传入专有网络ID。
Endpoint.InstanceType String ECS

新数据库所属的实例类型,取值:

  • LocalInstance:有公网IP的自建数据库;
  • ECS:ECS上的自建数据库。
  • Express:通过专线接入的自建数据库。
Endpoint.Port String 3306

新的数据库服务端口。

Endpoint.Type String Destination

待调整连接信息的实例,取值:

  • Source:源实例。
  • Destination:目标实例。
SynchronizationJobId String dtsexjk1alb116****

数据同步实例ID,可以通过调用DescribeSynchronizationJobs接口查询。

RegionId String cn-hangzhou

地域ID,传入本参数来指定实例所在地域,详情请参见支持的地域列表

SynchronizationDirection String Forward

同步方向,取值:

  • Forward:正向。
  • Reverse:反向。
说明 默认取值为Forward

只有当数据同步实例的同步拓扑为双向同步时,本参数传入Reverse才会生效。

Endpoint.IP String 172.15.185.***

新数据库的IP地址。

说明Endpoint.InstanceType取值为Express时,本参数才可用且必须传入。
SourceEndpoint.OwnerID String 14069264****

当源实例与目标实例所属阿里云账号不同时,您需要传入该参数指定源实例的所属阿里云账号的ID。

SourceEndpoint.Role String ram-for-dts

当源实例与目标实例所属阿里云账号不同时,需传入该参数,来指定源实例的授权角色,以允许目标实例阿里云账号访问源实例的实例信息。

说明 角色所需的权限及授权方式,请参见跨阿里云账号数据迁移或同步时如何配置RAM授权
AccountId String 12323344****

阿里云账号ID,无需设置,该参数即将下线。

返回数据

名称 类型 示例值 描述
ErrCode String InternalError

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

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

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

RequestId String 3232F84C-C961-4811-B014-4EA7A27C****

请求ID。

Success String true

是否成功。

TaskId String 11****

任务ID,您可以根据此返回值调用DescribeEndpointSwitchStatus接口查询该任务的执行状态。

示例

请求示例

http(s)://dts.aliyuncs.com/?Action=SwitchSynchronizationEndpoint
&Endpoint.InstanceId=i-bp11haem1kpkhoup****
&Endpoint.InstanceType=ECS
&Endpoint.Port=3306
&Endpoint.Type=Destination
&SynchronizationJobId=dtsexjk1alb116****
&<公共请求参数>

正常返回示例

XML格式

<SwitchSynchronizationEndpointResponse>
      <RequestId>3232F84C-C961-4811-B014-4EA7A27C****</RequestId>
      <Success>true</Success>
      <TaskId>11****</TaskId>
</SwitchSynchronizationEndpointResponse>

JSON格式

{
    "SwitchSynchronizationEndpointResponse": {
        "RequestId": "3232F84C-C961-4811-B014-4EA7A27C****",
        "Success": true,
        "TaskId": "11****"
    }
}

错误码

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