在调用ConfigureSynchronizationJob接口或ModifySynchronizationObject接口时,您需要传入同步对象参数。本文为您介绍同步对象的定义和配置案例。

相关接口

同步对象定义说明

同步对象(SynchronizationObjects)的取值类型为Object,支持一定的正则表达式,详细定义如下所示。

[{
    "DBName": "待同步的库名",
    "NewDBName": "待同步的库在目标实例中映射的别名",
    "TableIncludes": [{
    "TableName": "待同步的表名",
    "NewTableName": "待同步的表在目标实例中映射的别名",
    "DDLSync": "DDL同步语句配置",
    "DMLSync": "DML同步语句配置"
    }],
    "TableExcludes": [{
    "TableName": "该库中不需要同步的表名"
    }]
}]
说明 关于DDLSync和DMLSync参数的定义请参见DDLSync定义补充说明DMLSync定义补充说明

DDLSync定义补充说明

通过传入DDLSync参数,您可以配置需要同步的DDL语句,取值类型为Object,详细定义如下表所示。

说明
  • 如果不指定DDLSync参数,则同步所有的DDL语句。
  • DTS对DDL语句同步的支持情况因数据库类型不同而有所差异,详情请参见DTS数据同步方案概览中对应的配置案例。
名称 类型 描述
CreateTable Boolean 是否同步CREATE TABLE语句,取值:True|False
说明 本参数只有在调用ConfigureSynchronizationJob接口时才可用。
DropTable Boolean 是否同步DROP TABLE语句,取值:True|False
RenameTable Boolean 是否同步RENAME TABLE语句,取值:True|False
TruncateTable Boolean 是否同步TRUNCATE TABLE语句,取值:True|False
AlterTable Boolean 是否同步ALTER TABLE语句,取值:True|False

DMLSync定义补充说明

通过传入DMLSync参数,您可以配置需要同步的DML语句,取值类型为Object,定义如下表所示。

说明 如果不指定DMLSync参数,则同步所有的DML语句。
名称 类型 描述
Insert Boolean 是否同步INSERT语句,取值:True|False
Update Boolean 是否同步UPDATE语句,取值:True|False
Delete Boolean 是否同步DELETE语句,取值:True|False

同步对象配置示例

示例一:同步dtstestdata库中所有的表。

[{
    "DBName": "dtstestdata"
}]

示例二:同步dtstestdata库中除表名前缀为order以外的所有表。

[{
    "DBName": "dtstestdata",
    "TableExcludes": [{
        "TableName": "order.*"
    }]
}]

示例三:同步dtstestdata库中的customer表,且设置只同步INSERT和UPDATE语句。

[{
    "DBName": "dtstestdata",
    "TableIncludes": [{
        "TableName": "customer",
        "DDLSync": {
            "CreateTable": "False",
            "DropTable": "False",
            "AlterTable": "False",
            "RenameTable": "False",
            "TruncateTable": "False"
        },
        "DMLSync": {
            "Insert": "True",
            "Update": "True",
            "Delete": "False"
        }
    }]
}]

支持的正则表达式

符号 规则描述
英文句号(.) 表示匹配除‘\r\n’之外的任何单个字符。
星号(*) 表示匹配前面子表达式任意次,例如:h.*llo将匹配 hllo或heeeello等字符串。
英文问号(?) 表示匹配前面子表达式零次或1次,例如:h.?llo将匹配hllo或hello,但不能匹配haello。
[characters] 字符集合 表示匹配方括号内任意一个字符,例如:h[ae]llo将匹配hallo或hello。
[^characters] 负值字符集合 表示不匹配方括号内任意一个字符,例如:h[^ae]llo将匹配hcllo或hdllo,但不能匹配hallo或hello。
[character1-character2] 字符范围 表示匹配character1-character2范围内的字符,例如: [0-9]、[a-z]。