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

【金仓数据库征文】_金仓V8R6实时增量同步至Oracle11g

原创 董小姐 2025-05-14
444

环境描述

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.conf

hosts 文件配置

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     8096

hosts 文件配置

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 online

KFS管控平台图形化部署

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已实现。

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

评论