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

金仓KFS replicator安装(Oracle-KES)

数据猿 2022-05-26
530

KFS replicator安装(Oracle-KES)

壹、源端Oracle

一、安装前置配置

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.124 kes8-2


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、oracle数据库参数配置

(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;


A.logminer解析方式:

a.如果能够提供 DBA 权限,那么该用户应该赋予的权限包括:

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;


b.如果不能够提供 DBA 权限,可以赋予以下权限包括:

GRANT CONNECT TO FLYSYNC;

GRANT CREATE SESSION TO FLYSYNC;

GRANT UNLIMITED TABLESPACE TO FLYSYNC;

GRANT CREATE TABLE TO FLYSYNC;

GRANT CREATE MINING MODEL TO FLYSYNC;

GRANT LOGMINING TO FLYSYNC;

GRANT EXECUTE ON DBMS_FLASHBACK TO FLYSYNC;

GRANT EXECUTE ON DBMS_LOGMNR TO FLYSYNC;

GRANT EXECUTE ON DBMS_LOGMNR_D TO FLYSYNC;

GRANT EXECUTE ON SYS.DBMS_LOGMNR TO FLYSYNC;

GRANT EXECUTE ON SYS.DBMS_LOGMNR_D TO FLYSYNC;

GRANT EXECUTE ON SYS.DBMS_LOGMNR_INTERNAL TO FLYSYNC;

GRANT EXECUTE ON SYS.DBMS_LOGMNR_LOGREP_DICT TO FLYSYNC;

GRANT EXECUTE ON SYS.DBMS_LOGMNR_SESSION TO FLYSYNC;

GRANT EXECUTE_CATALOG_ROLE TO FLYSYNC;

GRANT SELECT ANY DICTIONARY TO FLYSYNC;

GRANT SELECT ANY TABLE TO FLYSYNC;

GRANT SELECT ANY TRANSACTION TO FLYSYNC;

GRANT SELECT ON SYS.V_$ARCHIVED_LOG TO FLYSYNC;

GRANT SELECT ON SYS.V_$DATABASE TO FLYSYNC;

GRANT SELECT ON SYS.V_$LOGMNR_CONTENTS TO FLYSYNC;

GRANT SELECT ON V_$ARCHIVED_LOG TO FLYSYNC;

GRANT SELECT ON V_$DATABASE TO FLYSYNC;

GRANT SELECT ON V_$LOG TO FLYSYNC;

GRANT SELECT ON V_$LOGFILE TO FLYSYNC;

GRANT SELECT ON V_$LOGMNR_CONTENTS TO FLYSYNC;

GRANT SELECT ON V_$LOGMNR_DICTIONARY TO FLYSYNC;

GRANT SELECT ON V_$LOGMNR_LOGS TO FLYSYNC;

GRANT SELECT ON V_$LOGMNR_PARAMETERS TO FLYSYNC;

GRANT SELECT ON V_$PARAMETER TO FLYSYNC;


B.redo解析方式:

a.如果能够提供 DBA 权限,那么该用户应该赋予的权限包括:

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;


b.如果不能够提供 DBA 权限,可以赋予以下权限包括:

GRANT CONNECT TO FLYSYNC;

GRANT CREATE SESSION TO FLYSYNC;

GRANT UNLIMITED TABLESPACE TO FLYSYNC;

GRANT CREATE TABLE TO FLYSYNC;

GRANT EXECUTE_CATALOG_ROLE TO FLYSYNC;

GRANT SELECT ANY DICTIONARY TO FLYSYNC;

GRANT SELECT ON V_$PARAMETER TO FLYSYNC;

(3)、安装 Logminer(redo解析方式不需要)

命令如下(Oracle 10g、Oracle 11g 和 Oracle 12c):

@$ORACLE_HOME/RDBMS/ADMIN/dbmslm.sql

@$ORACLE_HOME/RDBMS/ADMIN/dbmslmd.sql

@$ORACLE_HOME/RDBMS/ADMIN/dbmslms.sql


注意:以上三个 SQL 脚本,如果在安装的 Oralce 数据库相应的目录中有则必须执行;如果没有则可忽略

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

A.查看当前归档模式

SQL>select log_mode from v$database;


B.创建归档目录

[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;


C.将数据库重启到mount状态

SQL>shutdown immediate

SQL>startup mount


D.将数据库更改为归档模式

SQL>alter database archivelog;


E.打开数据库

SQL>alter database open;


F.查看归档模式是否开启

SQL>select log_mode from v$database;


(5)、开启补全日志:

• 检查补全日志的状态

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

SUPPLEME SUP SUP

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

NO NO NO


• 开启补全日志 (建议在 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;


• 再次检查补全日志的状态

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


(6)、切换日志文件

SQL> ALTER SYSTEM SWITCH LOGFILE;


如果数据库是12c或19c可插接数据库(pdb),需要注意以下几点:

  • 启用归档和补全日志必须在CDB里配置
  • 用户权限在PDB里配置
  • 数据库连接参数里的数据库名为PDB名,不是SID
  • 如果要同步的数据在CDB里,则CDB创建的用户名前必须加前缀”c##”,连接的数据库名为SID


2、flysync.ini配置

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

vi /home/flysync/flysync.ini


I.logminer解析模式

[defaults]

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=logminer

datasource-oracle-service=orcl

svc-extractor-filters=dropstatementdata

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

property=replicator.extractor.dbms.scnSegmentationThreshold=5000

property=replicator.datasource.global.catalogPrefix=false


注意:

(1). oracle-extractor-method 设置为 logminer(数据抽取方式)

(2). replication-user=FLYSYNC,用户名必须配置为大写

(3). replicator.extractor.dbms.scnSegmentationThreshold logminer 查询数据的阈值(当 Flysync 软件刚启动时,会查询到最早开启归档日志的 Scn 号,如果最早的 Scn 号与当前数据库的 Scn 号跨度很大的话,会严重影响数据库的性能,所以设置此阈值),默认值为 5000

(4). svc-extractor-filters 表示是否同步 DDL 语句(默认值:dropstatementdata,表示不同步 DDL 语句)

(5). property=replicator.extractor.dbms.tablePatterns 进行表过滤,FLYSYNC.*,TEST.T2表示同步FLYSYNC模式下所有表和 TEST 模式下 T2 表多个规则采用逗号 (,) 分割

(6). 若配置了 property=replicator.extractor.dbms.tablePatterns 进行表过滤参数时,请确保将 flysync 使用的数据库用户下的心跳表加入 tablePatterns 参数中,即:若使用 flysync 使用的数据库用户为KINGBASE, 待同步的用户模式为 TEST,则应配置

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

(7). replicator.datasource.global.catalogPrefix KFS 系统表是否按服务名增加前缀 (serviceName_), 配置后需要考虑由于 KFS 系统表的表名改变,导致目标端 casetransform 和 replicate 过滤器会对系统表生效。

• 解决方法一:先配置 rename,再配置 casetransform 和 replicate 过滤器

• 解决方法二:配置 casetransform 后,rename 按照 casetransform 后的进行配置

II.redo解析方式

[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.T2

property=replicator.extractor.dbms.keepMixDML=false

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


注意:

(1).REDO 形式的部署,KFS 必须和数据库处于同一台物理机器

(2).replication-user=FLYSYNC,用户名必须配置为大写

(3).replicator.extractor.dbms.keepMixDML 在开启同步 DDL 后生效,主要针对 create table as 类型语句,同时产生 DDL 和 DML,可以通过 replicator.extractor.dbms.keepMixDML 来确认是否保留 DML,true为保留,false 为不保留,默认为 false。

(4).svc-extractor-filters=dropstatementdata,ignoreddl(默认值:dropstatementdata,表示不同步DDL语句;ignoreddl,表示不同步指定 DDL 语句,两者配置其一即可)

(5).property=replicator.filter.ignoreddl.ignore 配置 ignoreddl 时生效, 参数可为所有 DDL 语句或关键字, 如CREATE/DROP 等, 多个用分号隔开

3、安装

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

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

./fspm install


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

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


5、启动KFS

replicator start

查看KFS状态

replicator status

查看服务状态

fsrepctl status

查看KUFL列表

kufl list


贰、目标端KES V8R6

一、安装前置配置

1、创建安装用户

groupadd flysync

useradd flysync -g flysync -G mysql

passwd flysync


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

tar -xzvf KingbaseFlySync-V001R005C002B20210524-replicator.tar.gz


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

vi /etc/hosts

192.168.100.111 oracle

192.168.100.124 kes8-2


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 'password';


2、flysync.ini配置

[defaults]

install-directory=/home/flysync/kesrep

profile-script=~/.bash_profile

rmi-port=11000

[kingbase8]

role=slave

master=oracle

master-kufl-port=3112

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


3、从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


4、安装

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

./fspm install


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

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


6、修改rename文件

vi /home/flysync/kesrep/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

7、启动并初始化

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

source ~/.bash_profile

查看KFS状态

replicator status

查看服务状态

fsrepctl status

查看KUFL列表

kufl list


8、搬迁

--结构搬迁(极速模式)

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


--数据搬迁

loader  -source.user FLYSYNC -source.pass  123456 -source.db TEST -source.dbtype oracle -source.host 192.168.100.111 -source.port 1521 -source.schema test -target.service kingbase8 -mgType 0 -clean

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

评论