更新时间:2025-09-05 GMT+08:00

批量设置同步策略

功能介绍

  • 批量设置同步策略,包括冲突策略、过滤DROP Database、对象同步范围。

接口约束

  • 任务创建成功之后,任务状态为CONFIGURATION,并且与源库和目标库测试连接通过、修改任务接口调用成功后才能调用。

URI

POST /v3/{project_id}/jobs/batch-sync-policy

表1 路径参数

参数

是否必选

参数类型

描述

project_id

String

租户在某一Region下的Project ID。

获取方法请参见获取项目ID

请求参数

表2 请求Header参数

参数

是否必选

参数类型

描述

Content-Type

String

指定类型为application/json。

缺省值:application/json

X-Auth-Token

String

从IAM服务获取的用户Token。

X-Language

String

请求语言类型。

缺省值:en-us

取值:

  • en-us
  • zh-cn
表3 请求Body参数

参数

是否必选

参数类型

描述

jobs

Array of objects

批量设置同步策略请求列表。

详情请参见表4

表4 jobs字段数据结构说明

参数

是否必选

参数类型

描述

job_id

String

任务ID。

conflict_policy

String

冲突策略。

取值:

  • ignore:忽略。
  • overwrite:覆盖。
  • stop:报错。

filter_ddl_policy

String

过滤DDL策略。

取值:drop_database

ddl_trans

Boolean

同步增量是否同步DDL。

index_trans

Boolean

同步增量是否同步索引。

is_fill_materialized_view

Boolean

PostgreSQL全量阶段是否填充物化视图,不填默认为false。

export_snapshot

Boolean

PostgreSQL全量阶段是否使用快照模式导出,不填默认为false。

slot_name

String

复制槽名称。PostgreSQL为源的单增量同步任务选填。

file_and_position

String

  • MySQL为源通过show master status命令获取源库位点,根据提示分别填写File:Position。例如:mysql-bin.000277:805。文件名只能为1-60个字符且不能包含< > & : " ' / \\ 特殊字符,文件编号只能为3-20个数字,binlog事件位置只能为1-20个数字,且总长度不能超过100个字符。格式为:文件名.文件编号:事件位点。
  • MongoDB为源的任务,任务的源库日志从位点开始获取(含当前启动位点),位点需设置在oplog范围以内。非集群通过db.getReplicationInfo()直接获得oplog范围,集群通过db.watch([], {startAtOperationTime: Timestamp(xx, xx)})命令,将启动位点填在xx处,校验位点是否在oplog范围以内。格式为:timestamp:incre。timestamp和incre均为范围在1~2,147,483,647之间的整数。

gtid_set

String

  • MySQL为源的任务需要填写。通过show master status命令获取源库位点,根据提示填写Executed_Gtid_Set(如果源库为MySQL 5.5版本,则不支持使用同步任务)。
  • 不能包含< > & " ' / \\ 特殊字符和中文,且不能超过2048个字符。

ddl_topic

String

存储DDL的topic,Kafka为目标且ddl_trans为true时必填。

取值:目标库已存在的topic名称,确保topic已存在。

响应参数

状态码: 200

表5 响应Body参数

参数

参数类型

描述

count

Integer

总数。

results

Array of objects

批量设置同步策略返回列表。

详情请参见表6

表6 results字段数据结构说明

参数

参数类型

描述

id

String

任务ID。

status

String

状态。取值:

  • success:成功。
  • failed:失败。

error_code

String

错误码。

error_msg

String

错误信息。

请求示例

  • 批量设置同步任务策略,其中增量冲突策略为忽略,同步增量DDL并过滤drop_database操作
    https://{endpoint}/v3/054ba152d480d55b2f5dc0069e7ddef0/jobs/batch-sync-policy
    
    {
        "jobs": [{
    	"conflict_policy": "ignore",
    	"ddl_trans": true,
    	"filter_ddl_policy": "drop_database",
    	"index_trans": true,
    	"job_id": "19557d51-1ee6-4507-97a6-8f69164jb201"
        }]
    }
  • 批量设置MySQL单增量同步任务策略示例:
    https://{endpoint}/v3/054ba152d480d55b2f5dc0069e7ddef0/jobs/batch-sync-policy 
      
     { 
       "jobs": [ 
         { 
           "conflict_policy": "ignore", 
           "ddl_trans": true, 
           "filter_ddl_policy": "drop_database", 
           "index_trans": true, 
           "job_id": "19557d51-1ee6-4507-97a6-8f69164jb201",
           "file_and_position": "mysql-bin.000019:197", 
           "gtid_set":"e4979f26-4bc3-11ee-b279-fa163ef21d64:1-23" 
         } 
       ] 
     }

响应示例

状态码: 200

OK

{
  "results" : [ {
    "id" : "19557d51-1ee6-4507-97a6-8f69164jb201",
    "status" : "success"
  } ],
  "count" : 1
}

状态码

状态码

描述

200

OK

400

Bad Request

错误码

请参见错误码