Kingbase数据源安装部署人大金仓KFS同步程序—kingbase ES集群作为源端时的安装部署
关键字:
KingbaseFlysync、KFS、replicator、同步程序、服务端、flysync.ini、安装部署、kingbase ES集群、Kingbase ES集群安装部署KingbaseFlysync
概述
Kingbase FlySync 支持基于 Kingbase xlogical 形式的数据同步,通过解析 kingbase 的 xlogical日志 来进行数据的增量解析。下面将介绍 kingbase ES 作为复制的源端进行部署的方式。
安装前准备
前置条件:已经完成Kingbase ES集群的安装部署
2.1 环境信息
参数名 | 参数值 |
源端数据库IP地址 | 10.10.3.199 |
安装KFS同步程序IP地址 | 10.10.3.199 |
Kingbase ES数据库名 | test |
Kesv8数据库监听端口号 | 54321 |
可用内存 | >4GB |
可用储存空间 | >1GB+7*每日数据增量 |
2.2 端口开放
1、临时关闭防火墙服务(服务器重启后失效)
service firewalld stop
永久关闭防火墙服务
chkconfig firewalld off
2、若有特殊情况如业务要求需要开启防火墙,则需要保证KFS同步程序所需端口可用,若不可用,可以在后续配置中修改默认端口。
telnet xx.xx.xx.xx 端口号
Kingbase FlySync同步服务运行所需的默认端口如下:
端口 | 描述 |
11000/11001 | KFS远程管理/监控RMI端口 |
3112 | KUFL传输接口 |
2.3 创建KFS同步程序安装用户
假设KFS同步程序安装用户为fly,创建如下(本文设置fly用户密码为123):
adduser fly
passwd fly
2.4 ruby环境配置
上传ruby包到KFS同步程序安装服务器下并解压:
unzip rbenv_2.2.2_linux_x64.zip
然后在KFS同步程序安装用户的环境变量中进行配置
vi ~/.bash_profile
export RUBY_HOME=ruby绝对路径
export PATH=$RUBY_HOME/bin:$PATH
source ~/.bash_profile
2.5 安装包准备
准备需要安装的Kingbase FlySync同步程序安装包和license文件。
2.6 KES 集群数据库准备
2.6.1 检查kes集群是否支持decodebuf插件:
在 复 制 中 我 们 使 用 了 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/extension 目录下。
2.6.2 Kingbase ES集群数据库相关设置:
1. 编辑安装目录下 data/sys_hba.conf 文件, 增加如下配置,使用户有复制权限:
host replication all 127.0.0.1/32 md5
host replication all 0.0.0.0/0 md5
2. 编辑安装目录下 data/es_rep.conf 文件, 修改如下配置:
参数配置 | 含义 |
max_wal_senders = 2* 数据库个数 | 日志发送进程数 (最小为 4) |
wal_keep_segments = 4 | 保留日志数量,根据磁盘空间设置,越大越好 |
max_replication_slots = 2* 数据库个数 | 复制槽数量 (最小为 4) |
ora_input_emptystr_isnull=off | 关闭空字符串显示为 null(pg 兼容模式需配置) |
全部配置完成后,重启数据库生效
三、安装执行
3.1 上传并解压KFS同步程序
tar –zxvf KingbaseFlysync-Vxxxxxxxxxxxxxx-replicator.tar.gz
3.2 配置flysync.ini
在$HOME目录下新建flysync.ini文件,示例如下:
[defaults]
install-directory = /home/flysync/replicator
profile-script = ~/.bash_profile
rmi-port = 11000
[m_kes_3114]
kufl-port = 3114
datasource-type = kingbase
role = master
replication-host = 10.10.3.199
replication-port = 54321
replication-user = flysync
replication-password = flysync
repl_auto_recovery_max_attempts = 30
repl_auto_recovery_delay_interval = 60s
repl_auto_recovery_reset_interval = 300s
repl_mode = normal
property = replicator.filter.replicate.do=realestate.*
property = replicator.datasource.global.connectionSpec.databaseMode=oracle
svc-extractor-filters = replicate
master = localhost199
members = localhost199
kingbase-dbname = test
kingbase-extractor-method = xlogical
datasource-version = 8
property=replicator.datasource.global.connectionSpec.use_cluster=true property=replicator.datasource.global.connectionSpec.slave_add=10.10.3.199,10.10.3.200
property=replicator.datasource.global.connectionSpec.slave_port=54321,54321
property= replicator.datasource.global.connectionSpec.nodeList= node1,node2
参数说明:
[defaults] | |
install-directory=/home/flysync/replicator | 同步程序安装目录 |
profile-script=~/.bash_profile | |
rmi-port=11000 | rmi端口号,默认为11000 |
[m_kes_3114] | 服务名 |
role=master | 同步角色,源端为master,目标端为slave |
master=10.10.3.199 | 源端服务的安装ip |
members=10.10.3.199 | 本服务的安装ip |
kufl-port=3112 | KUFL端口号 |
replication-host=10.10.3.199 | 数据库ip |
replication-port=54321 | 数据库端口 |
replication-user=flysync | 数据库用户名 |
replication-password=flysync | 数据库用户密码 |
datasource-type=kingbase | 数据库类型 |
oracle-extractor-method=logminer | 解析方式 |
datasource-oracle-service=test | 数据库名 |
property=replicator.extractor.dbms.tablePatterns=realestate.* | 表过滤 |
property=replicator.extractor.dbms.scnSegmentationThreshold=5000 | 是否保留DML |
svc-extractor-filters=dropstatementdata | 开启过滤DDL语句 |
property=replicator.datasource.global.connectionSpec.use_cluster=true | 指定是否使用读写分离功能标识,默 认取值为:false。此配置项关闭 JDBC 就变成单机 JDBC,无读写分离功能 |
property=replicator.datasource.global.connectionSpec.slave_add=192.168.1.2 | 当 use_cluster 为 true 时,指定后端 V8 的备节点地址;当 use_cluster 为 false 时无效 |
property=replicator.datasource.global.connectionSpec.slave_port=54321 | 当 use_cluster 为 true 时,指定后端 V8 的备节点端口,与备节点地址对 应;当 use_cluster 为 false 时无效 |
Property= replicator.datasource.global.connectionSpec.nodeList | 若为 V8R6 则还需添加该参数 |
注意:
- nodeList 为集群中指定的各节点的名称,各节点的名称可通过数据库提供的工具./repmgr cluster show 命令查询获取。要求开启读写分离时必须配置此项,不允许为空并要与节点的地址配置顺序完全一致。 各个节点名称之间用逗号分隔,如:nodeList=node1,node2
- replication-host推荐使用集群vip方式部署
3.3 执行安装
执行解压目录/tools/下的fspm install
更新环境配置
source ~/.bash_profile
3.4 上传license文件
上传license文件至$HOME/kfs/目录
3.5 启动同步程序
replicator start
3.6 查看同步服务情况
fsrepctl services或fsrepctl status(state:online表示服务正常)
四、测试验证
在源端数据库执行以下sql
Create table realestate.test(id int,name varchar(64));
Insert into test values(1, ‘test’)
执行kufl –service m_kes_3114 list –last查看同步解析情况
四、总结
KFS同步程序常见操作命令:
KFS同步程序的启停
replicator start
replicator stop
replicator restart
查看同步服务状态
fsrepctl services
fsrepctl -service 同步服务名 status
同步服务的启停
fsrepctl -service 同步服务名 online
fsrepctl -service 同步服务名 offline
重置KUFL
fsrepctl -service 同步服务名 reset –all –y