当前位置:网站首页>金仓KFS replicator安装(Oracle-KES)
金仓KFS replicator安装(Oracle-KES)
2022-06-24 07:28:00 【沉舟侧畔千帆过_】
KFS replicator安装(Oracle-KES)
壹、源端Oracle RAC
一、安装前置配置
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.117 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、设置归档路径:
RAC的归档路径设置在共享磁盘内
SQL>alter system set log_archive_dest=’+DATA’ scope=spfile sid=’*';
C、然后关闭所有实例,启动1个实例,更改数据库为归档模式:
SQL>shutdown immediate;
SQL>startup mount;
SQL>alter database archivelog;
SQL>alter database open;
SQL>archive log list;
D、启动其他节点,完成归档模式的变更过程。
SQL>startup;
(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
[oracle11rac]
role=master
master=oracle
members=oracle
kufl-port=3112
replication-host=192.168.100.113
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
# 自动恢复尝试次数,系统 OFFLINE 时,尝试将系统重新置于ONLINE状态的次数
repl_auto_recovery_max_attempts=100
# 系统 OFFLINE 时,尝试 ONLINE 之前的等待时间,s(秒)、m(分钟)、h(小时)
repl_auto_recovery_delay_interval=30s
# 系统自动恢复次数重置时间,s(秒)、m(分钟)、h(小时)
repl_auto_recovery_reset_interval=300s
注意:
(1). oracle-extractor-method 设置为 logminer(数据抽取方式)
(2). replication-host=192.168.100.113,连接的数据库IP如果为RAC的VIP地址,可以不用配置集群参数,但必须配置重连重试参数。
# 自动恢复尝试次数,系统 OFFLINE 时,尝试将系统重新置于ONLINE状态的次数
repl_auto_recovery_max_attempts=100
# 系统 OFFLINE 时,尝试 ONLINE 之前的等待时间,s(秒)、m(分钟)、h(小时)
repl_auto_recovery_delay_interval=30s
# 系统自动恢复次数重置时间,s(秒)、m(分钟)、h(小时)
repl_auto_recovery_reset_interval=300s
如果连接的数据库IP配置的是真实的IP地址,则必须配置下列集群参数:
#开启集群
property=replicator.datasource.global.connectionSpec.use_cluster=true
#集群其他节点的IP地址,有多个节点使得逗号隔开
property=replicator.datasource.global.connectionSpec.slave_add=192.168.100.111,192.168.100.112
#集群其他节点对应的网络端口,有多个节点使用逗号隔开,并与上面的IP地址要一一对应
property=replicator.datasource.global.connectionSpec.slave_port=1521,1521
(3).replication-user=FLYSYNC,用户名必须配置为大写
(4). replicator.extractor.dbms.scnSegmentationThreshold=5000,logminer 查询数据的阈值(当 Flysync 软件刚启动时,会查询到最早开启归档日志的 Scn 号,如果最早的 Scn 号与当前数据库的 Scn 号跨度很大的话,会严重影响数据库的性能,所以设置此阈值),默认值为 5000
(5). svc-extractor-filters 表示是否同步 DDL 语句(默认值:dropstatementdata,表示不同步 DDL 语句)
(6). property=replicator.extractor.dbms.tablePatterns 进行表过滤,FLYSYNC.*,TEST.T2表示同步FLYSYNC模式下所有表和 TEST 模式下 T2 表多个规则采用逗号 (,) 分割
(7). 若配置了 property=replicator.extractor.dbms.tablePatterns 进行表过滤参数时,请确保将 flysync 使用的数据库用户下的心跳表加入 tablePatterns 参数中,即:若使用 flysync 使用的数据库用户为KINGBASE, 待同步的用户模式为 TEST,则应配置
property=replicator.extractor.dbms.tablePatterns=KINGBASE.*,TEST.*
(8). 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
[oracle11rac]
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
#集群配置
property=replicator.datasource.global.connectionSpec.use_cluster=true
property=replicator.datasource.global.connectionSpec.slave_add=192.168.100.112
property=replicator.datasource.global.connectionSpec.slave_port=1521
#ASM配置
property=replicator.datasource.oracle_redo.connectionSpec.asm_user=asmfly
property=replicator.datasource.oracle_redo.connectionSpec.asm_password=Flyl234
property=replicator.datasource.oracle_redo.connectionSpec.asm_serviceName=+ASM
#重连重试配置
repl_auto_recovery_max_attempts=100
repl_auto_recovery_delay_interval=30s
repl_auto_recovery_reset_interval=300s
注意:
(1) oracle-extractor-method设置为redo。
REDO解析方式,如果没有使用ASM存储,KFS 必须和数据库处于同一台物理机器;如果使用ASM存储,可以分离部署。
(2) 采用ASM存储方式,必须配置ASM参数:
#ASM用户,此用户必须要有sysasm权限
property=replicator.datasource.oracle_redo.connectionSpec.asm_user=asmfly
#ASM用户密码
property=replicator.datasource.oracle_redo.connectionSpec.asm_password=Flyl234
#ASM侦听服务名
property=replicator.datasource.oracle_redo.connectionSpec.asm_serviceName=+ASM
连接asm的用户,要求具有sysasm权限。
创建asm用户的方法:
su - grid
sqlplus / as sysasm
SQL> create user asmfly identified by 123456;
SQL> GRANT SYSASM TO asmfly;
(3) replication-host,连接的数据库IP如果为RAC的VIP地址,可以不用配置集群参数,但必须配置重连重试参数。
# 自动恢复尝试次数,系统 OFFLINE 时,尝试将系统重新置于ONLINE状态的次数
repl_auto_recovery_max_attempts=100
# 系统 OFFLINE 时,尝试 ONLINE 之前的等待时间,s(秒)、m(分钟)、h(小时)
repl_auto_recovery_delay_interval=30s
# 系统自动恢复次数重置时间,s(秒)、m(分钟)、h(小时)
repl_auto_recovery_reset_interval=300s
如果连接的数据库IP配置的是真实的IP地址,则必须配置下列集群参数:
#开启集群
property=replicator.datasource.global.connectionSpec.use_cluster=true
#集群其他节点的IP地址,有多个节点使得逗号隔开
property=replicator.datasource.global.connectionSpec.slave_add=192.168.100.111,192.168.100.112
#集群其他节点对应的网络端口,有多个节点使用逗号隔开,并与上面的IP地址要一一对应
property=replicator.datasource.global.connectionSpec.slave_port=1521,1521
(4) replication-user=FLYSYNC,用户名必须配置为大写
(5) replicator.extractor.dbms.keepMixDML 在开启同步 DDL 后生效,主要针对 create table as 类型语句,同时产生 DDL 和 DML,可以通过 replicator.extractor.dbms.keepMixDML 来确认是否保留 DML,true为保留,false 为不保留,默认为 false。
(6) svc-extractor-filters=dropstatementdata,ignoreddl(默认值:dropstatementdata,表示不同步DDL语句;ignoreddl,表示不同步指定 DDL 语句,两者配置其一即可)
(7) 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-V001R006C003B20211213-replicator.tar.gz
3、配置将hosts文件,将源端和目标端服务器都加上去
vi /etc/hosts
192.168.100.117 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-2
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-V001R006C003B20211213-replicator/extensions/jdbc
cp kingbase8-8.6.0.jar /home/flysync/KingbaseFlySync-V001R006C003B20211213-replicator/flysync-replicator/lib
4、安装
cd /home/flysync/KingbaseFlySync-V001R006C003B20211213-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
边栏推荐
- [e325: attention] VIM editing error
- 打印出来的对象是[object object],解决方法
- 玄铁E906移植----番外0:玄铁C906仿真环境搭建
- Opencv daily function structure analysis and shape descriptor (7) finding polygon (contour) / rotating rectangle intersection
- “不平凡的代理初始值设定不受支持”,出现的原因及解决方法
- 数组相向指针系列
- Database to query the quantity of books lent in this month. If it is higher than 10, it will display "more than 10 books lent in this month". Otherwise, it will display "less than 10 books lent in thi
- Scheme of alcohol concentration tester based on single chip microcomputer
- "I can't understand Sudoku, so I choose to play Sudoku."
- 2138. 将字符串拆分为若干长度为 k 的组
猜你喜欢

Data middle office: middle office architecture and overview

Database migration from PostgreSQL to MySQL

阿里资深软件测试工程师推荐测试人员必学——安全测试入门介绍

YOLOX backbone——CSPDarknet的实现

【MySQL从入门到精通】【高级篇】(一)字符集的修改与底层原理

Squid代理服务器应用

嵌入式 | 硬件转软件的几条建议
![[pytoch basic tutorial 31] youtubednn model analysis](/img/18/dbeab69894583f6e5230772ce44652.png)
[pytoch basic tutorial 31] youtubednn model analysis

Digital cloud released the 2022 white paper on digital operation of global consumers in the beauty industry: global growth solves marketing problems

China chip Unicorn Corporation
随机推荐
2138. 将字符串拆分为若干长度为 k 的组
216. combined summation III enumeration method
【LeetCode】387. 字符串中的第一个唯一字符
数据中台:数据治理概述
Opencv maximum filtering (not limited to images)
基于QingCloud的地理信息企业研发云解决方案
怎么把mdf和ldf文件导入MySQL workbench中
What is SRE? A detailed explanation of SRE operation and maintenance system
数据中台:数据中台技术架构详解
“论解不了数独所以选择做个数独游戏这件事”
Leetcode -- wrong set
1528. rearrange strings
MySQL | view notes on Master Kong MySQL from introduction to advanced
Liunx Mysql安装
陆奇:我现在最看好这四大技术趋势
Double pointer analog
数据中台:中台架构及概述
Data midrange: detailed explanation of the technical stack of data acquisition and extraction
Data middle office: overview of data governance
小程序云数据,数据请求一个集合数据的方法