当数据同步作业的源数据库或目标数据库发生了主备切换,您可以调用SwitchSynchronizationEndpoint接口,将主备切换后新数据库的连接信息传给DTS,DTS将从断点处重新启动数据同步。
前提条件
数据同步作业的源数据库或目标数据库发生了主备切换,导致连接信息发生变化。
说明 数据库类型需为MySQL。
请求参数
名称 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
Action | String | 是 | SwitchSynchronizationEndpoint | 要执行的操作,取值:SwitchSynchronizationEndpoint。 |
SynchronizationJobId | String | 是 | dtsxxxxxxxx | 数据同步实例ID。 |
EndpointType | String | 是 | Source | 待调整连接信息的数据库,取值:
|
EndpointInstanceType | String | 是 | ECS | 新数据库所属的实例类型,取值:
|
EndpointInstanceId | String | 是 | i-bpxxxxxxxx | ECS或专有网络的实例ID。
说明
|
EndpointPort | String | 是 | 3306 | 新数据库的数据库服务端口。 |
EndpointIP | String | 否 | 172.16.xx.xx | 新数据库的IP地址。
说明 当EndpointInstanceType取值为Express时,本参数才可用且必须传入。
|
SynchronizationDirection | String | 否 | Forward | 同步方向,取值:
说明 默认取值为Forward。
|
返回参数
名称 | 类型 | 示例值 | 描述 |
---|---|---|---|
RequestId | String | 36923CC2-DDAB-4B48-A144-DA92C1E19537 | 请求ID。 |
TaskId | String | 1xxxxxx | 任务ID,您可以根据此返回值调用DescribeEndpointSwitchStatusRequest接口查询该任务的执行状态。 |
Success | String | true | 是否调用成功,取值true或false。 |
示例
public String endpointSwitch(String synchronizationJobId, String synchronizationDirection, String endpointType, String endpointInstanceType, String endpointInstanceId,
String endpointIp, String endpointPort)
{
SwitchSynchronizationEndpointRequest request = new SwitchSynchronizationEndpointRequest();
request.setSynchronizationJobId(synchronizationJobId);
request.setSynchronizationDirection(synchronizationDirection);
request.setEndpointType(endpointType);
request.setEndpointInstanceType(endpointInstanceType);
request.setEndpointInstanceId(endpointInstanceId);
request.setEndpointIP(endpointIp);
request.setEndpointPort(endpointPort);
try
{
SwitchSynchronizationEndpointResponse response = client.getAcsResponse(request);
String taskId = response.getTaskId();
return taskId;
}
catch (Exception e)
{
System.out.println("Switch synchronization endpoint failed");
System.out.println(e.toString());
}
return null;
}
错误码
访问错误码中心查看更多错误码信息。
在文档使用中是否遇到以下问题
更多建议
匿名提交