全部产品
云市场

配置同步作业

更新时间:2019-09-24 10:10:06

描述

当调用购买同步作业接口购买完同步实例后,可以调用这个接口配置同步作业。
只有当同步作业处于未配置状态时,才可以调用这个接口配置作业。

请求参数

参数名称 数据类型 是否必须 参数说明
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字符串,且支持一定的正则表达式。

定义如下:

  1. [
  2. {
  3. "DBName":"待同步库名",
  4. "NewDBName":"待同步数据库在目标实例中映射的库名",
  5. "SchemaName":"待同步 Schema 名",
  6. "NewSchemaName":"待同步 Schema 在目标实例中映射的 Schema 名",
  7. "TableIncludes":[
  8. {
  9. "TableName":"待同步表表名",
  10. "NewTableName":"待同步表在目标实例映射的表名",
  11. "FilterCondition":"where condition",
  12. "ColumnIncludes":[
  13. {
  14. "ColumnName":"待同步表中需同步列名",
  15. "NewColumnName":"待同步列在目标实例中映射的列名"
  16. }
  17. ],
  18. "ColumnExcludes":[{
  19. "ColumnName":"待同步表中不同步列名"
  20. }]
  21. }
  22. ],
  23. "TableExcludes":[{
  24. "TableName":"待同步库名不需要同步表的表名"
  25. }]
  26. }
  27. ]

其中,SchemaNameNewSchemaName参数只适用于 SQLServer,其他类型的数据库库名使用DBNameNewDBName参数。

如果只配置了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 配置同步实例的示例:

  1. public void configureSyncJobRDS2RDS(String SyncJobId,DefaultAcsClient client) {
  2. ConfigureSynchronizationJobRequest request = new ConfigureSynchronizationJobRequest();
  3. request.setSynchronizationJobId(SyncJobId);
  4. request.setSynchronizationJobName("jiangliu_test_rds2rds_sync");
  5. request.setSourceEndpointInstanceId("rm-bp185gso372vbd1l8");
  6. request.setDestinationEndpointInstanceId("rm-bp1nx2h5fm3v6q26l");
  7. request.setStructureInitialization(true);
  8. request.setDataInitialization(true);
  9. String SyncObject="[{\"DBName\":\"jiangliutest\",\"NewDBName\":\"jiangliutest\","
  10. + "\"TableIncludes\":[{\"TableName\":\"t1\",\"NewTableName\":\"t1\"}]}]";
  11. request.setSynchronizationObjects(SyncObject);
  12. ConfigureSynchronizationJobResponse response = new ConfigureSynchronizationJobResponse();
  13. try {
  14. response = client.getAcsResponse(request);
  15. System.out.println("Configure Sync Job Succeed!");
  16. } catch (Exception e) {
  17. // TODO: handle exception
  18. System.out.println("Configure Sync Job Failed");
  19. System.out.println(e.toString());
  20. }
  21. }