描述
当调用购买同步作业接口购买完同步实例后,可以调用这个接口配置同步作业。
只有当同步作业处于未配置状态时,才可以调用这个接口配置作业。
请求参数
参数名称 | 数据类型 | 是否必须 | 参数说明 |
---|---|---|---|
Action | String | 是 | 系统默认参数,这个接口的接口定义,取值为:ConfigureSynchronizationJob |
SynchronizationJobId | String | 是 | 同步作业Id |
SynchronizationJobName | String | 否 | 同步作业名称 |
SynchronizationDirection | String | 否 | 这个参数只有当实例为双向同步时才会使用,指定同步方向,取值包括:Forward、Reverse,默认取值为Forward |
SourceEndpoint.InstanceType | String | 是 | 同步链路的源端的实例类型,取值为: RDS:阿里云RDS实例 POLARDB:阿里云POLARDB for MySQL集群 ECS:ECS上的自建数据库 Express:通过专线接入的本地数据库 默认取值为RDS |
SourceEndpoint.InstanceId | String | 是 | 同步源实例的实例ID |
SourceEndpoint.IP | String | 否 | 源实例的连接地址,当源实例为通过专线接入的本地DB时必填 |
SourceEndpoint.Port | String | 否 | 源实例的监听端口,当源实例为ECS或通过专线接入的本地DB时必填 |
SourceEndpoint.UserName | String | 是 | 源实例的访问账号,当源实例为ECS或通过专线接入的本地DB时必填 |
SourceEndpoint.Password | String | 是 | 源实例的访问密码,当源实例为ECS或通过专线接入的本地DB时必填 |
SourceEndpoint.OwnerID | String | 否 | 当同步源实例跟目标实例不属于同一个阿里云账号时,这个参数为源实例所属阿里云账号的UID |
SourceEndpoint.Role | String | 否 | 当同步源实例跟目标实例不属于同一个阿里云账号时,这个参数为源实例所属账号对目标实例所属阿里云账号的授权角色,角色的相关权限及授权步骤 参考 跨账号迁移同步 |
DestinationEndpoint.InstanceType | String | 是 | 同步链路的目标端的实例类型,取值为: RDS:阿里云RDS实例 POLARDB:阿里云POLARDB for MySQL集群 ECS:ECS上的自建数据库 Express:通过专线接入的本地数据库 MaxCompute:阿里云MaxCompute实例 默认取值为RDS |
DestinationEndpoint.InstanceId | String | 是 | 同步目标实例的实例ID 当目标实例为MaxCompute时,传入MaxCompute实例中的Project名称。 |
DestinationEndpoint.IP | String | 否 | 目标实例连接地址,当目标实例为通过专线接入的本地DB时必填 |
DestinationEndpoint.Port | String | 否 | 目标实例监听端口,当目标实例为ECS或通过专线接入的本地DB时必填 |
DestinationEndpoint.UserName | String | 是 | 目标实例的访问账号,当目标实例为ECS或通过专线接入的本地DB时必填 |
DestinationEndpoint.Password | String | 是 | 目标实例的访问密码,当目标实例为ECS或通过专线接入的本地DB时必填 |
SynchronizationObjects | List | 是 | 同步对象,格式为JSON串,详情请参见本文的SynchronizationObjects参数定义。 |
StructureInitialization | Boolean | 否 | 同步之前是否进行结构对象初始化,取值包括: true: 表示进行结构对象初始化 false:表示不进行结果对象初始化 默认取值为:true |
DataInitialization | Boolean | 否 | 同步之前是否进行全量数据初始化,取值包括: true: 表示进行全量数据初始化 false:表示不进行全量数据初始化 默认取值为:true |
OwnerId | String | 否 | 非服务化虚商接入时,指定资源的owner |
SynchronizationObjects参数定义
SynchronizationObjects的格式为JSON字符串,且支持一定的正则表达式。
定义如下:
[
{
"DBName":"待同步库名",
"NewDBName":"待同步数据库在目标实例中映射的库名",
"SchemaName":"待同步 Schema 名",
"NewSchemaName":"待同步 Schema 在目标实例中映射的 Schema 名",
"TableIncludes":[
{
"TableName":"待同步表表名",
"NewTableName":"待同步表在目标实例映射的表名",
"FilterCondition":"where condition",
"ColumnIncludes":[
{
"ColumnName":"待同步表中需同步列名",
"NewColumnName":"待同步列在目标实例中映射的列名"
}
],
"ColumnExcludes":[{
"ColumnName":"待同步表中不同步列名"
}]
}
],
"TableExcludes":[{
"TableName":"待同步库名不需要同步表的表名"
}]
}
]
其中,SchemaName
和NewSchemaName
参数只适用于 SQLServer
,其他类型的数据库库名使用DBName
和 NewDBName
参数。
如果只配置了
DBName
,未配置其他子对象的规则,那么将同步该库中的所有对象。
同步对象还支持如下的正则表达式:
- 英文句号(.)表示匹配除 ‘\r\n’ 之外的任何单个字符。
- 星号(*)表示匹配前面子表达式任意次,例如:
h.\*llo
将匹配hllo、heeeello等字符串。 - 问号(?)表示匹配前面子表达式零次或1次,例如:
h.?llo
将匹配hllo、hello,但不能匹配 haello。 - [characters] 字符集合,表示匹配方括号内任意一个字符,例如:
h[aello]
将匹配hallo、hello。 - [^characters] 负值字符集合,表示不匹配方括号内任意一个字符,例如:
h[^ae]llo
将匹配hcllo、hdllo,但是不能匹配hallo、hello。 - [character1-character2] 字符范围,表示 character1-character2 范围内的字符都可以匹配,例如: [0-9]、[a-z]。
返回参数
参数名称 | 数据类型 | 参数说明 |
---|---|---|
<公共返回参数> | – | 接口请求ID |
示例
下面简单演示通过JAVA SDK 配置同步实例的示例:
public void configureSyncJobRDS2RDS(String SyncJobId,DefaultAcsClient client) {
ConfigureSynchronizationJobRequest request = new ConfigureSynchronizationJobRequest();
request.setSynchronizationJobId(SyncJobId);
request.setSynchronizationJobName("jiangliu_test_rds2rds_sync");
request.setSourceEndpointInstanceId("rm-bp185gso372vbd1l8");
request.setDestinationEndpointInstanceId("rm-bp1nx2h5fm3v6q26l");
request.setStructureInitialization(true);
request.setDataInitialization(true);
String SyncObject="[{\"DBName\":\"jiangliutest\",\"NewDBName\":\"jiangliutest\","
+ "\"TableIncludes\":[{\"TableName\":\"t1\",\"NewTableName\":\"t1\"}]}]";
request.setSynchronizationObjects(SyncObject);
ConfigureSynchronizationJobResponse response = new ConfigureSynchronizationJobResponse();
try {
response = client.getAcsResponse(request);
System.out.println("Configure Sync Job Succeed!");
} catch (Exception e) {
// TODO: handle exception
System.out.println("Configure Sync Job Failed");
System.out.println(e.toString());
}
}
原创文章,作者:网友投稿,如若转载,请注明出处:https://www.cloudads.cn/archives/34025.html