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

SQL Sever安装部署中电科金仓KFS同步程序--SQL Sever作为源端--KES作为目标端时的安装部署

原创 KFS补给站 2024-10-30
185

关键字:

KingbaseFlySync、KFS、replicator、同步程序、flysync.ini、安装部署、中电科金仓、Kingbase、SQL Server

一、概述

中电科金仓Kingbase FlySync 支持基于SQL Server 作为源端、KES作为目标端的数据同步。本文以下部分对基于 SQL Server 作为源端、KES作为目标端时的KFS部署过程进行阐述。

二、拓扑结构

如图1所示,本文演示从源端SQL Server数据库到目标端KES数据库的同步链路建立。其中,源端SQL Server数据库与KFS集中部署在一台机器上,目标端KES数据库与KFS集中部署在另一台机器上。
图片.png

三、环境准备

如第一节拓扑结构所示,本示例需要提前准备好两台虚拟机环境,一台为源端SQL Server数据库环境,一台为目标端KES数据库环境。

3.1 源端SQL Server数据库环境准备

3.1.1 启动SQL Server数据库

systemctl start mssql-server.service
systemctl stop mssql-server.service
systemctl status mssql-server.service

图片.png

3.1.2 SQL Server数据库配置

3.1.2.1连接到SQL Server数据库

sqlcmd -S localhost -U sa -P Kingbase2017

3.1.2.2准备源端同步的表

   create database sourcedb  //创建同步的数据库
   use sourcedb           //连接到同步的数据库
   create schema test      //创建同步的模式
   create table test.t1(id int primary key,a int) //创建同步的表

图片.png

3.1.2.3修改conf文件

数据库工作准备完毕后,还需配置setupCDC.conf文件,使其符合我们当前的环境。该文件在KFS的安装包里,具体路径为flysync-replicator/extractors/mssql-cdc,cd到该路径下,编辑该文件。
vi setupCDC.conf
图片.png
图片.png

3.1.2.4 修改table文件

图片.png
例如,这里在table文件最后一行添加:test t1 (配置table文件就是指定我们需要同步的模式和表,例如在这里就是指定我们需要同步test模式下的t1这张表)

3.1.2.5 执行setupCDC.sh文件

上面的conf文件和table文件修改完毕以后,就执行配置脚本,从而使我们以上所做的配置生效。
./setupCDC.sh setupCDC.conf
到这里就完成了KFS安装前需要对源端SQL Server数据库进行的准备工作。

3.2 目标端KES数据库环境准备

3.2.1 KES数据库安装与启动(若已安装好则跳过本节)

1)获取KES的压缩包KingbaseES_V008R006XXXXXXX_Lin64_install.iso,然后挂载到tmp文件,注意要在root用户下执行

su   mount KingbaseES_V008R006XXXXX_Lin64_install.iso tmp/

2)挂载过去以后cd到tmp下,执行setup.sh脚本


    sh setup.sh

图片.png

  1. 此时会弹出KES的图形化安装界面,随着引导安装好以后就可以到安装目录下启动KES数据库
./sys_ctl –D XXX start

图片.png

4)从bin目录下进入数据库
./ksql –Usystem –dtest –p54321 (注:这里-U是指定用户,-d是指定数据库,-p是指定端口号)
图片.png
到这里我们就已经功进入到了KES数据库了。

3.2.2 KES数据库配置

1)创建数据库并创建用户

   ./ksql -Usystem –dtest
   CREATE USER FLYSYNC SUPERUSER PASSWORD '123456';

(这里的用户和密码是KFS的同步服务所需的用户和密码)
2)准备目标端同步所需的数据库、模式、表。

create database targetdb_sql  //创建同步的数据库
   use targetdb_sql            //连接到同步的数据库
   create schema test          //创建同步的模式(与源端保持一致)
   set search_path=test        //切换到同步的模式下
   create table test.t1(id int primary key,a int) //创建同步的表 (一样和源端保持一致)

到这里就完成了KFS安装前需要对目标端KES数据库进行的准备工作。

四、KFS同步服务安装与配置

4.1源端KFS-replicator安装与配置

4.1.1 获取KFS-replicator安装包并解压

wget 【路径XXX】
tar xvf KingbaseFlySync-V002R002B20240722-replicator.tar.gz

4.1.2 拷贝extetion下的jdbc下的kingbase8-8.6.0.jar到flysync-replicator下的lib目录(当数据源是V8R6时需要我们手动拷贝jar包)

cp extensions/jdbc/kingbase8-8.6.0.jar flysync-replicator/lib

4.1.3 ruby配置

下载ruby压缩包,随后解压,然后在环境变量中添加如下内容:

vi ~/.bash_proflie
# Begin Kingbase FLysync Ruby Environment
export RUBY_HOME=/home/hes/rbenv/ruby  #ruby解压后的目录
PATH=$RUBY_HOME/bin:$PATH
export PATH
# End Kingbase FLysync Ruby Environment

添加完毕后再source环境变量
source ~/.bash_profile
可以用ruby –v命令检查是否安装成功
图片.png

4.1.4 flysync.ini文件配置

   vi ~/flysync.ini
   配置实例如下:
    [defaults]
install-directory=/home/hes/SQL Server_flysync_test   //同步服务安装路径
profile-script=~/.bash_profile     //环境变量文件
rmi-port=11000      //同步程序replicator使用的端口
[SQL Server]          //当前同步服务的名称
role=master      //同步服务角色(源端/目标端)
master=10.10.5.242   //源端同步服务节点所在的IP地址
members=10.10.5.242   //当前机器节点的IP地址
kufl-port=3112         //当前同步服务的kufl端口
replication-host=10.10.5.242   //源端数据库所在节点的IP地址
replication-port=1433        //源端数据库的端口
replication-user=flysync_SQL Server   //源端数据库用户名
replication-password=Kingbase2017   //源端数据库用户对应的密码
datasource-type=mssql
mssql-extractor-method=cdc
mssql-dbname=sourecedb
property=replicator.extractor.dbms.minSleepTime=5
property=replicator.extractor.dbms.sleepAddition=1
property=replicator.extractor.dbms.maxSleepTime=15
property= replicator.global.buffer.size=1
repl_auto_recovery_max_attempts = 0

4.1.5 执行tools目录下的fspm

./fspm install

4.1.6 将许可文件放置到KFS的安装目录下

 cp license.dat /home/hes/ SQL Server_flysync_test

4.1.7 source环境变量

source ~/.bash_profile

4.1.8源端KFS-replicator启动

replicator start
成功启动replicator服务后,可以查看同步状态
fsrepctl status
如果状态为online,那么到这里便完成了源端KFS同步服务的部署工作。
图片.png

4.2目标端KFS-replicator安装与配置

这里目标端KFS同步服务的安装步骤参考3.1节,只是flysync.ini文件配置有所不同,下面给出了目标端为KES的ini文件示例:
vi ~/flysync.ini
写入如下内容:

[defaults]
install-directory=/home/hes/flysync_KES_test      //同步服务安装路径
profile-script=~/.bash_profile     //环境变量文件
rmi-port=11000    //同步程序replicator使用的端口
[sql_slave]      //当前该同步服务的名称
role=slave     //同步服务角色(源端/目标端)
master=10.10.5.242   //源端同步服务所在节点的IP地址
master-kufl-port=3112  //源端同步服务所在节点的kufl端口号
members=10.10.5.204   //当前机器节点的IP地址
kufl-port=3120        //当前同步服务的kufl端口
replication-host=10.10.5.204  //目标端数据库所在节点的IP地址
replication-port=54321      //目标端数据库端口号
replication-password=123456  //目标端数据库用户密码
replication-user=FLYSYNC   //目标端数据库用户名
datasource-type=kingbase
datasource-version=8
kingbase-dbname=targetdb_sql
svc-parallelization-type=none
svc-remote-filters=casetransform   
property=replicator.filter.casetransform.to_upper_case=true
property=replicator.applier.dbms.optimizeRowEvents=true
property=replicator.applier.dbms.maxRowBatchSize=5000
property= replicator.global.buffer.size=1
repl_auto_recovery_max_attempts = 0

完成上述操作后安装fspm,再启动replicator,随即可以查看同步服务状态

./fspm install
replicator start
fsrepctl status

图片.png
可以看到这里状态为online,那么到这里便完成了目标端同步服务的安装部署,接下来就可以进行同步测试。

五、同步测试

5.1源端数据入库操作

首先在源端SQL Server数据库中插入一条数据(11,11)
insert into test.t1 values(11,11)
图片.png
再查看一下表的数据,发现数据(11,11)已经入库

图片.png
此时可以查看一下源端kufl服务有没有解析到这条插入语句
kufl list
图片.png
可以看到源端kufl成功解析到了这条数据,这说明我们源端的同步服务是在正常运行的,此时再去查看目标端。

5.2检查数据在目标端是否入库

1)同理先看目标端的kufl服务有没有捕捉到这条插入语句
kufl list
图片.png
可以看到目标端同样解析出了这条数据,并且看到顺序是一样的,都是seq5(之前执行过4次插入语句)。
2)进入KES数据库进行验证
为验证可靠性,可到KES数据库中进一步验证
select * from t1
图片.png

可以看到(11,11)这条数据已经同步至KES数据库,这说明了我们已经成功建立了从SQL Server到kes的同步链路!

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

评论