暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

中电科金仓KingbaseFlysync(KFS)使用SQLServer作源端时自增列同步功能介绍及使用说明

原创 KFS补给站 2025-01-08
229


关键字:

中电科金仓、KingbaseFlySync、KFS、同步程序、replicator、数据同步、数据解析、SQLServer、自增列、实时同步

1. 使用场景

SQLServer中,自增列是一种常见的需求,用户自动生成唯一的标识符,实现自增列的方法主要有两种:使用IDENTITY属性和使用Sequence对象。

当使用Sequence对象时,KingbaseFlySync对象将会解析出自增列实际的值,这样同步到目标端无任何问题。

当使用IDENTITY属性时,KingbaseFlySync对象在源端也是解析出自增列实际的值,但是在目标端插入时,如果对自增列显示赋值,就需要先开启表的IDENTITY_INSERT属性(且该属性在同一数据库中,不能有多张表同时开启)。

基于此场景,KingbaseFlySync提供了对应参数,既支持对自增列的显示插入功能,也支持对自增列的隐式插入。

2. 配置使用方式介绍

2.1 配置方式

  1. 在flysync.ini中新增如下配置:

## sqlserver源端存在自增列且需要显式的在目标端插入时,目标端需要配置如下参数:

property=replicator.applier.dbms.enableIdentity=true

## 配置下列相关的参数,将会对源端生成的、符合条件的sql进行整改:

## 例如配置了dropUpdateSet=true且假设ID列是自增列

## 会将:update tablename set ID=1,A=2 where ID=1 and A=1

## 整改为:update tablename set A=2 where ID=1 and A=1

svc-remote-filters=dropcolumnbydesc

##后续的这四项配置默认值是true,如果使用默认值,则ini中无需配置

property=replicator.filter.dropcolumnbydesc.dropInsert=false

property=replicator.filter.dropcolumnbydesc.dropUpdateSet=true

property=replicator.filter.dropcolumnbydesc.dropUpdateWhere=false

property=replicator.filter.dropcolumnbydesc.dropDelete=true

2. 在KingbaseFlySync的replicator安装包中执行安装/更新,使配置生效

3. 参数生效的规则

KingbaseFlySync同步过程中dropcolumnbydesc过滤器在enableIdentity属性之前生效,所以如果需要配置enableIdentity属性,那么property=replicator.filter.dropcolumnbydesc.dropInsert参数需要配置为false。

否则dropInsert会先将kufl中的自增列先删除,此时enableIdentity属性也就没有实际意义了。

4. 支持的拓扑配置

自增列同步功能支持的拓扑如下:

SQLServer -> SQLServer

SQLServer -> KES(SQLServer兼容模式)

KES(SQLServer兼容模式)-> SQLServer

KES(SQLServer兼容模式)-> KES(SQLServer兼容模式)

参考资料

《Kingbase FlySync 安装部署手册》

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论