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

一、环境信息

1、软件版本

KFS版本:Kingbase FlySync V001R006C003B20220107

源端数据库版本:oracle 11.2.0.4.0

目标端1数据库版本:KingbaseES V008R006C003B0071

目标端2数据库版本:Mysql 8.0.26

目标端3数据库版本:sqlserver 2017

2、部署拓扑

 

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

3.、IP地址

源端oracle:192.168.100.111

目标端kes:192.168.100.114

目标端mysql:192.168.100.112

目标端sqlserver:192.168.100.113

二、源端(oracle) KFS部署

源端oracle采用redo方式解析。

(一)、环境配置

1、创建安装用户

groupadd flysync

useradd flysync -g flysync -G mysql

passwd flysync

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

tar -xzvf KingbaseFlySync-V001R006C003B20211213-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-V001R006C003B20211213-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

三、目标端1(kes)KFS部署

(一)、环境配置

1、创建安装用户

groupadd flysync

useradd flysync -g flysync -G mysql

passwd flysync

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

tar -xzvf KingbaseFlySync-V001R006C003B20211213-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、创建数据账号

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

ksql>CREATE USER FLYSYNC SUPERUSER PASSWORD ‘23456’;

(三)、KFS安装

1、配置flysync.ini

[defaults]

install-directory=/home/flysync/kfsrep

profile-script=~/.bash_profile

rmi-port=11000

[kingbase8]

role=slave

master=oracle

master-kufl-port=3112

members=kes

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-dbname=TEST

svc-parallelization-type=none

svc-remote-filters=casetransform,rename

property=replicator.filter.casetransform.to_upper_case=false

property=replicator.applier.dbms.optimizeRowEvents=true

property=replicator.applier.dbms.maxRowBatchSize=5000

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

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

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

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

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

3、安装

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

./fspm install

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

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

5、修改rename文件

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

FLYSYNC,trep_commit_seqno,*,flysync_kingbase8,-,-

FLYSYNC,consistency,*,flysync_kingbase8,-,-

FLYSYNC,heartbeat,*,flysync_kingbase8,-,-

FLYSYNC,trep_shard,*,flysync_kingbase8,-,-

FLYSYNC,trep_shard_channel,*,flysync_kingbase8,-,-

test,*,*,public,-,-

——备注:如果rename里模式映射是映射到public模式的话,flysync.ini里的大小写转换参数必须为小写,即property=replicator.filter.casetransform.to_upper_case的值必须为false

6、启动并初始化

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

source ~/.bash_profile

查看KFS状态

replicator status

查看服务状态

fsrepctl status

查看KUFL列表

kufl list

四、目标端2(mysql8)KFS部署

(一)、环境配置

1、创建安装用户

groupadd flysync

useradd flysync -g flysync -G mysql

passwd flysync

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

tar -xzvf KingbaseFlySync-V001R006C003B20211213-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'

保存后重启mysql

service mysqld restart

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

[mysql80]

skip-validation-check=MySQLPermissionsCheck,MySQLDumpCheck

role=slave

master=oracle

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

2、安装

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

./fspm install

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

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

4、修改rename文件

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

FLYSYNC,trep_commit_seqno,*,flysync_mysql80,-,-

FLYSYNC,consistency,*,flysync_mysql80,-,-

FLYSYNC,heartbeat,*,flysync_mysql80,-,-

FLYSYNC,trep_shard,*,flysync_mysql80,-,-

FLYSYNC,trep_shard_channel,*,flysync_mysql80,-,-

6、启动并初始化

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

source ~/.bash_profile

查看KFS状态

replicator status

查看服务状态

fsrepctl status

查看KUFL列表

kufl list

五、目标端3(sqlserver2017)KFS部署

(一)、环境配置

1、创建安装用户

groupadd flysync

useradd flysync -g flysync -G mysql

passwd flysync

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

tar -xzvf KingbaseFlySync-V001R006C003B20211213-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、创建登录名

create login flysync

with

password='123456' ,

default_database=test1,

check_expiration=off,

check_policy=off

2、创建用户并映射到登录名

create user flysync for login flysync;

3、创建架构,并指定用户默认架构

create schema test;

alter user flysync with default_schema=test;

4、授权(授予角色,如果用户要保留其所创建的角色为默认架构,则不能授予sysadmin角色)

alter server role dbcreator add member flysync;

alter role db_owner add member flysync;

(三)、KFS安装

1、配置flysync.ini

[defaults]

install-directory=/home/flysync/kfsrep

profile-script=~/.bash_profile

rmi-port=11000

[sqlserver2017]

role=slave

master=oracle

master-kufl-port=3112

members=sqlserver

kufl-port=3112

replication-host=192.168.100.113

replication-port=1433

replication-user=flysync

replication-password=123456

datasource-type=mssql

mssql-dbname=test

svc-remote-filters=casetransform,rename

property=replicator.filter.casetransform.to_upper_case=false

2、安装

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

./fspm install

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

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

4、修改rename文件

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

FLYSYNC,trep_commit_seqno,*,flysync_sqlserver2017,-,-

FLYSYNC,consistency,*,flysync_sqlserver2017,-,-

FLYSYNC,heartbeat,*,flysync_sqlserver2017,-,-

FLYSYNC,trep_shard,*,flysync_sqlserver2017,-,-

FLYSYNC,trep_shard_channel,*,flysync_sqlserver2017,-,-

6、启动并初始化

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

source ~/.bash_profile

查看KFS状态

replicator status

查看服务状态

fsrepctl status

查看KUFL列表

kufl list

六、数据搬迁

(一)、表结构迁移

表结构迁移使用极速搬迁模式,在每个目标端执行。

1、目标端1(kes)

ddlscan -target.service 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

2、目标端2(mysql8)

ddlscan -target.service mysql80 -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

3、目标端3(sqlserver2017)

ddlscan -target.service sqlserver2017 -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

(二)、存量数据迁移

数据分发场景,数据迁移可以使用特殊模式(源端流水线迁移),源端只需执行一次,就可将存量数据分发到各个目标端。

特殊模式搬迁需要源端和目标端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 后再次执行搬迁。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值