关键字:
KingbaseFlysync、KFS、replicator、同步程序、服务端、flysync.ini、安装部署、金仓数据库、oracle rac、oracle rac安装部署KingbaseFlysync、oracle rac安装部署KFS、oracle rac安装同步程序,logminer
一、概述
Kingbase FlySync支持基于Oracle RAC作为源端的数据同步。KingbaseFlySync现支持基于Oracle RAC作为源端的有2种解析方式,分别为:
(1)redo–直接解析redo日志的方式进行数据解析–对源端性能影响较小–KingbaseFlySync可以控制解析的位置和速度,便于断点续传–解析效率高。
(2)Logminer–基于解析在线日志的形式,由Logminer做日志解析–对源端性能影响较小–KingbaseFlySync可以控制解析的位置和速度,便于断点续传;
本文主要介绍Oracle RAC作为源端logminer解析方式的KFS配置。
Logminer方式解析不需要配置ASM相关参数。
二、安装前准备
前置条件:已经完成Oracle RAC数据库的安装部署
2.1 环境信息
参数名 | 参数值 |
源端数据库IP地址 | 10.10.3.186,10.10,3,187 |
安装KFS同步程序IP地址 | 10.10.3.188 |
Oracle侦听服务名 | ORCL |
Oracle数据库监听端口号 | 1521 |
可用内存 | >4GB |
可用储存空间 | >1GB+7*每日数据增量 |
2.2 端口开放
1、关闭防火墙
1).停止防火墙
service firewalld stop
2).关闭防火墙开启自启动
chkconfig firewalld off
2、若有特殊情况如业务要求需要开启防火墙,则需要保证KFS同步程序所需端口可用,若不可用,可以在后续配置中修改默认端口。
telnet xx.xx.xx.xx 端口号
Kingbase FlySync同步服务运行所需的默认端口如下:
端口 | 描述 |
11000/11001 | KFS远程管理/监控RMI端口 |
3112 | KUFL传输接口 |
2.3 创建KFS同步程序安装用户
假设KFS同步程序安装用户为fly,创建如下(本文设置flysync用户密码为123):
adduser flysync
passwd flysync
2.4 ruby环境配置
上传ruby包到KFS同步程序安装服务器下并解压,ruby版本必须为2.2.2版本:
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 jdk环境配置
上传jdk包到KFS同步程序安装服务器下并解压,jdk的版本必须为1.8版本:
unzip jdk-8u381-linux-x64.tar.gz
然后在KFS同步程序安装用户的环境变量中进行配置
vi ~/.bash_profile
export JAVA_HOME=jdk绝对路径
export PATH=$JAVA_HOME/bin:$PATH
source ~/.bash_profile
2.6安装包准备
准备需要安装的Kingbase FlySync同步程序安装包和license文件。
2.7 Oracle RAC数据库准备
2.7.1 创建用于KFS同步的数据库用户并赋予相应的权限:
1、创建用于KFS同步的数据库用户
CREATE USER FLYSYNC IDENTIFIED BY password
2、用户授权
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;
如果不能够提供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;
2.7.2 开启Oracle数据库的归档日志
1、设置归档路径:
RAC的归档路径设置在共享磁盘内
SQL>alter system set log_archive_dest_1=’+DATADG’ scope=spfile sid=’*';

2、然后关闭全部实例,启动1个实例,更改数据库为归档模式:
srvctl stop database -d orcl
srvctl status database -d orcl
SQL>startup mount;
SQL>alter database archivelog;
SQL>alter database open;
SQL>archive log list;
3、启动其他节点,完成归档模式的变更过程。
SQL>startup;

4、查看所有实例归档开启情况,确认所有归档已开启
SQL> select inst_id,dbid,name,log_mode from gv$database;

2.7.3 开启补全日志
1、检查补全日志的状态
SQL>SELECT supplemental_log_data_min, supplemental_log_data_pk, supplemental_log_data_all FROM v$database;

2、开启补全日志
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 gv$database;

2.7.4 切换日志文件
SQL>ALTER SYSTEM SWITCH LOGFILE;
三、安装执行
3.1 上传并解压KFS同步程序
tar –zxvf KingbaseFlysync-Vxxxxxxxxxxxxxx-replicator.tar.gz

3.2 配置flysync.ini
在安装用户home目录下新建flysync.ini文件,示例如下:
[defaults]
install-directory=/home/flysync/flysync_test
profile-script=~/.bash_profile
rmi-port=11000
[oracle11rac]
role=master
master=10.10.3.188
members=10.10.3.188
kufl-port=3112
replication-host=10.10.3.186
replication-port=1521
replication-user=FLYSYNC
replication-password=123456
datasource-type=oracle
datasource-oracle-service=orcl
oracle-extractor-method=redo
svc-extractor-filters=dropstatementdata
property=replicator.extractor.dbms.tablePatterns=TEST.*,FLYSYNC.*
property=replicator.extractor.dbms.scnSegmentationThreshold=5000
property=replicator.datasource.global.connectionSpec.use_cluster=true
property=replicator.datasource.global.connectionSpec.slave_add=10.10.3.187
property=replicator.datasource.global.connectionSpec.slave_port=1521
参数说明:
[defaults] | |
install-directory=/home/flysync/flysync_test | 同步程序安装目录 |
profile-script=~/.bash_profile | |
rmi-port=11000 | rmi端口号,默认为11000 |
[oracle11rac] | 服务名 |
role=master | 同步角色,源端为master,目标端为slave |
master=10.10.3.188 | 源端服务的安装ip |
members=10.10.3.188 | 本服务的安装ip |
kufl-port=3112 | KUFL端口号 |
replication-host=10.10.3.186 | 数据库ip |
replication-port=1521 | 数据库端口 |
replication-user=FLYSYNC | 数据库用户名 |
replication-password=Pass123456 | 数据库用户密码 |
datasource-type=oracle | 数据库类型 |
oracle-extractor-method=redo | 解析方式 |
svc-extractor-filters=dropstatementdata | 禁止DDL同步 |
property=replicator.extractor.dbms.tablePatterns= TEST.*,FLYSYNC.* | 表过滤 |
property=replicator.extractor.dbms.scnSegmentationThreshold=5000 | 从当前SCN号之前5000个SCN开始解析 |
property=replicator.datasource.global.connectionSpec.use_cluster=true | oracle 数据库是否采用集群连接方式,true 代表采用 |
property=replicator.datasource.global.connectionSpec.slave_add=10.10.3.187 | Oracle RAC 集群其他对外访问的地址,多个地址时采用逗号 (,) 分割,当 use_cluster为 false 时无效 |
property=replicator.datasource.global.connectionSpec.slave_port=1521 | Oracle RAC 集 群 其 他 对 外 访 问 地 址 的 端 口,与上面slave_add参数值一一对应,多个地址时采用逗号 (,) 分割,当 use_cluster为 false 时无效 |
注意:
replicator.extractor.dbms.tablePatterns为表过滤参数,格式为“模式名.表名”;
3.3 执行安装
执行解压目录/tools/下的fspm install

更新环境配置
source ~/.bash_profile
3.4 上传license文件
复制license文件至KFS安装目录

3.5 启动同步程序
replicator start

3.6 查看同步服务情况
fsrepctl services或fsrepctl status(state:online表示服务正常)


四、测试验证
在源端数据库执行以下SQL
SQL>INSERT INTO TEST09.T1 values(1, 1001);
SQL>COMMIT;

执行kufl –service dm list查看解析情况

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




