名称解释:
l KFS:Kingbase Flysync的缩写,是金仓自主研发的、能够在异构数据平台间实现实时、增量数据同步的产品
l CDC:即Changed Data Capture,增量数据获取
一、安装前准备
1.1 软件环境要求
KFS支持在CentOS 6.X、CentOS 7.X、Kylin 4.0、普华5.0、UOS 20、凝思6.0、湖南麒麟3.x、专用机海光CPU +中科方德OS等64位发行版本上安装部署。
Kingbase Flysync支持的SQLServer版本为: 2008、2014、2016、2017
1.2 安装包准备
准备需要的KFS数据同步软件安装程序,此文档中以如下版本作示例:KingbaseFlySync-V002R002C004B20230216-replicator.tar.gz
1.3 注意事项
1.3.1 服务器机器名
安装KFS的服务器,机器名需要和SQLServer数据库的服务名相同:使用SELECT @@servername从SQLServer数据库查询到服务名,然后将数据库服务名和服务器机器名修改一致
注1:修改数据库服务名或服务器机器名
注2:如果修改服务器机器名,需要确保/ect/hosts中映射的机器名也对应修改
1.3.2安装用户
KFS部署之前,需要建立独立的运行帐号:
[root@sqlserver ~]# useradd -d /home/flysync flysync
创建用户后,修改相关用户的密码;
[root@sqlserver ~]# passwd flysync
1.3.3 上传并解压安装包
使用flysync用户登录服务器,并上传KingbaseFlySync-V002R002C004B20230216-replicator.tar.gz,然后解压该文件:
tar –zxf KingbaseFlySync-V002R002C004B20230216-replicator.tar.gz
二、配置安装
2.1 配置文件列表简介
配置文件所在的路径为:


图 2-1 配置文件列表
flysync.tables:配置相关模式/表,然后对相关表进行CDC配置
setupCDC.conf:CDC安装的配置文件
cleanCDC.sh:卸载/清除CDC
setupCDC.sh:安装CDC的脚本文件
updateCDC.sh:更新CDC的脚本文件
2.2 配置文件配置简介
2.2.1 配置flysync.tables文件


图 2-2 flysync.tables文件
flysync.tables 文件的格式为:
schama_name<tab>table_name<tab>column_list
例如:
SCHEMA_1<tab>TABLE_1<tab>C1,C2,C3 表示TABLE_1 的C1、C2、C3 列
注1:<tab>表示TAB键
注2:所有的表都需要有主键
注3:模式名、表名和列名大小写需要和数据库中保持一致
2.2.2 配置setupCDC.conf文件


图2-3 setupCDC.conf文件
配置参数解释如下:
service | 服务名称,由用户自行指定(注意:需要和和后面同步工具部署时的服务名称保持一致) |
db_host | SQLServer 所在的机器地址和端口,默认localhost,1433 |
db_name | 要同步的表所在的数据库 |
sa_user | sa 用户的帐号 |
sa_pass | sa 用户的密码 |
source_user | 同步的用户名称(会自动创建) |
source_password | 同步用户(source_user配置的用户)密码 |
delete_user | 是否删除同步用户(当存在时,注意:设置为1 时,会强制删除同步用户)一般用在重新部署时 |
specific_path | flysync.tables 文件所在的路径 |
file_group_size | 创建文件组最大值,不指定默认16GB,值参照增量数据储备大小设定 |
2.3 部署CDC
2.3.1 安装CDC
配置好flysync.tables和setupCDC.conf文件后,执行setupCDC.sh文件:


图 2-4 安装CDC
2.3.2更新CDC
已经执行setupCDC.sh后,数据库中新增了相关表,此时可以更新flysync.tables中的配置,然后执行update.sh


图 2-5 更新CDC
2.3.3清理CDC
执行cleanCDC.sh可以清除相关CDC配置:


图 2-6 清理CDC
三、验证安装
配置完成CDC后,SQLServer将会捕获相关的数据变更,可以通过插入/更新/删除相关表的数据来进行验证。
假设create table dbo.testa(id int primary key,a int)表已经完成CDC配置
初始时无数据:

图 3-1 初始状态
INSERT数据:

图 3-2 解析INSERT操作
UPDATE数据:

图 3-3 解析UPDATE操作
DELETE数据:


图 3-4 解析DELETE操作
四、总结
1、SQLServer CDC功能,只针对有主键的表,如果存在无主键的表,则需要对表添加主键
2、安装KFS的服务器机器名需和SQLServer服务名一致
3、SQLServer默认CDC捕获的数据将保留3天:
select retention from msdb.dbo.cdc_jobs where job_type='cleanup';
如果想保留更长的时间,则可以执行:
execute sys.sp_cdc_change_job @job_type=N'cleanup',@retention=100080;
更多参见:Kingbase FlySync产品手册




