名称解释:
KFS:Kingbase Flysync的缩写,是人大金仓自主研发的、能够在异构数据平台间实现实时、增量数据同步的产品
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支持的DB2版本为: V9.X、V10.X、V11.X
1.2 数据库开启归档日志
以sample数据库为例(现场部署时替换为实际数据库名称)- 使用管理用户db2inst1连接sample
db2 connect to sample- 检查是否开启归档日志
db2 get db cfg for sample | grep -i LOGARCHMETH
图1-1 数据库归档查询结果
如果LOGARCHMETH1为OFF表示没开启归档日志,则按照文档进行后续操作;如果LOGARCHMETH1为TRUE表示归档已经开启,则可以跳过此章节的后续操作
- 停止应用连接
db2 list application | grep sample
图1-2 数据库连接查询结果
停止此数据库的连接,下面的id换成上面查询到的结果
db2 "force application (13169)"db2 "force application (13153)"- 开启日志归档(下面以本地归档目录为例)
mkdir -p /home/db2inst1/archive_sample/archivelog1#开启归档
db2 update db cfg for sample using logarchmeth1 DISK:/home/db2inst1/archive_sample/archivelog1- 做一次脱机备份
db2 backup db sample to /home/db2inst1/archive_sample1.3 新增用户并赋权
- 新增用户
[root@DB2 ~]# useradd -d /home/flysync flysync[root@DB2 ~]# passwd flysync- 赋予DB2数据库的DBA权限
db2 connect to sample授予管理员权限:
db2 grant dbadm on database to user flysync退出连接db2 terminate
1.4安装包准备
1、准备需要的KFS数据同步软件安装程序(此文档中以如下版本作示例:KingbaseFlySync-V002R002C004B20230216-replicator.tar.gz),将其上传到服务器的对应用户(1.3章节中新增的flysync用户)下。2、解压安装包:
tar –zxf KingbaseFlySync-V002R002C004B20230216-replicator.tar.gz –C ~flysync3、将安装包flysync-replicator/extractors/db2-cdc目录下的所有sql文件拷贝到DB2的管理员用户(db2inst1)下,此处假定为 ~db2inst1/tmpSQL/ 目录

图1-3 部署SQL文件列表
二、配置安装
2.1 部署UDF文件
- 连接数据库
db2 connect to sample user flysync using passxxx- 上传UDF jar和注册UDF
注意:不同DB2版本使用的asncdc.jar不同
V11使用的UDF jar
V10使用的UDF jar
V9使用的UDF jar
- 安装UDF JAR
db2 "CALL SQLJ.INSTALL_JAR('file:/home/db2inst1/tmpSQL/asncdc.jar', asncdcjar)"- 注册服务控制UDF
db2 -tmf /home/db2inst1/tmpSQL/asncdc_UDF.sql- 创建asn控制表
# v11 版本
db2 –tmf /home/db2inst1/tmpSQL/asncdctables_v11.sql# v10 版本
db2 -tmf /home/db2inst1/tmpSQL/asncdctables_v10.sql# v9 版本
db2 -tmf /home/db2inst1/tmpSQL/asncdctables_v9.sql- 注册新增删除UDF
# v11和v10 版本
db2 -tmf /home/db2inst1/tmpSQL/asncdcaddremove_v10-v11.sql# v9 版本
db2 -tmf /home/db2inst1/tmpSQL/asncdcaddremove_v9.sql2.2 CDC配置文件
2.2.1 配置文件列表

图 2-1 配置文件列表
脚本 | 作用 | 参数说明 |
setupCDC.sh | 读取flysync.tables里配置的表,然后配置CDC | -h 查看使用说明 -c <path> :path表示setupCDC.conf的全路径,如果不指定-c参数,则默认使用当前路径下的 -cs:生成修改CAPTURE CHANGES属性的sql文件 |
cleanCDC.sh | 清理db2 CDC的配置 | -h 查看使用说明 -c <path> :path表示setupCDC.conf的全路径,如果不指定-c参数,则默认使用当前路径下的 -a 使用此参数将清理db2所有CDC配置(包含安装的控制表和UDF jar),如果不指定此参数,则默认只清理flysync.tables里配置的CDC表 |
setupCDC.conf | 配置DB2相关信息 | |
flysync.tables | 部署时使用配置表 |
2.2.2 配置文件flysync.tables

图 2-2 flysync.tables文件
flysync.tables 文件里边列出需要同步的表
flysync.tables 文件的格式为:
schemaName<TAB>tableName
注1:<tab>表示TAB键
注2:模式名、表名大小写需要和数据库中保持一致
2.2.4 配置文件setupCDC.conf

图2-3 setupCDC.conf文件
配置参数解释如下:
参数名称 | 含义 |
service | 服务名称,由用户自行指定(注意:需要和和后面同步工具部署时的服务名称保持一致 |
db_host | db2所在的机器ip或域名 |
db_port | db2的端口 |
db_name | 要同步的表所在的数据库 |
sys_user | 系统用户名 |
sys_pass | 系统用户名密码 |
source_user | 同步的用户名称(需手动创建) |
source_password | 同步的用户密码 |
sqllib_Path | db2 sqllib目录位置的全路径 |
commit_interval | 变更数据提交到CD表中的间隔时间 |
auto_setup | true: DBA权限部署/清理时自动启停asncap服务 |
2.3 部署CDC
2.3.1 配置CAPTURE CHANGES属性
./setupCDC.sh -cs按照2.1节将ALTER_CAPTURE_CHANGES.sql上传到db2服务器~db2inst1/tmpSQL/,并使用具有dbadm权限的用户执行
db2 –tmf /home/db2inst1/tmpSQL/ALTER_CAPTURE_CHANGES.sql2.3.2安装CDC
配置好flysync.tables和setupCDC.conf文件后,执行setupCDC.sh文件:

图 2-4 安装CDC
安装成功后,可以通过ps命令查看相关进程:

图2-5 捕获进程查看结果
2.3.2清理CDC
执行cleanCDC.sh可以清除相关CDC表配置:

图 2-6 清理CDC(仅CDC表)
执行cleanCDC.sh -a 可以清除所有CDC配置:

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

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

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

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

图 3-4 解析DELETE操作
四、总结
此部署方案的前提是用户可以提供DBA权限,当用户不能提供DBA权限时,请参考最小权限部署的相关文档。实际安装部署时,对应的用户、数据库名称、相关文件路径需要根据实际情况修改
参考文档:
《Kingbase FlySync 安装部署手册.pdf》




