
目标端环境准备

sudo adduser flysyncecho flysync | passwd --stdin flysyncid flysyncsudo usermod -G kingbase flysyncid flysync
调整flysync的最大文件句柄数(open files)、允许创建的最大进程数量(max user processes)--在文件末尾添加以下内容:vi /etc/security/limits.confgrep flysync /etc/security/limits.conf-------增加内容 ---------------flysync - nofile 65535flysync - nproc 8096
vi /etc/hostscat etc/hosts-------增加内容 ---------------192.168.40.40 oracle40192.168.40.111 node1192.168.40.112 node2
此外,需要在network中设置本机的 hostname 属性值。示例配置文件如下:vi etc/sysconfig/networkcat /etc/sysconfig/network-------写入内容 ---------------NETWORKING = yesHOSTNAME = node1
5、上传rbenv包,并且安装ruby
cp /install/rbenv_2.2.2_linux_x64.zip home/flysync/chown flysync:flysync home/flysync/rbenv_2.2.2_linux_x64.zipls /home/flysync/rbenv_2.2.2_linux_x64.zip/home/flysync/rbenv_2.2.2_linux_x64.zipunzip -q home/flysync/rbenv_2.2.2_linux_x64.zipvi .bash_profilesource .bash_profileruby -v

数据库层配置

su - kingbaseksql -U system -d testCREATE USER flysync PASSWORD 'flysync';ALTER USER flysync REPLICATION;GRANT ALL ON DATABASE TEST TO flysync ;ALTER USER flysync SUPERUSER;
#修改数据库参数ALTER SYSTEM SET wal_level ='logical';ALTER SYSTEM SET wal_keep_segments = 4;ALTER SYSTEM SET max_wal_senders =10;ALTER SYSTEM SET max_replication_slots =10;#配置认证文件cat >> /data/sys_hba.conf << EOFhost replication all 0.0.0.0/0 scram-sha-256EOF#重启数据库生效sys_ctl restart -D /data/
ksql -U system -d test#创建用户CREATE USER space01 PASSWORD 'space01';#创建模式create schema space01 authorization space01;#设置参数search_path 为space01ALTER USER space01 IN DATABASE test SET search_path to 'space01';#查看\du space01\dn space01\c test space01SHOW search_path ;


部署同步程序

tar -zxf KingbaseFlySync-V002R002C004B20240919-replicator.tar.gz[flysync@node1 install]$ cd /install/KingbaseFlySync-V002R002C004B20240919-replicator/flysync-replicator/lib[flysync@node1 lib]$ cp ../../extensions/jdbc/kingbase8-8.6.0.jar .
#1、创建Kingbase FlySync配置文件#2、配置Kingbase FlySync配置文件cd install/KingbaseFlySync-*-replicator/flysync-replicator/samples/inicp flysync_kingbase8_source.ini ~/flysync.inivi ~/flysync.ini------------写入内容----------[defaults]# 安装目录install-directory=~/replicator# 环境变量脚本位置profile-script=~/.bash_profile# rmi端口,默认11000rmi-port=11000repl_java_mem_size=2048# 服务名[kingbase]# 监听kufl获取的端口kufl-port=3112# master主机名master=node1# 当前主机名members=node1# 数据源类型datasource-type=kingbase# 同步数据库信息replication-host=node1replication-user=flysyncreplication-password=flysyncreplication-port=54321# 同步服务角色role=master## 指定连接的数据库名称; 源端时,需指定解析方式kingbase-dbname=testkingbase-extractor-method=xlogical## kingbase 版本号datasource-version=8## 过滤器开关配置# svc_extractor_filters=replicate,casetransform,dropcolumn,renamesvc_extractor_filters=replicate,dropstatementdatasvc-remote-filters=rename,casetransform## 集群参数# property=replicator.datasource.global.connectionSpec.use_cluster=true# property=replicator.datasource.global.connectionSpec.slave_add=192.168.28.176,192.168.28.176# property=replicator.datasource.global.connectionSpec.slave_port=1521,1521### 过滤器详细配置## replicate 表过滤property=replicator.filter.replicate.do=space01.*# property=replicator.filter.replicate.ignore=PUBLIC.T1## casetransform 大小写转换property=replicator.filter.casetransform.to_upper_case=false## 优化参数# 达到多少条记录后,分事务,默认 500property=replicator.extractor.dbms.maxRowsByBlock=500# 若多少秒没有新的事务产生,那么就直接返回该事务,不再等待合并property=replicator.extractor.dbms.maxWaitingTime=2# 大事务优化参数property=replicator.extractor.dbms.minRowsPerBlock=4000# 自动恢复尝试次数,系统 OFFLINE 时,尝试将系统重新置于ONLINE状态的次数repl_auto_recovery_max_attempts=0# 系统 OFFLINE 时,尝试 ONLINE 之前的等待时间,s(秒)、m(分钟)、h(小时)repl_auto_recovery_delay_interval=30s# 系统自动恢复次数重置时间,s(秒)、m(分钟)、h(小时)repl_auto_recovery_reset_interval=300s##-----------------------分割线------------------###查看配置文件内容#cat ~/flysync.ini |grep -v ^# |grep -v ^$


cd /installunzip 2025kfslicense.zipcp /install/license_47307/license_47307_0.dat ~/replicator/license.datls -l ~/replicator/ | grep license

[flysync@node1 ~]$ source .bash_profile[flysync@node1 ~]$ env|grep flysync

#配置DML过滤策略(作为源端时)--1、只抽取space01模式下的增量数据,静默安装时已配置,确认配置。cat ~/flysync.ini | grep -E "svc_extractor_filters|replicate.do"

#配置DML映射策略(作为目标端时)--1、开启DML 映射功能,静默安装时已配置,确认配置。cat ~/flysync.ini | grep -E "svc-remote-filters|to_upper_case"

--2、将SPACE01模式下的增量数据映射到space01下。vi ~/replicator/filters-config/rename.csv------------清空原内容后写入以下内容-----------# 业务表SPACE01,*,*,space01,-,-cat ~/replicator/filters-config/rename.csv

replicator start offline

查看同步软件的运行状态
fsrepctl -service kingbase services

总结:
Kingbase KFS 提供了强大的数据抽取功能,能够满足不同场景下的数据同步需求。
通过合理的配置和优化,可以确保数据抽取的高效性和稳定性。
附录:
参考文档:金仓官方文档、KFS 用户手册。
文章转载自山佳数峰寻道,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




