环境描述
ip | os&cpu | 数据库 版本 | 数据库 端口 | 数据库和 用户名 | 备注 | |
源端 | 172.21.142.64 | Kylin-Server-V10-SP3 Kunpeng-920 | KES V8R6 单点 兼容oracle 不区分大小写 | 54321 | 数据库:bzk 用户名密码:sjtbk:J6uxWQ7vxdUaKEQ8XBfx | 是由源Oracle迁移到金仓 KDTS工具 |
目标端 | 172.19.107.53 | Centos7.4 X86_64 | Oracle11.2.0.4 单点 | 1521 | 实例:orl 用户名密码:bztsb:oracle | KFS同步服务 rbenv jdk |
KFS | 172.21.142.79 | Kylin-Server-V10-SP3 Kunpeng-920 | 单点 | 数据库:compare 用户名密码:system/12345678ab | KFS管控平台 KFS比对服务 KFS同步服务 rbenv jdk |
需求:将源端172.21.142.64金仓库中bzk库的sjtbk用户所有数据全量迁移、增量同步到目标端172.19.107.53Oracle orcl实例中bztsb用户下。
特别说明:
- KFS和源端同一内网
- KFS和目标端中间有网闸,映射后的信息如下:
172.21.142.79访问网闸172.17.255.70:1521对应172.19.107.53:1521
172.21.142.79访问网闸172.17.255.70:11000对应172.19.107.53:11000
172.21.142.79访问网闸172.17.255.70:11001对应172.19.107.53:11001
172.21.142.79访问网闸172.17.255.70:3112对应172.19.107.53:3112
映射的端口必须和服务端口一样。
准备工作
源端:金仓数据库
统计数据量
查询数据量是为了评估目标服务器磁盘空间是否足够。
--查看总大小
select round(sum(bytes) / 1024 / 1024 / 1024, 2) || 'G'
from dba_segments
where owner in ('SJTBK') ;
ROUND(SUM(BYTES)/1024/1024/1024,2)||'G'
-----------------------------------------
18.63G查看数据库模式
[kingbase@ecs-d8b7-0002 ~]$ ksql -Usystem test
Password for user system:
Type "help" for help.
test=# show database_mode;
database_mode
---------------
oracle查看大小写敏感配置
test=# show enable_ci;
enable_ci
-----------
on #on:表示大小写不敏感;
(1 row)xlogical 相关配置
Kingbase FlySync 支持基于 Kingbase xlogical 形式的数据同步,通过解析 kingbase 的 xlog 来进行数据的增量解析。该文档是以 kingbase 作为复制的源端进行部署的方式。
在 复 制 中 使 用 了 decoderbufs 插 件 进 行 中 间 数 据 的 存 储, 因 此 首 先 检 查 V8 数 据 库 是 否 已 经 支 持 decoderbufs 插 件。 在 Kingbase FlySync 的 安 装 包 中 extensions 目 录 中 提 供 了 相 关 依 赖 文 件 (kfs_decoderbufs_lib_mips64_v8r2.zip),解压 zip 包可得到。
1. 检查 V8 安装目录下的/lib 目录,是否有 decoderbuf.so 和 kfs_current_query.so 包,若没有,
将 Kingbase FlySync 安装包中附带的 decoderbuf.so 和 kfs_current_query.so 复制到 Kingbase
安装目录的/lib 目录下。
2. 检查 V8 安装目录下的/share/extension 目录,是否有 decoderbufs.control 文件,若没有,将
Kingbase FlySync 安装包中附带的 decoderbuf.control 复制到 Kingbase 安装目录的/share/exten
sion 目录下。
注意: KingbaseES V8R3C002B0261 及以上版本和 V8R6 不需要替换 decoderbuf 文件。
sys_hba.conf配置
编辑安装目录下 data/sys_hba.conf 文件, 增加如下配置,使用户有复制权限:
host replication all 0.0.0.0/0 scram-sha-256重新加载配置文件 sys_ctl reload -D /home/kingbase/KingbaseES/V8/data
kingbase.conf 配置
编辑安装目录下 data/kingbase.conf 文件, 更改如下配置:
参数配置 | 含义 |
max_wal_senders = 2* 数据库个数 | 日志发送进程数 (最小为 4) |
wal_keep_segments = 4 | 保留日志数量,根据磁盘空间设置,越大越好 |
wal_level = logical | 日志级别 |
max_replication_slots = 2* 数据库个数 | 复制槽数量 (最小为 4) |
ora_input_emptystr_isnull=off | 关闭空字符串显示为 null(pg 兼容模式需配置) |
重启库systemctl restart kingbased 生效,该文档源端KES库参数设置如下:
max_wal_senders = 10
wal_keep_segments = 10
wal_level = logical
max_replication_slots = 10目标端:Oracle数据库
创建存放同步数据的用户和表空间
--查看表空间和数据文件的关系
set linesize 999
set pagesize 999
select tablespace_name,file_name from dba_data_files order by 1;
--创建表空间,大小5G,开启自动扩展
create tablespace bztsb datafile '/topsoft/oradata/orcl/bztsb01.dbf' size 5M autoextend on MAXSIZE UNLIMITED;
--创建临时表空间
create temporary tablespace bztsbtemp tempfile '/topsoft/oradata/orcl/bztsbtemp01.dbf' size 50m autoextend on maxsize unlimited;
--创建用户,指定默认表空间和临时表空间
create user bztsb identified by oracle default tablespace bztsb temporary tablespace bztsbtemp account unlock;
--赋予权限 最后的with admin option表示权限转授,可以把本身获得的权限再授权给其他用户
grant dba,connect,resource to bztsb with admin option;
注意:密码最长30位创建存放同步程序文件目录
选择磁盘空间大的目录进行创建。
mkdir -p /topsoft/kfs
KDTS工具
上传KDTS工具至服务器
mkdir -p /opt/kdts上传最新版KDTS工具kdts-plus-bs-V009R001C002.zip至服务器/opt/kdts目录下并解压。
cd /opt/kdts
unzip kdts-plus-bs-V009R001C002.zip配置JDK11
注意服务器CPU架构
上传JDK11并解压
上传JDK11至服务器/opt/kdts目录下并解压,必须是JDK11。
tar -xvf /opt/kdts/jdk-11.0.25_linux-aarch64_bin.tar.gz拷贝/opt/kdts/jdk-11.0.25目录下的所有内容至/opt/kdts/kdts-plus-bs-V009R001C002/jdk目录下。
cp -r /opt/kdts/jdk-11.0.25/* /opt/kdts/kdts-plus-bs-V009R001C002/jdk/注意事项:不需要配置环境变量,会调用/opt/kdts/kdts-plus-bs-V009R001C002/jdk的文件。该目录下是空,需要将匹配的JDK拷贝至该目录。
整理同步的部分表清单
使用先前下载的数据库表导入模板.xlsx,将要同步的部分表名粘贴到文档中,表名一定要小写,和源端表名大小写保持一致。如下:

KFS服务器
配置主机名
hostnamectl set-hostname kfs
exec bash配置环境变量
vi .bash_profile
增加如下内容:
export LANG=zh_CN.UTF-8强调:因为源端KES表中有中文列,为防万一,反es_US改为zh_CN了
上传介质
上传KFS安装包KingbaseFlySync-V002R002C004PS002-mc-Linux-aarch64.tar.gz、KingbaseFlySync-V002R002C004PS002-replicator.tar.gz至服务器/kfs/soft目录下并解压。
上传KFS授权文件 tpyrced_license_KFS-90天.zip 至服务器/kfs/soft目录下并解压。
上传JDK介质jdk-8u371-linux-aarch64.tar.gz至服务器/kfs/soft目录下并解压。
上传金仓数据库安装包KingbaseES_V008R006C008B0020_Aarch64_install.iso和授权文件license.dat至/kfs/soft目录下。
上传金仓数据库授权文件license.dat 至/kfs/soft目录下。
mkdir -p /kfs/soft
cd /kfs/soft注意事项:
- KingbaseFlySync-V002R002C004PS002-mc-Linux-aarch64.tar.gz 管理平台,按CPU架构下载对应的安装包
- KingbaseFlySync-V002R002C004PS002-replicator.tar.gz 同步服务,和CPU架构无关
- jdk-8u371-linux-aarch64.tar.gz 注意CPU架构
- KingbaseES_V008R006C008B0020_Aarch64_install.iso 金仓数据库,注意CPU架构
配置JDK
解压JDK
将/kfs/soft目录下的jdk-8u371-linux-aarch64.tar.gz解压至/usr/local/。
tar -xzvf /kfs/soft/jdk-8u371-linux-aarch64.tar.gz -C /usr/local/配置环境变量
cat >> /etc/profile << "EOF"
#add by java
export JAVA_HOME=/usr/local/jdk1.8.0_371
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
export PATH=${JAVA_PATH}:$PATH
export JAVA_BIN=${JAVA_HOME}/bin
EOF
source /etc/profile检查JDK版本
java -version输出如下:
[root@ecs-2e8b-0010 kfs]# java -version
java version "1.8.0_371"
Java(TM) SE Runtime Environment (build 1.8.0_371-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.371-b11, mixed mode)配置管控平台后台元信息库
上传KingbaseES_V008R006C008B0020_Aarch64_install.iso和licenseR6_0628(2)(1).dat 授权文件至/kfs/soft/
管控平台后台元信息库支持如下数据库类型:
• Derby(内置数据库,仅支持 console)
• MySQL
– MySQL 5.5 (推荐)
– MySQL 5.7 (需要设置)
– MySQL 8.0
• KingbaseES
– KingbaseES V8R2
– KingbaseES V8R3
安装金仓数据库,过程省略。
--创建同名用户组和用户kingbase
groupadd -g 1010 kingbase
useradd -d /home/kingbase -g kingbase -u 1010 kingbase
--设置用户kingbase密码
echo 'kingbase' | passwd --stdin kingbase
--创建安装目录
mkdir -p /kfs/kes
chown -R kingbase:kingbase /kfs/kes/
chmod -R 775 /kfs/kes/
--挂载金仓数据库镜像
mount /kfs/soft/KingbaseES_V008R006C008B0020_Aarch64_install.iso /mnt
--安装金仓数据库
su - kingbase
cd /mnt
./setup.sh -i console
--配置环境变量
vi .bash_profile
增加如下内容:
export KINGBASE_HOME=/kfs/kes/KESRealPro/V008R006C008B0020/Server
export KINGBASE_DATA=/kfs/kes/data
export PATH=$PATH:$KINGBASE_HOME/bin
source .bash_profile
--登录数据库
ksql -Usystem test
--创建管控平台后台元信息库
create database console;
--创建比对服务元数据库
create database compare;
system用户密码采用默认:12345678ab ,安装过程省略。
后台元信息库的数据库模式和源库无需必须匹配,信息如下:
安装目录:/kfs/kes
数据目录:/kfs/kes/data
端口:54321
账号密码:system:12345678ab
字符集:UTF8
数据库兼容模式:Oracle
大小写敏感:不敏感
注意事项:元信息库部署在哪里,如果元信息库也使用KES源端,那就和源端KES模式一样
源端金仓同步表存量数据迁移至Oracle
该生成环境源端金仓库对应的业务可停止,因此未采用基于快照实现KDTS不停机迁移,如果源端数据库对应的业务不能停止,可采用基于快照KDTS不停机迁移。
启动KDTS工具
cd /opt/kdts/kdts-plus-bs-V009R001C002/bin
./startup.sh打开浏览器输入http://172.21.142.79:54523/ 访问KDTS工具的WEB界面,默认账号密码:kingbase/Kb_DI@2019

注意事项:
若访问失败,检查并确保防火墙关闭。
若现场是通过堡垒机访问服务器,则需要堡垒机界面对服务器增加54523端口;若不能开端口,需要用命令行版本的KDTS工具,建议使用BS架构的KDTS工具。
BS架构和命令行KDTS工具区别:前者可以分批、增加筛选条件配置迁移
配置数据源
配置源端数据源


配置目标端数据库
172.21.142.79访问网闸172.17.255.70:55351对应172.19.107.53:1521


注意事项
1、若迁移任务中有表失败,确认失败表记录数未再增加后,可立即新建失败表的任务运行并迁移,不用等到原有任务停止再操作;为清晰查看,不要使用二次迁移,单独新建失败表的任务运行并迁移。


评估源库和目标库
evaluate评估工具,需要评估KFS服务器的硬件信息,源端和目标端数据库信息,提前规避风险
上传评估工具并解压
上传KingbaseFlySync-V002R002C004PS002-evaluate-aarch64.tar.gz至/kfs/soft并解压,有cpu架构区别
cd /kfs/soft
tar -xzvf KingbaseFlySync-V002R002C004PS002-evaluate-aarch64.tar.gz统计数据库相关信息
源端
源端是KES V8R6
./repevaluate -dbtype kingbase8 -assess all -host 172.21.142.64 -port 54321 -user sjtbk -pass J6uxWQ7vxdUaKEQ8XBfx -db bzk -schema public -role master
参数说明:
-dbtype kingbase8:数据库类型 支持kingbase7|kingbase8|mysql|gbase8a|oracle|mssql|postgreSQL|kadb|db2|polardb
-assess: 访问类型:[all|RuntimeEnv|DatabaseConf|DatabaseTypeAndPKey|Keyword]
-host: 数据库地址
-port:数据库端口
-user:数据库用户
-pass:数据库密码
-db:数据库名称
-schema:模式
-role:角色 该角色是指KFS同步服务中的角色,源端同步服务role:master,目标端同步服务role:slave输出如下:
[kfs@kfs bin]$ ls -lhtr
总用量 948K
-rwxrwxr-x 1 kfs kfs 2.5K 2月 12 17:47 repevaluate
-rw-r--r-- 1 kfs kfs 295K 5月 2 15:11 assess-2025-05-02-15-11-07
-rw-r--r-- 1 root root 3.1K 5月 14 10:36 assess-2025-05-14-10-36-22
-rw-r--r-- 1 root root 296K 5月 14 13:34 assess-2025-05-14-13-34-11
-rw-r--r-- 1 kfs kfs 12 5月 14 13:35 skipeventbytype.json
-rw-r--r-- 1 kfs kfs 45K 5月 14 13:35 custompkey.json
-rw-r--r-- 1 kfs kfs 296K 5月 14 13:35 assess-2025-05-14-13-35-58- assess+时间戳:是评估报告。
- skipeventbytype.json:用于做DML过滤,如果内容中无对象即那就是等于不需要配置。
- custompkey.json:库中无主键表;查看后需配置KFS安装目录下customkey.csv,无主键表建议进行逻辑复制,将整行作为索引,可复制执行。这个说明有无主键表,需要在源端配置一下custompkey过滤器,指定的json文件就用评估生成的那个json文件即将custompkey.json拷贝到/kfs/replicator/filters-config目录下。

flysync.ini 配置文件中svc_extractor_filters 中增加custompkey
## 过滤器开关配置
# svc_extractor_filters=replicate,casetransform,dropcolumn,rename
svc_extractor_filters=replicate,custompkey,ddlSupport目标端
172.21.142.79访问网闸172.17.255.70:55351对应172.19.107.53:1521,考虑到KFS和目标服务器之间存在网闸映射,因此不采用远程评估方式,采用将评估工具上传到目标端服务器上并解压,本地评估。
./repevaluate -dbtype oracle -assess all -host xzsbk -port 1521 -user SJTBK -pass sjtbk -db orcl -schema SJTBK -role slave
参数说明:
-dbtype kingbase8:数据库类型 支持kingbase7|kingbase8|mysql|gbase8a|oracle|mssql|postgreSQL|kadb|db2|polardb
-assess: 访问类型:[all|RuntimeEnv|DatabaseConf|DatabaseTypeAndPKey|Keyword]
-host: 数据库地址
-port:数据库端口
-user:数据库用户
-pass:数据库密码
-db:数据库名称
-schema:模式
-role:角色 该角色是指KFS同步服务中的角色,源端同步服务role:master,目标端同步服务role:slave输出如下:
[kfs@xzsbk bin]$ ls -lhtr
总用量 188K
-rwxrwxr-x 1 kfs kfs 2.5K 2月 12 17:47 repevaluate
-rw-rw-r-- 1 kfs kfs 2.6K 5月 14 14:33 assess-2025-05-14-14-33-26
-rw-rw-r-- 1 kfs kfs 2.8K 5月 14 14:33 assess-2025-05-14-14-33-58查看评估报告后发现除了硬件信息并无其他。
扩展:评估工具使用手册
查看帮助内容
./repevaluate–h
统计本机硬件环境
./repevaluate -assess RuntimeEnv
统计远程机器硬件环境
./repevaluate -assess RuntimeEnv -envHost 10.10.3.7 -envPort 22 -envUser hes -envPass 123
统计数据库相关信息及数据库所在服务器的硬件信息
./repevaluate -dbtype kingbase8 -assess all -host 10.10.3.7 -port 54321 -user SYSTEM -pass 123 -db PGTEST -schema PUBLIC -role master -envHost 10.10.3.7 -envPort 22 -envUser hes -envPass 123
统计数据库的多个模式下的信息
./repevaluate -dbtype mssql -assess all -host 10.10.3.13 -port 1433 -user sa -pass Kingbase2017 -db pgtest -schema dbo,guest -role master
注:多个模式用逗号分隔
生成统计信息到指定目录
./repevaluate -assess RuntimeEnv -path /home/hes/result/
注意事项
1、 统计KES V8R6数据库信息时,需要将jdbc/kingbase8-8.6.0.jar包拷贝到lib目录
2、 统计KES V8R3及更老版本时,需要将jdbc/kingbase8-8.2.0.jar包拷贝到lib目录
3、 评估工具需要使用jdk1.8,如果服务器上面是jdk 1.7或更老版本,那么需要从服务器下载相关jre包,并解压到和bin目录同级
KFS实时增量同步至Oracle实现过程
同步程序部署
源端同步程序部署
在该文档中源端同步程序部署在KFS管控平台所在的服务器上
Kingbase FlySync 管控平台是一个集中控制平台,图形化部署是集成在管控平台上方便用户部署同步程序的功能。
部署是将用户所想的 Kingbase FlySync 的拓扑关系部署到目标物理服务器上,方便用户使用 Kingbase Flysync 同步程序。
创建同步程序安装用户和目录
--创建同名用户组和用户kingbase
groupadd -g 1090 kfs
useradd -d /home/kfs -g kfs -u 1090 kfs
--设置用户kingbase密码
echo 'kfs' | passwd --stdin kfs
--增加属组
id kfs
sudo usermod -G kingbase kfs
id kfs更改前
[root@ecs-d8b7-0002 data]# id kfs
uid=1090(kfs) gid=1090(kfs) groups=1090(kfs)更改后
[root@ecs-d8b7-0002 data]# id kfs
uid=1090(kfs) gid=1090(kfs) groups=1090(kfs),100(kingbase)创建安装目录
mkdir -p /kfs/replicator
chown -R kfs:kfs /kfs/replicator
chmod 775 /kfs/replicator调整系统参数
调整flysync的最大文件句柄数(open files)、允许创建的最大进程数量(max user processes)
--在文件末尾添加以下内容:
vi /etc/security/limits.conf
-------增加内容 ---------------
kfs - nofile 65535
kfs - nproc 8096
grep flysync /etc/security/limits.confhosts 文件配置
cat /etc/hosts
-------增加内容 ---------------
172.17.255.70 xzsbk #172.19.107.53 映射后的ip
172.21.142.64 kesbzk
172.21.142.79 kfs设置本机的 hostname 属性值
vi /etc/sysconfig/network
-------写入内容 ---------------
NETWORKING = yes
HOSTNAME = kfs
cat /etc/sysconfig/network 配置JDK环境
上传jdk-8u371-linux-aarch64.tar.gz 至/kfs/soft目录下,注意jdk区分cpu架构
解压JDK
将/kfs/soft目录下的jdk-8u371-linux-aarch64.tar.gz 解压至/usr/local/。
tar -xzvf /kfs/soft/jdk-8u371-linux-aarch64.tar.gz -C /usr/local/配置环境变量
cat >> /etc/profile << "EOF"
#add by java
export JAVA_HOME=/usr/local/jdk1.8.0_371
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
export PATH=${JAVA_PATH}:$PATH
export JAVA_BIN=${JAVA_HOME}/bin
EOF
source /etc/profile检查JDK版本
java -version输出如下:
[root@kfs kfs]# java -version
java version "1.8.0_371"
Java(TM) SE Runtime Environment (build 1.8.0_371-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.371-b11, mixed mode)上传rbenv 包,并且安装ruby
rbenv包分cpu架构,同步服务源端和目标端都需要
chown kfs:kfs /kfs/soft/rbenv_2.2.2_linux_aarch64.zip
su - kfs
cd /kfs/soft/
ls rbenv_2.2.2_linux_aarch64.zip
unzip -q rbenv_2.2.2_linux_aarch64.zip
vi ~/.bash_profile
---写入以下内容----
export RUBY_HOME=/kfs/soft/rbenv/ruby
export PATH=$RUBY_HOME/bin:$PATH
source ~/.bash_profile
ruby -v输出如下:

安装同步程序(命令行方式)
同步程序支持图形化和命令行方式安装, 该文档采用命令行方式安装同步程序。
解压 Kingbase FlySync 安装包文件 和授权文件
Kingbase FlySync 软件包采用压缩包的形式发布,安装时只需要解压软件包即可。无CPU架构区分
cd /kfs/soft
tar -xzvf KingbaseFlySync-V002R002C004PS002-replicator.tar.gz
chown -R kfs:kfs /kfs/soft/KingbaseFlySync-V002R002C004PS002-replicator
chmod -R 775 /kfs/soft/KingbaseFlySync-V002R002C004PS002-replicator
unzip tpyrced_license_KFS-90天.zip拷贝安装包中的金仓数据库驱动至lib目录下
cd /kfs/soft/KingbaseFlySync-V002R002C004PS002-replicator
cp extensions/jdbc/kingbase8-8.6.0.jar flysync-replicator/lib/创建 flysync.ini 配置文件
安装前需要先在当前安装用户的 HOME 目录下创建 flysync.ini 配置文件。Kingbase FlySync 安装包中
提供了 flysync.ini 的文件模板,用户可根据实际情况修改相关参数。 由于参数更新较快,新版本已无 flysync.ini 的文件模板,可根据官方文档进行配置。
注: Kingbase FlySync 针对不同数据库的部署配置会略有不同,具体配置操作可参见相关章节。
--切换到kfs用户下
su - kfs
--创建安装目录
cd /kfs/soft/KingbaseFlySync-V002R002C004PS002-replicator
--创建flysync.ini 配置文件
touch flysync.ini
ln -s /kfs/soft/KingbaseFlySync-V002R002C004PS002-replicator/flysync.ini /home/kfs/flysync.ini
--编写内容
vi flysync.ini
[defaults]
# 安装目录
install-directory=/kfs/replicator
# 环境变量脚本位置
profile-script=~/.bash_profile
# rmi端口,默认11000 RMI 远程访问端口
rmi-port=11000
repl_java_mem_size=2048
# 服务名
[source_kesv8r6_4112]
# 监听kufl获取的端口 KUFL 端口,默认 3112
kufl-port=4112
# master主机名 源端同步服务所在服务器的主机名 该场景下源端同步服务部署在kfs服务器上
master=kfs
# 当前主机名 当前节点的机器名或 IP
members=kfs
# 数据源类型 可为 oracle,mysql,mssql,kingbase
datasource-type=kingbase
# 同步数据库信息 主节点的机器名或 IP(源端填写本机的机器名或 IP) replication-host数据库 ip地址或主机名
replication-host=kesbzk
# 数据库连接帐号
replication-user=sjtbk
# 数据库连接密码
replication-password=J6uxWQ7vxdUaKEQ8XBfx
# 数据库端口
replication-port=54321
# 同步服务角色
role=master
## 指定连接的数据库名称; 源端时,需指定解析方式
kingbase-dbname=bzk
kingbase-extractor-method=xlogical
## kingbase 版本号
datasource-version=8
## 过滤器开关配置
# svc_extractor_filters=replicate,casetransform,dropcolumn,rename
svc_extractor_filters=replicate,custompkey,ddlSupport
#无主键表开启附加日志
property=replicator.extractor.dbms.autoIdentity=full
#大字段表
property=replicator.extractor.dbms.enableLob=false
property=replicator.filter.custompkey.definitionsFile=/kfs/replicator/filters-config/custompkey.json
## 集群参数
# property=replicator.datasource.global.co`nnectionSpec.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=property=replicator.filter.replicate.do=public.ai_12315_caseinf,public.ai_12315_comfee_info,public.ai_12315_dist_info,public.ai_12315_info_reve,public.ai_12315_int_info,public.ai_12315_invob_info,public.ai_12315_invopt_info,public.ai_12315_reg_info,public.ai_12315_repfee_info,public.ai_12315_reply,public.ai_12315_supervise,public.ai_12315_visit,public.an_industry_licinfo,public.an_sfc_ma_updateinfo,public.ao_cre_information,public.e_sc_notice,public.e_approcate,public.e_approvalbook,public.e_foodbusin,public.e_foodprodu,public.e_licsubproject,public.e_produlicens,public.e_produnitlicense,public.an_cu_entaudit,public.an_cu_entreginfo,public.an_cu_pbreginfo,public.an_cu_sfcaudit,public.an_cu_sfcreginfo,public.e_ms_ccrecord,public.e_ms_nerecitempub,public.mort_altitem_info,public.mort_guarantee_info,public.mort_person_info,public.mort_principal_claim,public.mort_reg_info,public.e_sm_baseinfo,public.e_sm_support,public.e_ms_customs,public.e_ms_nccrecord,public.e_sf_alter,public.e_sf_info,public.e_sf_partyinfo,public.e_sp_alter,public.e_sp_pledge,public.case_pub_alter,public.case_pub_baseinfo,public.case_pub_partyinfo,public.affiche_abnoper,public.affiche_base,public.affiche_illegality,public.affiche_simpcan,public.affiche_spotcheck,public.affiche_webgroupannex,public.an_overduepay,public.case_pub_nalter,public.case_pub_nbaseinfo,public.case_pub_ndoc,public.e_can_notice,public.e_falper_info,public.e_lic_ncertificalt,public.e_lic_ncertificate,public.e_nate_operregdec,public.e_nolicph_info,public.e_ot_ncasalt,public.e_ot_ncase,public.e_ot_ndoc,public.e_ot_npermit,public.e_ot_nprmtalt,public.e_proqua_check,public.e_selfinfo,public.e_selfinfoalt,public.e_susnate_operreg,public.pb_sc_approval,public.pb_sc_request,public.pb_sc_undo,public.groupalterrecoder,public.groupcancelinfo,public.groupentinfo,public.groupmenberinfo,public.ao_opanomaly,public.ao_opanomaly_inv,public.ao_opa_detail,public.ao_pb_opanomaly,public.ao_sfcbr_opadetail,public.ao_sfcbr_opanomaly,public.ao_sfc_opadetail,public.ao_sfc_opanomaly,public.an_alterstockinfo,public.an_baseinfo,public.an_forguaranteeinfo,public.an_forinvestment,public.an_pb_baseinfo,public.an_pb_licenceinfo,public.an_pb_updateinfo,public.an_pb_websiteinfo,public.an_sfc_baseinfo,public.an_sfc_branchinfo,public.an_sfc_licenceinfo,public.an_sfc_socsecinfo,public.an_sfc_sup_baseinfo,public.an_sfc_updateinfo,public.an_sfc_websiteinfo,public.an_socsecinfo,public.an_subcapital,public.an_sup_baseinfo,public.an_updateinfo,public.an_websiteinfo,public.agr_baseinfo,public.agr_goods,public.agr_manufinfo,public.agr_supinfo,public.wm_marketbaseinfo,public.wm_wadenetinfo,public.e_nliquidation,public.e_nliq_crenotice,public.e_nliq_entmbr,public.e_nliq_mbr,public.e_nliq_update,public.e_ot_casalt,public.e_ot_case,public.e_ot_illdisdetail,public.e_ot_illdishonesty,public.e_ot_permit,public.e_ot_prmtalt,public.e_ot_smentsupport,public.e_ot_spotcheck,public.e_ot_unionpunish,public.e_license_nullify,public.e_pub_groupentinfo,public.e_pub_groupmenberinfo,public.e_im_casalt,public.e_im_case,public.e_im_invactdetail,public.e_im_investment,public.e_im_invprodetail,public.e_im_invsralt,public.e_im_invupdate,public.e_im_ippldg,public.e_im_ippldgalt,public.e_im_permit,public.e_im_prmtalt,public.n_name_info,public.dr_raninsobjs,public.dr_raninsplan,public.dr_raninsres,public.dr_raninstask,public.e_eblicense,public.e_pub_objection,public.e_commitment,public.e_keyareas,public.e_promisefake,public.e_pub_spotcheck,public.e_ad_adlicinfo,public.e_baseinfo_hist,public.e_brchinfo,public.e_cancel,public.e_contact,public.e_del_person,public.e_deregistration,public.e_di_supl,public.e_dominfo,public.e_fact_contribution,public.e_fin_leader,public.e_fi_supl,public.e_gt_alter_recoder,public.e_gt_cancel,public.e_gt_deregistration,public.e_gt_lic_certificate,public.e_gt_revoke,public.e_inv_investment,public.e_inv_paid_in,public.e_inv_person,public.e_lic_certificate,public.e_liquidation,public.e_liq_mbr,public.e_lp_hstleref,public.e_lp_hstname,public.e_move_in,public.e_move_out,public.e_pb_operator,public.e_pri_person,public.e_revoke,public.e_sc_objection,public.e_sfc_supl,public.e_should_contribution,public.e_sub,public.e_alter_recoder,public.e_baseinfo,public.e_pb_baseinfo,public.affiche_compagr_merdisc,public.affiche_redregcap,public.affiche_stopbusiness_fillin,public.affiche_stopbusiness_state,public.compagr_merdisc_name,public.e_can_falper_info,public.e_license_nullify_reg,public.affiche_cm_sup,public.affiche_force_cancel,public.affiche_redregcap_sup,public.e_gs_disso,public.e_im_ncase,public.e_im_ninvactdetail,public.e_license_nullify_sup,public.e_sf_canregistration,public.e_sf_eliminate,public.food_chk_info_new,public.an_for_activity,public.an_for_att,public.an_for_baseinfo,public.an_for_recoder,public.an_for_updateinfo,public.e_ws_fitodi_alter,public.e_authorized_nalter,public.e_name_nauthorized,public.e_name_ntransfer,public.e_sm_alterrecoder,public.e_sm_nbaseinfo,public.case_cre_information,public.e_li_indemation,public.e_li_spedetail,public.case_cf_baseinfo,public.case_cf_irregpunishinfo,public.case_cf_partyinfo,public.case_cf_srcinf,public.case_cf_tmactivist,public.case_cf_tminfo,public.case_cf_trans,public.case_pub_doc,public.case_se_baseinfo,public.case_se_irregpunishinfo,public.case_se_partyinfo,public.case_se_srcinf,public.e_li_illdisdetail,public.e_li_illdishonesty,public.e_gt_typinfo,public.e_fillingpermit,public.e_gascylinders,public.e_metrologycate,public.e_qualificate,public.e_subitem,public.an_se_speequipment,public.an_va_licence,public.an_ws_baseinfo,public.an_ws_investor_con,public.an_ws_licenceinfo,public.an_ws_subcapital,public.an_ws_updateinfo,public.e_cerlicdis,public.e_proqua_checkres,public.e_proqua_notice,public.e_ws_alter,public.e_ws_baseinfo,public.e_ws_encourage,public.e_ws_fabaseinfo,public.e_ws_investment,public.e_ws_investor_con,public.e_ws_investor_qsi,public.e_ws_merger,public.e_ws_merger_invest,public.e_ws_merger_transfer
#property=replicator.filter.replicate.do=public.*
# property=replicator.filter.replicate.ignore=PUBLIC.T1
## casetransform 大小写转换
property=replicator.filter.casetransform.to_upper_case=true
## 优化参数
# 达到多少条记录后,分事务,默认 500
property=replicator.extractor.dbms.maxRowsByBlock=500
# 若多少秒没有新的事务产生,那么就直接返回该事务,不再等待合并
property=replicator.extractor.dbms.maxWaitingTime=2
# 大事务优化参数
property=replicator.extractor.dbms.minRowsPerBlock=4000
# 自动恢复尝试次数,系统 OFFLINE 时,尝试将系统重新置于ONLINE状态的次数
repl_auto_recovery_max_attempts=100
# 系统 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 ^$执行 Kingbase FlySync 安装部署命令
进入 Kingbase FlySync 解压目录,执行安装部署命令。
cd /kfs/soft/KingbaseFlySync-V002R002C004PS002-replicator
./tool/fspm install输出如下:

补充说明:
startall就是启动replicator
fsrepctl services就是查看所有服务状态
问题处理
问题描述
安装同步服务时提示金仓库驱动找不到
[kfs@kfs KingbaseFlySync-V002R002C004PS002-replicator]$ ./tools/fspm install
.....
WARN >> kfs >> ntpd is not running. It is important that configured hosts have time synchronised. (NtpdRunningCheck)
WARN >> kfs >> Linux swappiness is currently set to 20, on restart it will be 20, consider setting this to 10 or under to avoid swapping. (SwappinessCheck)
.
ERROR >> kfs >> There was an error processing the query: ERROR: Unable to load driver: com.kingbase8.Driver
ERROR >> kfs >> undefined method `include?' for nil:NilClass
ERROR >> kfs >> There was an error processing the query: ERROR: Unable to load driver: com.kingbase8.Driver
#####################################################################
# Validation failed
#####################################################################
#####################################################################
# Errors for kfs
#####################################################################
ERROR >> kfs >> There was an error processing the query: ERROR: Unable to load driver: com.kingbase8.Driver (KingbaseVersionCheck)
ERROR >> kfs >> undefined method `include?' for nil:NilClass (KingbaseVersionCheck)
ERROR >> kfs >> There was an error processing the query: ERROR: Unable to load driver: com.kingbase8.Driver (KingbaseDecoderbufCheck)问题原因
缺少Kingbase V8的驱动包所导致
解决办法
将同步服务安装目录下/extensions/jdbc/kingbase8-8.6.0.jar的驱动包复制到同步服务所在/flysync/flysync-replicator/lib的目录下后再次安装
配置license 文件
同步服务的授权文件和管控平台的授权文件是一回事
cp /kfs/soft/license_54034/license_54034_0.dat /kfs/replicator/license.dat
chown kfs:kfs /kfs/replicator/license.dat
chmod 775 /kfs/replicator/license.dat
cd /kfs/replicator
ls -l | grep license启动同步程序并置于offline 状态
replicator start offline查看同步软件的运行状态
[kfs@kfs ~]$ fsrepctl -service source_kesv8r6_4112 services
Processing services command...
NAME VALUE
---- -----
appliedLastSeqno: -1
appliedLatency : -1.0
role : master
serviceName : source_kesv8r6_4112
serviceType : local
started : true
state : OFFLINE:NORMAL
Finished services command...offline转换成online
--语法
fsrepctl -service 服务名 online
--示例
fsrepctl -service source_kesv8r6_4112 online目标端同步程序部署
Kingbase FlySync 支持基于 Oracle 作为目标端的数据同步,可支持的 Oracle 版本为:
• Oracle 10g, Oracle 11g, Oracle 12c
调整系统参数
调整flysync的最大文件句柄数(open files)、允许创建的最大进程数量(max user processes)
--在文件末尾添加以下内容:
vi /etc/security/limits.conf
grep flysync /etc/security/limits.conf
-------增加内容 ---------------
flysync - nofile 65535
flysync - nproc 8096hosts 文件配置
cat /etc/hosts
-------增加内容 ---------------
172.19.107.53 xzsbk
172.21.142.64 kesbzk
172.21.142.79 kfs设置本机的 hostname 属性值
vi /etc/sysconfig/network
cat /etc/sysconfig/network
-------写入内容 ---------------
NETWORKING = yes
HOSTNAME = xzsbk创建同步程序安装用户和目录
--创建同名用户组和用户kingbase
groupadd -g 1090 kfs
useradd -d /home/kfs -g kfs -u 1090 kfs
--设置用户kingbase密码
echo 'kfs' | passwd --stdin kfs
--增加属组
id kfs
sudo usermod -G oinstall,dba kfs
id kfs
--创建目录
mkdir -p /topsoft/kfs/replicator
chown -R kfs:kfs replicator
chmod -R 775 replicator更改前:

更改后:

配置环境变量:
su - kfs
vi /home/kfs/.bash_profile
export PATH=$PATH:/topsoft/app/oracle/product/11.2.0/db/bin
export ORACLE_SID=orcl
export ORACLE_HOME=/topsoft/app/oracle/product/11.2.0/db
tail -3 .bash_profile
source .bash_profile授权flysync访问redo
ls -ld /topsoft/
chmod g+r,g+x /topsoft/
ls -ld /topsoft/建立帐号并给予合适的权限
create user flysync identified by "^uimcn2odh!ai8n%o";
grant connect, resource to flysync;
grant dba to flysync;配置JDK环境
上传jdk-8u381-linux-x64.tar.gz 至/topsoft/kfs目录下,注意jdk架构
解压JDK
将/topsoft/kfs目录下的jdk-8u381-linux-x64.tar.gz解压至/usr/local/。
tar -xzvf /topsoft/kfs/jdk-8u381-linux-x64.tar.gz -C /usr/local/配置环境变量
cat >> /etc/profile << "EOF"
#add by java
export JAVA_HOME=/usr/local/jdk1.8.0_381
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
export PATH=${JAVA_PATH}:$PATH
export JAVA_BIN=${JAVA_HOME}/bin
EOF
source /etc/profile检查JDK版本
java -version输出如下:
[root@xzsbk:/topsoft/kfs]$ java -version
java version "1.8.0_381"
Java(TM) SE Runtime Environment (build 1.8.0_381-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.381-b09, mixed mode)上传rbenv 包,并且安装ruby
rbenv包分cpu架构
chown kfs:kfs /topsoft/kfs/rbenv_2.2.2_linux_x64.zip
su - kfs
cd /topsoft/kfs/
ls rbenv_2.2.2_linux_x64.zip
unzip -q rbenv_2.2.2_linux_x64.zip
vi ~/.bash_profile
---写入以下内容----
export RUBY_HOME=/topsoft/kfs/rbenv/ruby
export PATH=$RUBY_HOME/bin:$PATH
source ~/.bash_profile
ruby -v输出如下:

安装同步程序(命令行方式)
同步程序支持图形化和命令行方式安装, 该文档采用命令行方式安装同步程序。
解压 Kingbase FlySync 安装包文件 和授权文件
Kingbase FlySync 软件包采用压缩包的形式发布,安装时只需要解压软件包即可。无CPU架构区分
cd /topsoft/kfs
tar -xzvf KingbaseFlySync-V002R002C004PS002-replicator.tar.gz
chown -R kfs:kfs /topsoft/kfs/KingbaseFlySync-V002R002C004PS002-replicator
chmod -R 775 /topsoft/kfs/KingbaseFlySync-V002R002C004PS002-replicator
unzip tpyrced_license_KFS-90天.zip创建 flysync.ini 配置文件
安装前需要先在当前安装用户的 HOME 目录下创建 flysync.ini 配置文件。Kingbase FlySync 安装包中
提供了 flysync.ini 的文件模板,用户可根据实际情况修改相关参数。
注: Kingbase FlySync 针对不同数据库的部署配置会略有不同,具体配置操作可参见相关章节。
用户名必须大写,不然安装会提示Connecting:ERRORORA-01017:用户名/口令无效;登录被拒绝Oracleloqincheck;
源端是啥模式,就会同步到目标端啥模式下,除非目标端配置Rename进行转换.
## 过滤器开关配置
## dropstatementdata 不开启DDL同步
svc-remote-filters=rename,casetransform模式名和表名如果没有变的话,就不需要配置rename过滤器;kes-kes如果源端和目标端都是小写,那么casetransfor过滤器也不需要配置。
oracle里用户名就是模式名,KES里用户名是用户名,模式名是模式名,分开的
--切换到kfs用户下
su - kfs
--创建安装目录
cd /topsoft/kfs/KingbaseFlySync-V002R002C004PS002-replicator
--创建flysync.ini 配置文件
touch flysync.ini
ln -s /topsoft/kfs/KingbaseFlySync-V002R002C004PS002-replicator/flysync.ini /home/kfs/flysync.ini
--编写内容
vi flysync.ini
[defaults]
# 安装目录
install-directory=/topsoft/kfs/replicator
# 环境变量脚本位置
profile-script=~/.bash_profile
# rmi端口,默认11000
rmi-port=11000
repl_java_mem_size=2048
# 服务名
[target_oracle_3112]
# 监听kufl获取的端口
kufl-port=3112
# master主机名
master=kfs
# 当前主机名
members=xzsbk
master-kufl-port=4112 #源端kufl端口
# 数据源类型 目标端同步服务数据源类型
datasource-type=oracle
# 同步数据库信息 要同步到目标端的数据库信息
replication-host=xzsbk
replication-user=SJTBK
replication-password=sjtbk
replication-port=1521
# 同步服务角色
role=slave
## oracle 指定连接的数据库名称
datasource-oracle-service=orcl
# oracle数据库需指定此项,解析增量方式logminer
oracle-extractor-method=redo
## oracle-LOGMINER 同步表信息、scn号差值的阈值
#property=replicator.extractor.dbms.tablePatterns=SJTBK.*
#property=replicator.extractor.dbms.scnSegmentationThreshold=5000
## 过滤器开关配置
## dropstatementdata 不开启DDL同步
svc-remote-filters=rename,casetransform,replaceStatement
property=replicator.filter.replaceStatement.definitionsFile=/topsoft/kfs/replicator/filters-config/replaceStatement.csv
## 集群参数
# 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=SJTBK.*
# property=replicator.filter.replicate.ignore=PUBLIC.T1
## casetransform 大小写转换
property=replicator.filter.casetransform.to_upper_case=true
property=replicator.applier.dbms.enable_handle_error=false
property=replicator.applier.dbms.optimizeRowEvents=true
property=replicator.applier.dbms.maxRowBatchSize=5000
## 优化参数
# 达到多少条记录后,分事务,默认 500
#property=replicator.extractor.dbms.maxRowsByBlock=500
# 若多少秒没有新的事务产生,那么就直接返回该事务,不再等待合并
property=replicator.extractor.dbms.maxWaitingTime=2
# 大事务优化参数
property=replicator.extractor.dbms.minRowsPerBlock=4000
# 自动恢复尝试次数,系统 OFFLINE 时,尝试将系统重新置于ONLINE状态的次数
repl_auto_recovery_max_attempts=100
# 系统 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 ^$执行 Kingbase FlySync 安装部署命令
进入 Kingbase FlySync 解压目录,执行安装部署命令。
cd /topsoft/kfs/KingbaseFlySync-V002R002C004PS002-replicator
./tool/fspm install输出如下:

配置license 文件
同步服务的授权文件和管控平台的授权文件是一回事
cp /topsoft/kfs/license_54034/license_54034_0.dat /topsoft/kfs/replicator/license.dat
chown kfs:kfs /topsoft/kfs/replicator/license.dat
chmod 775 /topsoft/kfs/replicator/license.dat
cd /topsoft/kfs/replicator
ls -l | grep license扩展:替换授权文件
--切换到kfs用户
su - kfs
--停止同步服务
replicator stop
--替换授权文件
mv license.dat license.datbak
cd licensenew/
unzip ../tpyrced_license_KFS-90天.zip -d .
cp license_54034_0.dat /home/kfs/replicator/license.dat
chown kfs:kfs /home/kfs/replicator/license.dat
chmod 775 /home/kfs/replicator/license.dat
--启动同步服务
replicator start启动同步程序并置于offline 状态
replicator start offline查看同步软件的运行状态
[kfs@xzsbk ~]$ fsrepctl -service target_oracle_3112 services
补充:
fsrepctl service 查看所有同步服务状态 输出如下:

offline转换成online
--语法
fsrepctl -service 服务名 online
--示例
fsrepctl -service target_oracle_3112 onlineKFS管控平台图形化部署
KFS管控平台支持图形化和手动部署,本文档以图形化方式部署
新版本管控平台使用独立安装包,直接通过命令行解压KingbaseFlySync-V002R002C004PS002-mc-Linux-aarch64.tar.gz即可,注意cpu架构区分。
cd /kfs/soft/
tar -xzvf KingbaseFlySync-V002R002C004PS002-mc-Linux-aarch64.tar.gz
unzip tpyrced_license_KFS-90天.zip创建KFS安装用户
Linux 中,需要以非 root 用户执行安装程序。
--创建同名用户组和用户kingbase
groupadd -g 1090 kfs
useradd -d /home/kfs -g kfs -u 1090 kfs
--设置用户kingbase密码
echo 'kfs' | passwd --stdin kfs 创建自定义安装目录
mkdir -p /kfs/replicator
chown -R kfs:kfs /kfs/kfsmc启动安装
启动安装程序
以非 root 用户登录,打开新终端,进入安装程序中 setup.sh 所在目录,以非 root 用户执行如下命令。
图形界面安装
• sh setup.sh 或 sh setup.sh -i swing
• 命令行安装
sh setup.sh -i console
su - kfs
cd /kfs
sh setup.sh -i console 问题处理
问题描述
[kfs@ecs-2e8b-0010 kfs]$ ./setup.sh
Now launch installer...
Preparing to install
Extracting the JRE from the installer archive...
Unpacking the JRE...
Extracting the installation resources from the installer archive...
Configuring the installer for this system's environment...
Launching installer...
Graphical installers are not supported by the VM. The console mode will be used instead...
=======================================================
Installer User Interface Mode Not Supported
Unable to load and to prepare the installer in console or silent mode.
=======================================================
Installation failed .
解决办法
简介
在“简介”界面中提供了金仓数据同步工具安装程序基本操作等信息。

注意:输入 quit,再按 <ENTER> 退出安装,若无特殊说明,以下各步骤皆与此相同。
许可协议
该步骤显示北京人大金仓信息技术股份有限公司许可协议。


输入 Y 表示接受;输入 N 表示不接受,输入其他无效。
选择授权文件
此步骤用于选择授权文件。若选择的授权文件合法,则显示该授权文件的详细信息。

用户输入授权文件的绝对路径后,按 <ENTER> 以检查授权文件,若授权文件有效,则进入下一步骤。
选择安装集
安装程序提供“完全安装”和“管控平台”、“比对服务”三种安装集,默认选择“完全安装”。
1. “完全安装”——系统将安装管控平台及比对服务功能部件。建议大多数用户采用此选项。。
2. “管控平台”——只安装管控平台功能部件。管控平台为系统主服务,提供同步工具的常规管理功能。
3. “比对服务”——只安比对服务功能部件。比对服务为管控平台增强功能,提供同步数据的比对及比对结 果查看功能。
注意:若无特殊说明,以下均以“完全安装”为例说明。

选择安装文件夹
此步骤用于选择安装路径。
默认安装路径为: /opt/KFS

管控平台元数据库配置
此步骤用于配置管控平台元数据库信息(仅在安装集选择为“完全安装”或者选择“管控平台”安装时配置)。

比对服务元数据库配置
此步骤用于配置比对服务元数据库信息(仅在安装集选择为“完全安装”或者选择“比对服务”安装时配置)。
===============================================================================
Compare Database Configuration
------------------------------
Compare database configuration.
->1- MySQL
2- Kingbase
3- PostgreSQL
ENTER THE NUMBER FOR THE DATABASE TYPE, OR PRESS <ENTER> TO ACCEPT THE
DEFAULT
: 2
1- Yes
->2- No
V8R6+: 1
->1- oracle
2- postgresql
3- mysql
4- sqlserver
KingbaseES Pattern
: 1
Hostname: 172.21.142.79
Port (Default: 54321):
Database name: console
SchemaName(lower case): public
Username: system
Password: 12345678ab
->1- Yes
2- No
Init database:
--------------------------------------------------
Test connection successful.服务元信息配置
此步骤用于配置“管控平台”及“比对服务”的服务元信息。

预安装摘要
此步骤用于在安装前显示即将安装产品的摘要信息。包括:
1. 产品名;
2. 安装文件夹;
3. 磁盘空间信息;

正在安装…
此步骤用于显示安装进度。

安装完成
此步骤用于显示安装结果,及后续操作。

执行 Root.sh

输出如下:
[root@ecs-2e8b-0010 mnt]# /kfs/kfsmc/scripts/Root.sh
Detected Kylin/UnionTech:
Installing the FlySync Web Manager Service daemon using systemd...
creating default service file...
Created symlink /etc/systemd/system/multi-user.target.wants/fsmanager.service → /etc/systemd/system/fsmanager.service.
Detected Kylin/UnionTech:
Installing the FlySync Web Console Service daemon using systemd...
creating default service file...
Created symlink /etc/systemd/system/multi-user.target.wants/fsconsole.service → /etc/systemd/system/fsconsole.service.
Detected Kylin/UnionTech:
Installing the FlySync Compare Service daemon using systemd...
creating default service file...
Created symlink /etc/systemd/system/multi-user.target.wants/fscompare.service → /etc/systemd/system/fscompare.service.
Starting FlySync Web Manager Service with systemd...
Waiting for FlySync Web Manager Service...
running: PID:872361
Starting FlySync Web Console Service with systemd...
Waiting for FlySync Web Console Service...
running: PID:872575
Starting FlySync Compare Service with systemd...
Waiting for FlySync Compare Service...
running: PID:872800
SUCCESS启动与停止
Kingbase FlySync 服务的启动与停止通过命令行方式操作。
服务启动
• 启动管控平台
1. 打开新终端;
2. 切换到 root 用户;
3. cd 到 < 安装目录 >,执行如下操作;
./manager/bin/fsmanager start
./console/bin/fsconsole start
./compare/bin/fscompare start注意:启动顺序请按上述顺序启动。
服务停止
• 停止管控平台
1. 打开新终端;
2. 切换到 root 用户;
3. cd 到 < 安装目录 >,执行如下操作;
./manager/bin/fsmanager stop
./console/bin/fsconsole stop
./compare/bin/fscompare stop服务状态
• 管控平台状态查看
1. 打开新终端;
2. cd 到 < 安装目录 >,执行如下操作;
./manager/bin/fsmanager status
./console/bin/fsconsole status
./compare/bin/fscompare status访问管控平台
启动管控平台后,默认登录地址为
http://管控平台所在机器 IP 地址:8089/
注若安装过程修改了管控平台端口,请以实际为准。
默认帐号密码:admin/admin
控制台配置文件说明
• threadpool.properties
– task.pool.corePoolSize:线程池的基本线程数,默认 5 条
– task.pool.maxPoolSize:线程池允许的最大线程数,当缓存线程池存满时,会开启并行的最
大线程数,默认 12 条
– task.pool.queueCapacity:缓存线程池,当基本线程数达到指定值,会进入缓存区,默认值
60 条。
• syssetting.properties
– syssetting.writeThread:一条流水线(读取、比对、写入)中,写入的时间相对较长,需要开
启写入并发线程,默认 5 条。
• COMPARE application.properties
– replicateBatchSize: 设置比对同步事务处理量大小,默认 10000,在比对同步大数据量时,
防止内存溢出时设置。
新增节点
源端
新增源端同步程序节点

问题处理
问题1:连接失败
连接失败。Algorithm negotiation fail: algorithmName="kex" jschProposal="ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512,diffie-hellman-group14-sha256,ext-info-c,kex-strict-c-v00@openssh.com" serverProposal="sntrup761x25519-sha512@openssh.com,curve25519-sha256,curve25519-sha256@libssh.org,ext-info-s,kex-strict-s-v00@openssh.com"解决办法
在/etc/ssh/sshd_config 文件中添加这些缺少的协议HostkeyAlgorithms ssh-rsa, ssh-dss,ssh-ed25519,ecdsa-sha2-nistp256.ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,rsa-sha2-512,rsa-sha2-256
cp /etc/ssh/sshd_config /etc/ssh/sshd_config_bak
vi /etc/ssh/sshd_config
增加
HostkeyAlgorithms ssh-rsa, ssh-dss,ssh-ed25519,ecdsa-sha2-nistp256.ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,rsa-sha2-512,rsa-sha2-256
systemctl restart sshd这个办法不可行,通过高驰云工作人员提供的银河麒麟工作人员联系后得知是高驰云的限制导致,在银河麒麟工作人员远程替换openssh后得以恢复。
目标端
新增目标端同步程序节点

问题处理
问题1:新建节点连接失败

分析过程
1.查看目标端同步服务是否运行正常
[kfs@xzsbk ~]$ fsrepctl -service target_oracle_3112 services
Processing services command...
NAME VALUE
---- -----
appliedLastSeqno: -1
appliedLatency : -1.0
role : slave
serviceName : target_oracle_3112
serviceType : local
started : true
state : GOING-ONLINE:SYNCHRONIZING
Finished services command...2.查看运行的端口
[kfs@xzsbk ~]$ ss -nlt
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 *:111 *:*
LISTEN 0 128 *:22 *:*
LISTEN 0 100 127.0.0.1:25 *:*
LISTEN 0 1 127.0.0.1:32000 *:*
LISTEN 0 128 :::111 :::*
LISTEN 0 128 :::1521 :::*
LISTEN 0 50 :::10514 :::*
LISTEN 0 50 :::13302 :::*
LISTEN 0 128 :::22 :::*
LISTEN 0 50 :::11000 :::*
LISTEN 0 50 :::11001 :::*
LISTEN 0 100 ::1:25 :::*
LISTEN 0 50 :::11002 :::*
LISTEN 0 50 :::2819 :::*
LISTEN 0 128 :::21219 :::*
LISTEN 0 50 :::3112 :::* 3.查看网络是否不通
源端和KFS服务器直接存在网闸,映射的端口如下:
172.21.142.79访问网闸172.17.255.70:11000对应172.19.107.53:11000
172.21.142.79访问网闸172.17.255.70:11001对应172.19.107.53:11001
172.21.142.79访问网闸172.17.255.70:3112对应172.19.107.53:3112
telnet之后发下端口不通
[root@kfs ssh]# telnet 172.17.255.70 3112
Trying 172.17.255.70...
^C
[root@kfs ssh]# telnet 172.17.255.70 11000
Trying 172.17.255.70...
^C
[root@kfs ssh]# telnet 172.17.255.70 11001
Trying 172.17.255.70...
telnet: connect to address 172.17.255.70: Connection timed out
解决办法
联系云上解决。
更新授权文件
访问管控平台提示授权快到期,向厂商申请新的授权文件后进行替换,步骤如下

查看管控平台组件服务
--切换到kfs用户
su - kfs
--进入安装目录
cd /soft/kfs/KFS
--查看管控平台组件服务 按顺序
./manager/bin/fsmanager status
./console/bin/fsconsole status
./compare/bin/fscompare status停止管控平台组件服务
--切换到kfs用户
su - kfs
--进入安装目录
cd /soft/kfs/KFS
--停止管控平台组件服务 按顺序
./manager/bin/fsmanager stop
./console/bin/fsconsole stop
./compare/bin/fscompare stop
--查看管控平台组件服务
./manager/bin/fsmanager status
./console/bin/fsconsole status
./compare/bin/fscompare status替换授权文件
cd licensenew/
unzip ../tpyrced_license_KFS-90天.zip -d .
cp license_54034_0.dat /soft/kfs/KFS/license.dat
chown kfs:kfs /soft/kfs/KFS/license.dat
chmod 775 /soft/kfs/KFS/license.dat查看授权文件内容:

启动管控平台组件服务
--切换到kfs用户
su - kfs
--进入安装目录
cd /soft/kfs/KFS
--停止管控平台组件服务 按顺序
./manager/bin/fsmanager start
./console/bin/fsconsole start
./compare/bin/fscompare start
--查看管控平台组件服务
./manager/bin/fsmanager status
./console/bin/fsconsole status
./compare/bin/fscompare status访问管控平台验证
浏览器访问:http://172.21.142.79:8089/login 默认账号密码admin:admin

链路为绿色即同步正常,至此,金仓数据库实时增量同步至Oracle11g已实现。




