KFS数据级联场景部署

数据级联场景是源端数据发送给中间端数据库,再从中间端数据库发送到目标端数据库。KFS通过多个一对一的数据链路实现数据级联同步。

一、环境信息

1、软件版本

KFS版本:Kingbase FlySync V001R006C003B20220107

源端:oracle 11.2.0.4.0

中间端:KingbaseES V008R006C003B0071

目标端:Mysql 8.0.26

2、部署拓扑

KFS与数据库集中部署,部署在同一台服务器上。

3、IP地址

源端(oracle):192.168.100.111

中间端(kes):192.168.100.114

目标端(mysql):192.168.100.112

二、源端(oracle) KFS部署

源端oracle采用redo方式解析。

(一)、环境配置

1、创建安装用户

groupadd flysync

useradd flysync -g flysync -G mysql

passwd flysync

2、上传安装文件包和license文件到服务器/home/flysync目录下,并解压

tar -xzvf KingbaseFlySync-V001R006C003B20220107-replicator.tar.gz

3、配置将hosts文件,将源端和目标端服务器都加上去

vi /etc/hosts

192.168.100.111 oracle

192.168.100.114 kes

192.168.100.112 mysql

192.168.100.113 sqlserver

4、配置/etc/security/limits.conf文件【可选】

vi /etc/security/limits.conf

flysync - nofile 65535

flysync - nproc 8096

mssql - nofile 65535

mssql - nproc 8096

5、开启时间同步服务【可选】

yum install ntp

systemctl start ntpd

systemctl enable ntpd

6、在/etc/sysctl.conf配置swappiness参数【可选】

vi /etc/sysctl.conf

vm.swappiness = 10

sysctl -p

7、检查依赖软件jdk和ruby【必须】

--jdk

java -version

版本小于1.8的,可以使用yum安装1.8版本

yum install java-1.8.0-openjdk.x86_64

也可以下载oracle的1.8版本的JDK包手动上传安装

--ruby

可以使用yum方式安装

yum install ruby

也可以使用KFS控制台服务器里自带的ruby包进行替换,位置在:/opt/KFS/console/media/rbenv,

将压缩包解压到/usr/local,然后配置/etc/profile文件里$PATH环境变量,将ruby的bin目录添加进去

vi /etc/profile

export PATH=$PATH:/usr/local/ruby/bin

配置完成后,使用source命令应用

source /etc/profile

(二)、数据库配置

1、配置数据库时间格式:

ALTER SYSTEM SET NLS_DATE_FORMAT='YYYY-MM-DD' SCOPE=SPFILE;

2、创建连接用户并授予相关权限:

create user flysync identified by 123456;

alter user flysync default tablespace users;

alter user flysync quota unlimited on users;

GRANT CONNECT, RESOURCE TO FLYSYNC;

GRANT EXECUTE_CATALOG_ROLE TO FLYSYNC;

GRANT CREATE SESSION TO FLYSYNC;

GRANT SELECT ANY TRANSACTION TO FLYSYNC;

GRANT SELECT ANY TABLE TO FLYSYNC;

GRANT UNLIMITED TABLESPACE TO FLYSYNC;

GRANT DBA TO FLYSYNC;

3、开启 Oracle 数据库的归档日志(必须开启)了,具体步骤如下:

(1).查看当前归档模式

SQL>select  log_mode  from  v$database;

(2).创建归档目录

[oracle@zjtmp-db oracle]$ mkdir -p $ORACLE_BASE/archivelog

[oracle@zjtmp-db oracle]$ sqlplus / as sysdba

SQL> alter system set log_archive_dest_1="location=/data/oracle/archivelog" scope=both;

(3).将数据库重启到mount状态

SQL>shutdown immediate

SQL>startup mount

(4).将数据库更改为归档模式

SQL>alter database archivelog;

(5).打开数据库

SQL>alter database open;

(6).查看归档模式是否开启

SQL>select  log_mode  from  v$database;

4、开启补全日志:

(1).检查补全日志的状态

SQL> SELECT supplemental_log_data_min, supplemental_log_data_pk,supplemental_log_data_all FROM v$database;

SUPPLEME SUP SUP

-------- --- ---

NO NO NO

(2).开启补全日志 (建议在 MOUNT 模式下执行)

SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;

SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY) COLUMNS;

SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;

(3).再次检查补全日志的状态

SQL> SELECT supplemental_log_data_min, supplemental_log_data_pk, supplemental_log_data_all FROM v$database;

SUPPLEME SUP SUP

-------- --- ---

YES      YES YES

必须3项都为YES

5、切换日志文件

SQL> ALTER SYSTEM SWITCH LOGFILE;

(三)、KFS安装

1、配置flysync.ini文件

在安装用户的家目录下配置flysync.ini文件

vi  /home/flysync/flysync.ini

输入以下内容:

[defaults]

user=flysync

install-directory=/home/flysync/kfsrep

profile-script=~/.bash_profile

rmi-port=11000

[oracle11g]

role=master

master=oracle

members=oracle

kufl-port=3112

replication-host=192.168.100.111

replication-port=1521

#连接数据库的用户名必须为大写

replication-user=FLYSYNC

replication-password=123456

datasource-type=oracle

oracle-extractor-method=redo

datasource-oracle-service=orcl

svc-extractor-filters=dropstatementdata,ignoreddl

property=replicator.extractor.dbms.tablePatterns=FLYSYNC.*,TEST.*

property=replicator.extractor.dbms.keepMixDML=false

property=replicator.filter.ignoreddl.ignore=CREATE;ALTER;DROP;TURNCATE

2、安装

切换到安装包目录下的tools子目录

cd /home/flysync/KingbaseFlySync-V001R006C003B20220107-replicator/tools

./fspm install

3、将license文件复制到安装目录下

cp license_8703_0.dat /home/flysync/kfsrep/license.dat

4、启动KFS

replicator start

查看KFS状态

replicator status

查看服务状态

fsrepctl status

查看KUFL列表

kufl list

三、中间端(KES v8r6)KFS部署

(一)、环境配置

1、创建安装用户

groupadd flysync

useradd flysync -g flysync -G mysql

passwd flysync

2、上传安装文件包和license文件到服务器/home/flysync目录下,并解压

tar -xzvf KingbaseFlySync-V001R006C003B20220107-replicator.tar.gz

3、配置将hosts文件,将源端和目标端服务器都加上去

vi /etc/hosts

192.168.100.111 oracle

192.168.100.114 kes

192.168.100.112 mysql

192.168.100.113 sqlserver

4、配置/etc/security/limits.conf文件【可选】

vi /etc/security/limits.conf

flysync - nofile 65535

flysync - nproc 8096

mssql - nofile 65535

mssql - nproc 8096

5、开启时间同步服务【可选】

yum install ntp

systemctl start ntpd

systemctl enable ntpd

6、在/etc/sysctl.conf配置swappiness参数【可选】

vi /etc/sysctl.conf

vm.swappiness = 10

sysctl -p

7、检查依赖软件jdk和ruby【必须】

--jdk

java -version

版本小于1.8的,可以使用yum安装1.8版本

yum install java-1.8.0-openjdk.x86_64

也可以下载oracle的1.8版本的JDK包手动上传安装

--ruby

可以使用yum方式安装

yum install ruby

也可以使用KFS控制台服务器里自带的ruby包进行替换,位置在:/opt/KFS/console/media/rbenv,

将压缩包解压到/usr/local,然后配置/etc/profile文件里$PATH环境变量,将ruby的bin目录添加进去

vi /etc/profile

export PATH=$PATH:/usr/local/ruby/bin

配置完成后,使用source命令应用

source /etc/profile

(二)、数据库配置

创建连接数据库账号并授权:

ksql>CREATE USER FLYSYNC SUPERUSER PASSWORD '123456';

(三)、KFS安装

1、检查数据库decoderbufs插件是否安装

----检查V8安装目录下的/lib目录,是否有decoderbufs.so和kfs_current_query.so包,若没有,将KingbaseFlySync安装包中附带的decoderbuf.so和kfs_current_query.so复制到Kingbase安装目录的/lib目录下。

----检查V8安装目录下的/share/extension目录,是否有decoderbufs.control文件,若没有,将KingbaseFlySync安装包中附带的decoderbuf.control复制到Kingbase安装目录的/share/extension目录下

ls   /opt/Kingbase/ES/V8/Server/lib/decoderbufs.so

ls   /opt/Kingbase/ES/V8/Server/lib/kfs_current_query.so

ls   /opt/Kingbase/ES/V8/Server/share/extension/decoderbufs.control

如果没有,解压KFS安装包中自带的压缩包,将这些文件复制到相应目录

cd  /home/flysync/KingbaseFlySync-V001R006C003B20220107-replicator/extensions/decoderbufs

cp kfs_decoderbufs_lib_linux64_v8r3.zip  /home/kingbase

cd /home/kingbase

unzip kfs_decoderbufs_lib_linux64_v8r3.zip

cp ./lib/decoderbufs.so /opt/Kingbase/ES/V8/Server/lib

cp ./lib/kfs_current_query.so /opt/Kingbase/ES/V8/Server/lib

cp ./share/extension/decoderbufs.control  /opt/Kingbase/ES/V8/Server/share/extension

chown kingbase:kingbase /opt/Kingbase/ES/V8/Server/lib/decoderbufs.so

chown kingbase:kingbase /opt/Kingbase/ES/V8/Server/lib/kfs_current_query.so

chown kingbase:kingbase /opt/Kingbase/ES/V8/Server/share/extension/decoderbufs.control

2、编辑安装目录下data/sys_hba.conf文件,增加如下配置,使用户有复制权限:

vi /opt/Kingbase/data/sys_hba.conf

host replication all 127.0.0.1/32    md5

host replication all 0.0.0.0/0       md5

3、编辑安装目录下data/kingbase.conf文件,修改如下配置:

vi /opt/Kingbase/data/kingbase.conf

max_wal_senders=4          #日志发送进程数,数据库个数*2,最小为4

wal_keep_segments=4        #保留日志数量,根据磁盘空间设置,越大越好

wal_level=logical          #日志级别,必须为logical

max_replication_slots=4    #复制槽数量,数据库个数*2,最小为4

全部配置完成后,重启数据库使配置生效。

sys_ctl -D /opt/Kingbase/data restart

4、配置flysync.ini

中间端的flysync.ini文件配置两个服务,一个目标端服务,对应源端oracle11g;一个源端服务,对应目标端mysql8

[defaults]

install-directory=/home/flysync/kfsrep

profile-script=~/.bash_profile

rmi-port=11000

#目标端服务

[oracle11g_kingbase8]

role=slave

master=oracle

master-kufl-port=3112

members=kes8

kufl-port=3113

replication-host=192.168.100.114

replication-port=54321

replication-user=flysync

replication-password=123456

datasource-type=kingbase

datasource-version=8

kingbase-dbname=TEST

svc-parallelization-type=none

svc-remote-filters=casetransform,rename

property=replicator.filter.casetransform.to_upper_case=false

property = replicator.filter.rename.definitionsFile=/home/flysync/kfsrep/filters-config/oracle11g_kingbase8_rename.csv

property=replicator.applier.dbms.optimizeRowEvents=true

property=replicator.applier.dbms.maxRowBatchSize=5000

#源端服务

[kingbase8]

role=master

master=kes8

members=kes8

kufl-port=3112

replication-host=192.168.100.114

replication-port=54321

replication-user=FLYSYNC

replication-password=123456

datasource-type=kingbase

datasource-version=8

kingbase-extractor-method=xlogical

kingbase-dbname=TEST

svc-extractor-filters=replicate

property=replicator.filter.replicate.do=PUBLIC.*,flysync_kingbase8.*

property=replicator.filter.replicate.ignore=PUBLIC.T1

#大事务拆分参数,到达4000行开始拆分事务,默认为500

property=replicator.extractor.dbms.minRowsPerBlock=4000

#同步DDL语句所需,可以配置支持的DDL类型

property=replicator.extractor.dbms.ddlListFile=/home/flysync/kfsrep/filters-config/ddl_support_list.csv

#在开启同步DDL后生效,create table as类型语句,同时产生DDL和DML,是否保留DML,true为保留,false为不保留,默认为true。

property=replicator.extractor.dbms.keepMixDML=true

5、从KFS安装包目录下的extensions/jdbc拷贝jdbc包

V8R3(不含)之上的版本,使用kingbase8-8.6.0.jar

V8R3(含)以下版本,使用kingbase8-8.2.0.jar

cd /home/flysync/KingbaseFlySync-V001R006C003B20220107-replicator/extensions/jdbc

cp kingbase8-8.6.0.jar /home/flysync/KingbaseFlySync-V001R006C003B20220107-replicator/flysync-replicator/lib

6、安装

cd /home/flysync/KingbaseFlySync-V001R006C003B20220107-replicator/tools

./fspm install

7、复到license文件到安装目录

cp license.dat /home/flysync/kesrep/license.dat

8、修改rename文件

修改目标端服务oracle11g_kingbase8的rename文件

vi /home/flysync/kfsrep/filters-config/oracle11g_kingbase8_rename.csv

FLYSYNC,trep_commit_seqno,*,flysync_oracle11g_kingbase8,-,-

FLYSYNC,consistency,*,flysync_oracle11g_kingbase8,-,-

FLYSYNC,heartbeat,*,flysync_oracle11g_kingbase8,-,-

FLYSYNC,trep_shard,*,flysync_oracle11g_kingbase8,-,-

FLYSYNC,trep_shard_channel,*,flysync_oracle11g_kingbase8,-,-

test,*,*,public,-,-

9、启动并初始化

/home/flysync/kesrep/flysync/cluster-home/bin/startall

source ~/.bash_profile

查看KFS状态

replicator status

查看服务状态

fsrepctl status

查看KUFL列表

kufl list

四、目标端(mysql8)KFS部署

(一)、环境配置

1、创建安装用户

groupadd flysync

useradd flysync -g flysync -G mysql

passwd flysync

2、上传安装文件包和license文件到服务器/home/flysync目录下,并解压

tar -xzvf KingbaseFlySync-V001R006C003B20220107-replicator.tar.gz

3、配置将hosts文件,将源端和目标端服务器都加上去

vi /etc/hosts

192.168.100.111 oracle

192.168.100.114 kes

192.168.100.112 mysql

192.168.100.113 sqlserver

4、配置/etc/security/limits.conf文件【可选】

vi /etc/security/limits.conf

flysync - nofile 65535

flysync - nproc 8096

mssql - nofile 65535

mssql - nproc 8096

5、开启时间同步服务【可选】

yum install ntp

systemctl start ntpd

systemctl enable ntpd

6、在/etc/sysctl.conf配置swappiness参数【可选】

vi /etc/sysctl.conf

vm.swappiness = 10

sysctl -p

7、检查依赖软件jdk和ruby【必须】

--jdk

java -version

版本小于1.8的,可以使用yum安装1.8版本

yum install java-1.8.0-openjdk.x86_64

也可以下载oracle的1.8版本的JDK包手动上传安装

--ruby

可以使用yum方式安装

yum install ruby

也可以使用KFS控制台服务器里自带的ruby包进行替换,位置在:/opt/KFS/console/media/rbenv,

将压缩包解压到/usr/local,然后配置/etc/profile文件里$PATH环境变量,将ruby的bin目录添加进去

vi /etc/profile

export PATH=$PATH:/usr/local/ruby/bin

配置完成后,使用source命令应用

source /etc/profile

(二)、数据库配置

1、mysql系统参数配置

vi /etc/my.cnf

[mysqld]

local-infile

character-set-server = utf8

collation-server = utf8_general_ci

default-time-zone = '+08:00'

保存后重启数据库

systemctl restart mysqld

2、连接帐号配置

建立帐号并给予相应的权限

mysql>CREATE USER flysync@'%' IDENTIFIED BY '123456';

mysql>GRANT ALL ON *.* TO flysync@'%' WITH GRANT OPTION;

(三)、KFS安装

1、配置flysync.ini

[defaults]

install-directory=/home/flysync/kfsrep

profile-script=~/.bash_profile

rmi-port=11000

[kingbase8mysql8]

skip_validation_check=MySQLDumpCheck,MySQLPermissionsCheck

role=slave

master=kes8

master-kufl-port=3112

members=mysql

kufl-port=3112

replication-host=192.168.100.112

replication-port=3306

replication-user=flysync

replication-password=123456

datasource-type=mysql

svc-remote-filters=casetransform,rename

property=replicator.filter.casetransform.to_upper_case=false

replicator.filter.rename.definitionsFile=/home/flysync/kfsrep/filters-config/kingbase8mysql8_rename.csv

2、安装

cd /home/flysync/KingbaseFlySync-V001R006C003B20220107-replicator/tools

./fspm install

3、复到license文件到安装目录

cp license.dat /home/flysync/kesrep/license.dat

4、修改rename文件

vi /home/flysync/kfsrep/filters-config/kingbase8mysql8_rename.csv

flysync_kingbase8,*,*,flysync_kingbase8mysql8,-,-

public,*,*,test,-,-

5、启动并初始化

/home/flysync/kesrep/flysync/cluster-home/bin/startall

source ~/.bash_profile

查看KFS状态

replicator status

查看服务状态

fsrepctl status

查看KUFL列表

kufl list

五、数据搬迁

(一)、表结构迁移

表结构迁移使用极速搬迁模式,在中间端和目标端执行,数据源都指向源端数据库。

  1. 中间端(oracle11g_kingbase8)

ddlscan -target.service oracle11g_kingbase8 -source.user FLYSYNC -source.pass 123456 -source.db orcl -source.dbtype oracle -source.host 192.168.100.111 -source.port 1521 -source.schema TEST  -target.db test -mgType 0

  1. 目标端(kingbase8mysql8)

ddlscan -target.service kingbase8mysql8 -source.user FLYSYNC -source.pass 123456 -source.db orcl -source.dbtype oracle -source.host 192.168.100.111 -source.port 1521 -source.schema TEST  -target.db test -mgType 0

(二)、存量数据迁移

数据级联场景,数据迁移可以使用特殊模式(源端流水线平滑搬迁),在源端执行,这样源端就可以将存量数据生成KUFL日志同步到中间端,中间端就可以自动将数据同步到目标端。采用这种模式同步只需执行数据迁移一次就将数据自动迁移到中间端和目标端。

特殊模式搬迁需要源端、中间端和目标端kfs服务是online状态。

源端执行:

loader -source.service oracle11g -source.user FLYSYNC -source.pass 123456 -source.db orcl -source.dbtype oracle -source.host 192.168.100.111 -source.port 1521 -source.schema TEST -source.rmiHost 192.168.100.111 -source.rmiPort 11000 -mgType 2 -clean

特殊模式搬迁过程中,不可人为修改服务状态。若因外界原因导致服务状态异常,需将

服务修正为 online 后再次执行搬迁。

金仓KFS数据级联场景部署相关推荐

  1. 金仓KFS数据集中场景(多对一)部署

    KFS数据集中场景(多对一)部署 一.环境信息 1.软件版本 KFS版本:Kingbase FlySync V001R006C003B20220107 源端1:oracle 11.2.0.4.0 源端 ...

  2. 金仓KFS数据双向同步场景部署

    KFS数据双向同步场景部署 数据双向同步场景是两端数据库互为源端和目标端,A端有新的增量数据会同步到B端,B端有增量数据也会同步到A端,并且两端之前有防回环机制,防止A端增量数据同步到B端后再同步到A ...

  3. 技术干货 | 人大金仓KFS基于分区索引的分片入库技术解析

    在之前的文章<技术干货:人大金仓KFS精准过滤和分片并行入库技术解析>中,KFS利用分片并行入库技术,解决了某金融POC数据同步项目中数据入库持续积压问题.经过优化后,在200并发的压测场 ...

  4. 技术干货 | 人大金仓KFS精准过滤和分片并行入库技术解析

    "技术干货"是人大金仓推出的系列主题内容.本期展示的是人大金仓KFS V2.0通过精准过滤和基于表的分片并行入库特性来提升数据的入库效率,打破传统数据同步性能瓶颈,为用户提供极致高 ...

  5. 倒计时9天 | 金仓KFS如何助力S市政务电子系统迁移升级?

    2022年2月25日晚10点 上线倒计时9天,愁云惨淡路在何方 日落月升,喧嚣的城市,逐渐归于宁静. 此刻,S市M大楼依旧灯火通明,作为X项目开发商项目经理的我,还在为项目的如期上线紧张地忙碌着.离上 ...

  6. KFS数据分发场景(一对多)部署

    一.环境信息 1.软件版本 KFS版本:Kingbase FlySync V001R006C003B20220107 源端数据库版本:oracle 11.2.0.4.0 目标端1数据库版本:Kingb ...

  7. 金仓KFS for Oracle RAC one node安装部署

    KFS for Oracle RAC one node安装部署 Oracle RAC one node是运行在Oracle RAC集群上的单实例数据库,当实例所在的节点出现问题后,实例可以自动转移到其 ...

  8. 金仓KFS replicator安装(Oracle-KES)

    KFS replicator安装(Oracle-KES) 壹.源端Oracle RAC 一.安装前置配置 1.创建安装用户 groupadd flysync useradd flysync -g fl ...

  9. 炫“库”行动-人大金仓有奖征文-KFS数据比对和数据修复

    [本文正在参与炫"库"行动-人大金仓有奖征文] 活动链接:  https://marketing.csdn.net/p/98bd30353e7cb998b6070a89e8b91e ...

最新文章

  1. 石英晶体振荡器的结构
  2. 成为“首席AI架构师”的全流程方法论
  3. c++ 打印 torch tensor
  4. win10下docker如何安装?
  5. Python中的MySQL数据库编程
  6. CentOS 7 定时计划任务设置
  7. Write a simple HTML Browser(hdu1088)
  8. java中什么泛型_java中的泛型(一)
  9. 计算机专业线性代数教学大纲,线性代数(专业必修课)教学大纲(2018版)
  10. 基于单片机的数字万年历设计
  11. 三星手机微信下载的文件路径
  12. Android开发面试简历
  13. python画鱼骨图_这样做数据可视化驾驶舱,高端大气,一目了然,领导不点赞都难...
  14. 通过mysql修改后台密码_怎么通过修改数据库修改网站后台的管理员密码?
  15. 微信小程序实现音乐搜索页面
  16. Ubuntu18.04 64 位系统 安装32位支持库
  17. Android版简历(二)
  18. UnityShader---SurfaceShader(模板和各种效果实现:边缘自发光、火焰流动、燃烧、法线扭曲、简单模糊、消融、区域过度、雪效果等)---17
  19. 南京16家需要转诊才能享受统筹的三甲医院
  20. Linux (centos) 安装anyproxy https手机设备抓包笔记

热门文章

  1. 【JVM】jvm虚拟机都有哪些?常用jvm虚拟机简介
  2. USB Redirector 6.1.1中文注册版(USB共享工具)
  3. 厦大纪荣嵘团队新作|OneTeacher: 解锁 YOLOv5 的正确打开方式
  4. verliog中有reg[7:0] mem[0:255]的写法,那么这跟直接用一个RAM有什么区别
  5. SAP License:ERP管理系统维护
  6. nodejs框架express之错误中间件(初学)
  7. 不知道今天吃什么?今天吃什么 API 告诉你
  8. CPU性能测试基准(Dhrystone)学习
  9. 四年开发,最重要的是战略,把目标告诉一个你信赖的人,让他保管
  10. 金山打字通2008下载-金山打字通2008正式版-金山打字通2008完整版