Kingbase FlySync 安装部署手册

Kingbase FlySync 安装部署手册
Release V1R6
kingbase
Mar 20, 2023

目 录
1 前言 9
1.1 版权声明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.2 免责声明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.3 技术支持 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2 安装前须知 11
2.1 名词解释 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.2 安装包及其重要组件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.3 部署模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.3.1 部署方式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.3.2 部署拓扑 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.3.3 异构部署 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.4 环境要求 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.4.1 支持的操作系统 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.4.2 支持的数据库 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.4.3 内存要求 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.4.4 磁盘要求 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.4.5 Java 环境要求 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.4.6 依赖软件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3 准备安装环境 17
3.1 检查操作系统版本 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.2 检查网络环境和网络端口 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.3 物理机器配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.4 配置用户环境 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.5 时钟同步检查 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.6 系统部署依赖软件检查 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
4 管控平台安装 23
4.1 Linux 平台图形化安装 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3
4.1.1 安装前准备 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
4.1.1.1 操作系统用户 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
4.1.1.2 安装目录 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
4.1.2 安装 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
4.1.2.1 启动安装程序 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
4.1.2.2 简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
4.1.2.3 许可协议 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4.1.2.4 选择授权文件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4.1.2.5 选择安装集 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
4.1.2.6 选择安装文件夹 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.1.2.7 管控平台元数据库配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.1.2.8 比对服务元数据库配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.1.2.9 服务元信息配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
4.1.2.10 预安装摘要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
4.1.2.11 正在安装… . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
4.1.2.12 安装完成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
4.1.2.13 执行 Root.sh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
4.1.3 启动与停止 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
4.1.3.1 服务启动 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
4.1.3.2 服务停止 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
4.1.3.3 服务状态 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
4.2 Linux 平台手动安装 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
4.2.1 安装前准备 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
4.2.2 手动安装 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
4.2.2.1 解压缩手动部署安装包 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
4.2.2.2 元数据库配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
4.2.2.3 高级参数配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
4.2.3 启动与停止 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
4.2.3.1 服务启动 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
4.2.3.2 服务停止 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
4.2.3.3 服务状态 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
4.3 Windows 平台图形化安装 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
4.3.1 安装前准备 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
4.3.2 安装 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
4.3.2.1 启动安装程序 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
4.3.2.2 简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
4.3.2.3 许可协议 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
4.3.2.4 选择授权文件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
4.3.2.5 选择安装集 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
4.3.2.6 选择安装文件夹 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
4.3.2.7 管控平台元数据库配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
4.3.2.8 比对服务元数据库配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
4
4.3.2.9 服务元信息配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
4.3.2.10 预安装摘要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
4.3.2.11 正在安装… . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
4.3.2.12 安装完成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
4.3.3 启动与停止 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
4.3.3.1 服务启动 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
4.3.3.2 服务停止 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
4.4 Windows 平台手动安装 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
4.4.1 安装前准备 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
4.4.2 手动安装 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
4.4.2.1 解压缩手动部署安装包 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
4.4.2.2 元数据库配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
4.4.3 高级参数配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
4.4.4 启动与停止 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
4.4.4.1 服务启动 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
4.4.4.2 服务停止 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
4.4.4.3 服务状态 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
4.5 访问管控平台 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
4.6 控制台配置文件说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
5 同步程序部署 99
5.1 命令行部署 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
5.1.1 同步软件安装 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
5.1.2 源端配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
5.1.2.1 源端 MySQL 配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
5.1.2.2 源端 MariaDB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
5.1.2.3 源端 Oracle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
5.1.2.4 源端 Oracle RAC 集群 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
5.1.2.5 源端 SQL Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
5.1.2.6 源端 KingbaseES V7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
5.1.2.7 源端 KingbaseES V8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
5.1.2.8 源端 KingbaseES V8 读写分离集群 . . . . . . . . . . . . . . . . . . . . . . . . . . 137
5.1.2.9 源端 PostgreSQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
5.1.2.10 源端 PolarDB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
5.1.2.11 源端 DB2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
5.1.2.12 源端达梦 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
5.1.3 目标端配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
5.1.3.1 目标端 MySQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
5.1.3.2 目标端 MariaDB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
5.1.3.3 目标端 Oracle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
5.1.3.4 目标端 Oracle RAC 集群 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
5.1.3.5 目标端 SQL Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
5
5.1.3.6 目标端 KingbaseES V7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
5.1.3.7 目标端 KingbaseES V8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
5.1.3.8 目标端 KingbaseES V8 读写分离集群 . . . . . . . . . . . . . . . . . . . . . . . . . 179
5.1.3.9 目标端 KADB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
5.1.3.10 目标端 PostgreSQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
5.1.3.11 目标端 DM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
5.1.3.12 目标端 KafKa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
5.1.3.13 目标端 Inceptor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
5.1.3.14 目标端 PolarDB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
5.1.3.15 部署 DB2 目标端 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
5.1.3.16 目标端 Gbase8a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
5.2 图形化部署 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
5.2.1 概述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
5.2.2 部署 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
5.2.2.1 前置条件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
5.2.2.2 操作步骤 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
5.2.2.3 约束 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
5.2.3 更新 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
5.2.4 同步程序卸载 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
6 管控平台卸载 223
6.1 Linux 平台卸载 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
6.1.1 卸载 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
6.1.1.1 执行 UninstallRoot.sh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
6.1.1.2 启动卸载 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
6.1.1.3 准备卸载 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
6.1.1.4 确认卸载 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
6.1.1.5 正在卸载 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228
6.1.1.6 完成卸载 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230
6.2 Windows 平台卸载 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232
6.2.1 卸载 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232
6.2.1.1 启动卸载 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
6.2.1.2 准备卸载 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
6.2.1.3 确认卸载 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
6.2.1.4 正在卸载 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
6.2.1.5 完成卸载 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
7 FAQ 237
7.1 关键文件路径及说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
7.2 常见问题及处理方式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
7.3 多服务的配置和测试建议 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255
7.4 预检测异常修复介绍 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256
6
Kingbase FlySync 安装部署手册, Release V1R6
8 附录: 安装目录文件说明 259
目 录 7
Kingbase FlySync 安装部署手册, Release V1R6
8 目 录
第 1 章
前言
1.1 版权声明
人大金仓版权所有,并保留对本手册及本声明的一切权利。未得到人大金仓的书面许可,任何人不得以任何
方式或形式对本手册内的任何部分进行复制、摘录、备份、修改、传播、翻译成其他语言、将其全部或部分
用于商业用途。
1.2 免责声明
本手册内容依据现有信息制作,由于产品版本升级或其他原因,其内容有可能变更。人大金仓保留在没有任
何通知或者提示的情况下对手册内容进行修改的权利。本手册仅作为使用指导,人大金仓在编写本手册时已
尽力保证其内容准确可靠,但并不确保手册内容完全没有错误或遗漏,本手册中的所有信息也不构成任何
明示或暗示的担保。
9
Kingbase FlySync 安装部署手册, Release V1R6
1.3 技术支持
• 人大金仓官方网站: http://www.kingbase.com.cn/ 您可以在官网中获得人大金仓所有产品的资讯信
息,销售联系方式
• 金仓数据同步工具子网站: http://kfs.kingbase.com.cn/ 您可以在产品子网站中获得最新的产品技术
资料、产品故障原因及问题分析、产品的应用解决方案、软件升级资料等等。
• 全国服务热线: 400-601-1188
• 人大金仓技术支持与反馈信箱: support@kingbase.com.cn
10 第 1 章 前言
第 2 章
安装前须知
2.1 名词解释
• CDC :即 Changed Data Capture,增量数据获取。
• Logminer :基于 Oracle 自带 Logminer 形式的增量数据解析
• Redo :基于 Oracle 日志硬解析的增量数据解析
• xlogical : Kingbase ES V7 增量日志解析模块
• xlog : Kingbase ES V8 的 Redo 日志
• KUFL : Kingbase FlySync 的中间数据交换文件
2.2 安装包及其重要组件
• 图形化安装程序
– KingbaseFlySync-V00XR00XC00XBYYYYMMDD-Linux-XXXX.tar.gz
Kingbase FlySync Linux 平台一体化安装包。具体需根据系统架构选择相应的安装包文件。
– KingbaseFlySync-V00XR00XC00XBYYYYMMDD-Windows-XXXX.zip
Kingbase FlySync Windows 平台一体化安装包。
• 手动部署包
11
Kingbase FlySync 安装部署手册, Release V1R6
– KingbaseFlySync-V00XR00XC00XBYYYYMMDD-manager.tar.gz
Kingbase FlySync 服务中心的安装包
– KingbaseFlySync-V00XR00XC00XBYYYYMMDD-console.tar.gz
Kingbase FlySync 管控平台的安装包
– KingbaseFlySync-V00XR00XC00XBYYYYMMDD-compare.tar.gz
Kingbase FlySync 比对服务的安装包
– KingbaseFlySync-V00XR00XC00XBYYYYMMDD-replicator.tar.gz
Kingbase FlySync 同步程序的安装包,该包是压缩后的脚本、部分依赖工具和安装包的集合
• License.dat
Kingbase FlySync 的授权文件,该文件用于软件启动进行授权检查,没有该文件,软件无法启动
• flysync_XXX_YYY.ini
该文件是同步软件的配置文件,用于设置部署不同数据源时涉及的相关参数信息,在同步程序安装包
目录下
KingbaseFlySync-V00XR00XC00XBYYYYMMDD-replicator/flysync-replicator/samples/ini
命名中 XXX 代表具体数据源名称, YYY 用于区分源端或目标端。
注意: 实际使用时需要将其放置在安装用户 $HOME 目录下并将 flysync_XXX_YYY.ini 重命名为
flysync.ini。
2.3 部署模式
2.3.1 部署方式
Kingbase FlySync 部署方式灵活,可满足用户多种需求。主要提供下面两种部署方式:
• Kingbase FlySync 与数据库部署在同一机器上。
• Kingbase FlySync 与数据库分离部署,即不部署在同一机器上。
备注: 1、一般推荐部署方式为分离部署,以保证同步程序与其他应用程序或数据库间不会产生资源竞争。
2、由于 Oracle 提供 redo 及 logminer 两种方式进行增量日志的获取,因受 redo 实现方式所限,若采
用 redo 方式进行数据同步,则需要采用集中部署的方式。
3、 ESV7 兼容模式,也需要采取集中部署的方式。
12 第 2 章 安装前须知
Kingbase FlySync 安装部署手册, Release V1R6
2.3.2 部署拓扑
• 一对一拓扑结构
从一个源端节点同步数据到一个目标端节点。
• 一对多拓扑结构
从一个源端节点同步数据到多个目标端节点。
• 多对一拓扑结构
从多个源端节点同步数据到一个目标端节点。
• 多对多拓扑结构
从多个源端节点同步数据到多个目标端节点。
• 级联
从一个源端节点同步数据到中间节点,再继续同步给下一个目标节点。
2.3.3 异构部署
异构部署是指在两个不同品牌或类型的数据库之间实现同步功能的部署。比如: Oracle 同步到 MySQL。
2.4 环境要求
2.4.1 支持的操作系统

系统发布版状态备注
LinuxRedHat/CentOS首选ReadHat 6.x 和 7.x, CentOS 6.x 和 7.x 全面支持
Linux银河麒麟备选国产飞腾平台特有
Linux中标麒麟备选国产龙芯平台特有
LinuxUOS备选国产鲲鹏平台特有
Linux凝思备选凝思 6.x
Linux湖南麒麟备选

2.4. 环境要求 13
Kingbase FlySync 安装部署手册, Release V1R6
2.4.2 支持的数据库

数据库版本支持情况备注
MySQL5.5 5.7, 8.0
(不包括 JSON 和空间
类型)
首选支持 row based 方式同
步,支持 MyISAM 及
InnoDB 表;
推荐使用 InnoDB 表; 支
持作为源端和目标端
Oracle10g, 11g, 12c首选仅支持企业版数据库,
支持作为源端和目标端
Oracle RAC11g, 12c首选
SQL Server2008, 2014, 2016,
2017
首选需为企业版数据库,支
持源端和目标端
KingbaseV8R2, V8R3, V8R6首选支 持 作 为 源 端 和 目 标
端,支持读写分离集群
Kingbase7.1.2首选支持作为源端和目标端
KADBV1R1首选支持作为目标端
Kafka2.1.0, 2.4.0首选支持作为目标端
达梦V7, V8首选支持作为目标端

2.4.3 内存要求
• 内存要求: 2GB
2.4.4 磁盘要求
• 软件包的磁盘空间要求: 2GB
• 安装路径中的磁盘空间要求: 2GB
• KUFL 文件的磁盘空间要求:实际和具体的运行压力有关,建议: > 20GB
14 第 2 章 安装前须知
Kingbase FlySync 安装部署手册, Release V1R6
2.4.5 Java 环境要求
• Oracle JVM/JDK8
• Open JDK8
2.4.6 依赖软件
以下软件可能在使用 Kingbase FlySync 时用到,若不具备可以按以下地址自行下载。

名称地址
sqlplus安装及下载链接
jdk1.8 版本下载地址
mysql5.7 版本下载地址
8.0 版本下载地址
ruby建议使用系统自带版本,不单独提供下载链接

备注:
1、 sqlplus 主要用于进行数据的授权操作,为非必须依赖;
2、 mysql 可作为管控平台后台元信息库使用,可根据实际情况选择元数据类型采用 mysql 或者 KingbaseES
V8;
3、 ruby 及 jdk 默认情况通过安装包自带,若通过手动安装则需要进行该依赖的安装及配置;
2.4. 环境要求 15
Kingbase FlySync 安装部署手册, Release V1R6
16 第 2 章 安装前须知
第 3 章
准备安装环境
3.1 检查操作系统版本
请用户根据 Kingbase FlySync 的环境支持列表检查并确定操作系统版本符合要求,具体检查方法此处不
赘述。
3.2 检查网络环境和网络端口
Kingbase FlySync 默认使用的端口:

端口备注
11000、 11001Kingbase FlySync 后台节点默认 jmx 监听端口
3112Kingbase FlySync 中间文件交换默认监听端口
8089Kingbsae FlySync 管控平台默认监听端口
8090Kingbsae FlySync 服务中心默认监听端口
8091Kingbsae FlySync 比对服务默认监听端口

为了使需要进行同步的两端设备可以保持正常通信,请确认以上端口检查配置打开,若同步环境存在防火
墙配置,需要确保以上端口通信的畅通。同时需要确保本地 localhost 端到端回环通信连接未受到限制。
17
Kingbase FlySync 安装部署手册, Release V1R6
不同用户环境的安全规则设置各有不同,需要用户另行根据实际情况配置,本文档不作赘述。
3.3 物理机器配置
• 配置系统帐号
Kingbase FlySync 部署之前,需要建立独立的运行帐号.
shell> sudo adduser flysync
如果必要,可以将 Oracle、 MySQL、 Kingbase 的属组赋予 Kingbase FlySync 帐号。
shell> sudo usermod -G mysql,kingbase,oracle flysync
• 使用新帐号登录
执行命令
shell> su - flysync
3.4 配置用户环境
用户环境配置包括对以下几个部分配置检查和确认。
1. 系统属性检查配置
2. hosts 文件配置
3. 特定网络端口配置
• 系统属性检查及配置
ulimit 用于限制 shell 启动进程所占用的资源。因 Kingbase FlySync 在运行时,会需要打开大量的文件
句柄,所以需要检查一下系统相关的 ulimit 属性参数是否能够满足要求:

shell> ulimit -a
core file size
data seg size
file size
max locked memory
max memory size
open files
pipe size
stack size
# 执行该命令,资源限制详情如下
(blocks, -c)
(kbytes, -d)
(blocks, -f)
(kbytes, -l)
(kbytes, -m)
(-n)
(512 bytes, -p)
(kbytes, -s)
0
unlimited
unlimited
unlimited
unlimited
256
1
8192

(continues on next page)
18 第 3 章 准备安装环境
Kingbase FlySync 安装部署手册, Release V1R6
(continued from previous page)
cpu time (seconds, -t) unlimited
max user processes (-u) 709
virtual memory (kbytes, -v) unlimited
Kingbase FlySync 进程涉及的几个限制包括最大文件句柄数( open files)、允许创建的最大进程数量
( max user processes),以上示例表明, open files 和 max user processes 的参数值不符合运营配置要
求,可通过修改 /etc/security/limits.conf 配置文件进行调整。
在文件末尾添加以下内容:
flysync - nofile 65535
mysql - nofile 65535
flysync - nproc 8096
mysql - nproc 8096
其中:
– 第 1 列表示配置的 OS 用户名(根据实际用户修改)
– 第 3 列表示配置的属性(nofile 表示打开文件数, nproc 表示打开的进程数)
– 第 4 列表示配置的数值
完成修改后,退出当前 session,重新登录。再次通过命令“ulimit -a”检查配置是否生效。检查当前系
统的编码类型:
需要注意的是在安装前需要检查当前系统的编码类型设置当前系统的编码为 UTF-8。由于
replicator 的相关配置和日志生成是默认选择的是当前平台的编码类型, 而在存储是 UTF-8 进
行编码。
• hosts 文件配置
为了保证后续系统的正常部署和运行,必须为后续参与同步操作的每个机器配置机器名,修改 /etc/
hosts 文件,
例如:若有 4 个物理设备,需要参与同步操作,配置如下:
127.0.0.1 localhost
192.168.1.60 host1
192.168.1.61 host2
192.168.1.62 host3
192.168.1.63 host4
此外,需要在/etc/sysconfig/network 中设置本机的 hostname 属性值。
示例配置文件如下:
NETWORKING = yes
HOSTNAME = host1
3.4. 配置用户环境 19
Kingbase FlySync 安装部署手册, Release V1R6
最后,分别检查机器的相关配置是否设置成功。可通过下面参考命令进行查询。
– 检查机器名
shell> uname -n
– 确认 IP 地址
shell> hostname --ip-address
– 确认其他机器的 IP 地址是否正确
shell> nslookup host1
shell> ping host1
3.5 时钟同步检查
查看参与数据同步的两端所在物理机器的当前系统时间,需要保证时间彼此一致,否则可能会造成同步程
序工作异常。
3.6 系统部署依赖软件检查
系统安装部署依赖软件检查表(根据实际情况参照):

软件版本备注
ruby1.8.7, 1.9.3, 2.0必须,建议使用 Kingbase FlySync 安装包自带版本
sqlplus涉及 Oracle 数据库的同步部署时,需要具备
jdk1.8 及以上必须
MySQL5.7, 8.0Kingbase FlySync 管控平台运行所需依赖(视情况检查)
KingbaseV8R2, V8R3, V8R6Kingbase FlySync 管控平台运行所需依赖(视情况检查)
DerbyKingbase FlySync 管控平台运行所需依赖(视情况检查)

Important: 如果环境不具备,可参考安装前须知 中的“依赖软件”章节,获取相关下载链接。
Important: 如果是龙芯 3B4000 + UOS 环境,需要在安装前执行如下命令:
20 第 3 章 准备安装环境
Kingbase FlySync 安装部署手册, Release V1R6
cd /usr/lib/mips64el-linux-gnuabi64
ln -s libssl.so.1.1 libssl.so.10
ln -s libcrypto.so.1.1 libcrypto.so.10
3.6. 系统部署依赖软件检查 21
Kingbase FlySync 安装部署手册, Release V1R6
22 第 3 章 准备安装环境
第 4 章
管控平台安装
4.1 Linux 平台图形化安装
4.1.1 安装前准备
执行安装程序前注意事项如下:
• 安装用户对于安装路径需要有“读”、“写”、“执行”的权限。
• Linux 中,需要以非 root 用户执行安装程序。
4.1.1.1 操作系统用户
创建 Kingbase FlySync 安装用户。
• 使用 root 用户登录系统,并执行如下命令创建 flysync 用户;
shell> useradd flysync
• 使用 root 用户,设置 flysync 用户名密码;
shell> passwd flysync
23
Kingbase FlySync 安装部署手册, Release V1R6
• 使用 flysync 用户,上传安装包并解压;
shell> tar -zxvf KingbaseFlySync-V00XR00X*-Linux-x86_64.tar.gz
注意: 其中 KingbaseFlySync-V00XR00X*-Linux-x86_64.tar.gz 是安装包的具体名称,根据实际情况进行
调整。
4.1.1.2 安装目录
Kingbase FlySync 安装过程中有默认的安装目录/opt/KFS,如直接使用 kingbase 用户安装,安装过程中会
提示没有权限,需要将安装目录的权限赋予 kingbase 用户。
• 默认路径
使用 root 用户执行如下命令:
shell> mkdir -p /opt/KFS
shell> chown -R flysync:flysync /opt/KFS
• 自定义安装路径
若自定义安装路径为/home/flysync/KFS,使用 kingbase 用户创建目录的命令如下:
shell> su - flysync
shell> cd /home/flysync
shell> mkdir KFS
4.1.2 安装
Linux 安装过程,包含如下步骤:
1. 启动安装程序
2. 简介
3. 许可协议
4. 选择授权文件
5. 选择安装集
24 第 4 章 管控平台安装
Kingbase FlySync 安装部署手册, Release V1R6
6. 选择安装文件夹
7. 管控平台元数据库配置
8. 比对服务元数据库配置
9. 服务元信息配置
10. 预安装摘要
11. 正在安装…
12. 安装完成
13. 执行 Root.sh
4.1.2.1 启动安装程序
以非 root 用户登录,打开新终端,进入安装程序中 setup.sh 所在目录,以非 root 用户执行如下命令
• 图形界面安装
sh setup.sh 或 sh setup.sh -i swing
• 命令行安装
sh setup.sh -i console
4.1.2.2 简介
在“简介”界面中提供了金仓数据同步工具安装程序基本操作等信息。
• 图形界面
4.1. Linux 平台图形化安装 25
Kingbase FlySync 安装部署手册, Release V1R6
• 命令行
26 第 4 章 管控平台安装
Kingbase FlySync 安装部署手册, Release V1R6
注意: 输入 quit,再按 <ENTER> 退出安装,若无特殊说明,以下各步骤皆与此相同。
4.1.2.3 许可协议
该步骤显示北京人大金仓信息技术股份有限公司许可协议。
• 图形界面
4.1. Linux 平台图形化安装 27
Kingbase FlySync 安装部署手册, Release V1R6
默认不选中“我接受许可协议条款”,【下一步】按钮置灰;只有选中“我接受许可协议条款”后,【下一步】
按钮才有效。
若取消选中“我接受许可协议条款”,则弹出如下对话框。
28 第 4 章 管控平台安装
Kingbase FlySync 安装部署手册, Release V1R6
若点击【退出】按钮,将退出安装程序。
若点击【继续执行】按钮,则回到安装界面,继续安装。
• 命令行
4.1. Linux 平台图形化安装 29
Kingbase FlySync 安装部署手册, Release V1R6
30 第 4 章 管控平台安装
Kingbase FlySync 安装部署手册, Release V1R6
输入 Y 表示接受;输入 N 表示不接受,输入其他无效。若不接受,则提示警告信息:
4.1.2.4 选择授权文件
此步骤用于选择授权文件。若选择的授权文件合法,则显示该授权文件的详细信息。
• 图形界面
4.1. Linux 平台图形化安装 31
Kingbase FlySync 安装部署手册, Release V1R6
进入该步骤【下一步】按钮默认置灰,若授权文件检查通过,【下一步】按钮有效。
授权文件路径默认为空。点击【浏览】按钮以选择授权文件。
• 命令行
32 第 4 章 管控平台安装
Kingbase FlySync 安装部署手册, Release V1R6
用户输入授权文件的绝对路径后,按 <ENTER> 以检查授权文件,若授权文件有效,则进入下一步骤。
4.1.2.5 选择安装集
安装程序提供“完全安装”和“管控平台”、“比对服务”三种安装集,默认选择“完全安装”。
1. “完全安装”——系统将安装管控平台及比对服务功能部件。建议大多数用户采用此选项。。
2. “管控平台”——只安装管控平台功能部件。管控平台为系统主服务,提供同步工具的常规管理功能。
3. “比对服务”——只安比对服务功能部件。比对服务为管控平台增强功能,提供同步数据的比对及比对结
果查看功能。
• 图形界面
4.1. Linux 平台图形化安装 33
Kingbase FlySync 安装部署手册, Release V1R6
• 命令行
34 第 4 章 管控平台安装
Kingbase FlySync 安装部署手册, Release V1R6
注意: 若无特殊说明,以下均以“完全安装”为例说明。
4.1.2.6 选择安装文件夹
此步骤用于选择安装路径。
默认安装路径为: /opt/KFS
• 图形界面
4.1. Linux 平台图形化安装 35
Kingbase FlySync 安装部署手册, Release V1R6
点击【浏览…】按钮,弹出文件选择对话框,由用户选择安装路径。
点击【恢复缺省文件夹】按钮,将安装路径恢复为对应平台的默认安装路径。
• 命令行
36 第 4 章 管控平台安装
Kingbase FlySync 安装部署手册, Release V1R6
4.1.2.7 管控平台元数据库配置
此步骤用于配置管控平台元数据库信息(仅在安装集选择为“完全安装”或者选择“管控平台”安装时配置)。
• 图形界面
4.1. Linux 平台图形化安装 37
Kingbase FlySync 安装部署手册, Release V1R6
选择元数据类型并配置其相关信息后点击【下一步】。
• 命令行
38 第 4 章 管控平台安装
Kingbase FlySync 安装部署手册, Release V1R6
4.1. Linux 平台图形化安装 39
Kingbase FlySync 安装部署手册, Release V1R6
4.1.2.8 比对服务元数据库配置
此步骤用于配置比对服务元数据库信息(仅在安装集选择为“完全安装”或者选择“比对服务”安装时配置)。
• 图形界面
40 第 4 章 管控平台安装
Kingbase FlySync 安装部署手册, Release V1R6
• 命令行
4.1. Linux 平台图形化安装 41
Kingbase FlySync 安装部署手册, Release V1R6
4.1.2.9 服务元信息配置
此步骤用于配置“管控平台”及“比对服务”的服务元信息。
• 图形界面
42 第 4 章 管控平台安装
Kingbase FlySync 安装部署手册, Release V1R6
• 命令行
4.1. Linux 平台图形化安装 43
Kingbase FlySync 安装部署手册, Release V1R6
若“管控平台元信息库”及“比对服务元信息库”选择非 Kingbase 数据库时,需要指定管控平台默认支持的
Kingbase 数据版本。
• 图形界面
44 第 4 章 管控平台安装
Kingbase FlySync 安装部署手册, Release V1R6
• 命令行
4.1. Linux 平台图形化安装 45
Kingbase FlySync 安装部署手册, Release V1R6
4.1.2.10 预安装摘要
此步骤用于在安装前显示即将安装产品的摘要信息。包括:
1. 产品名;
2. 安装文件夹;
3. 磁盘空间信息;
• 图形界面
46 第 4 章 管控平台安装
Kingbase FlySync 安装部署手册, Release V1R6
• 命令行
4.1. Linux 平台图形化安装 47
Kingbase FlySync 安装部署手册, Release V1R6
4.1.2.11 正在安装…
此步骤用于显示安装进度。
• 图形界面
48 第 4 章 管控平台安装
Kingbase FlySync 安装部署手册, Release V1R6
• 命令行
4.1. Linux 平台图形化安装 49
Kingbase FlySync 安装部署手册, Release V1R6
4.1.2.12 安装完成
此步骤用于显示安装结果,及后续操作。
• 图形界面
50 第 4 章 管控平台安装
Kingbase FlySync 安装部署手册, Release V1R6
• 命令行
4.1. Linux 平台图形化安装 51
Kingbase FlySync 安装部署手册, Release V1R6
4.1.2.13 执行 Root.sh
此步骤为 Linux 特有步骤。
1. 打开新终端;
2. 切换到 root 用户;
3. 运行 < 安装目录 >/scripts/Root.sh;
注意: Linux 中执行 Root.sh 成功后,安装过程完整结束并且启动相关服务。
4.1.3 启动与停止
Kingbase FlySync 服务的启动与停止通过命令行方式操作。
52 第 4 章 管控平台安装
Kingbase FlySync 安装部署手册, Release V1R6
4.1.3.1 服务启动
• 启动管控平台
1. 打开新终端;
2. 切换到 root 用户;
3. cd 到 < 安装目录 >,执行如下操作;
./manager/bin/fsmanager start
./console/bin/fsconsole start
./compare/bin/fscompare start
注意: 启动顺序请按上述顺序启动。
4.1.3.2 服务停止
• 停止管控平台
1. 打开新终端;
2. 切换到 root 用户;
3. cd 到 < 安装目录 >,执行如下操作;
./manager/bin/fsmanager stop
./console/bin/fsconsole stop
./compare/bin/fscompare stop
4.1.3.3 服务状态
• 管控平台状态查看
1. 打开新终端;
2. cd 到 < 安装目录 >,执行如下操作;
./manager/bin/fsmanager status
./console/bin/fsconsole status
./compare/bin/fscompare status
4.1. Linux 平台图形化安装 53
Kingbase FlySync 安装部署手册, Release V1R6
4.2 Linux 平台手动安装
4.2.1 安装前准备
管控平台依赖的 Jave 运行环境
• Oracle JDK8/JRE8
• OpenJDK 8
管控平台后台元信息库
• Derby(内置数据库,仅支持 console)
• MySQL
– MySQL 5.5 (推荐)
– MySQL 5.7 (需要设置)
– MySQL 8.0
• KingbaseES
– KingbaseES V8R2
– KingbaseES V8R3
手动部署包含三部分
• Kingbase FlySync manager 服务中心;
• Kingbase FlySync console 管理控制台;
• Kingbase FlySync compare 比对服务;
4.2.2 手动安装
管控平台手动部署采用独立的压缩包发布
1. KingbaseFlySync-V00XR00XC00XBYYYYMMDD-manager.tar.gz
2. KingbaseFlySync-V00XR00XC00XBYYYYMMDD-console.tar.gz
3. KingbaseFlySync-V00XR00XC00XBYYYYMMDD-compare.tar.gz
54 第 4 章 管控平台安装
Kingbase FlySync 安装部署手册, Release V1R6
4.2.2.1 解压缩手动部署安装包
管控平台采用独立的压缩包发布,直接通过命令行解压即可。
shell> tar -zxvf KingbaseFlySync-V00XR00XC00XBYYYYMMDD-console.tar.gz
shell> tar -zxvf KingbaseFlySync-V00XR00XC00XBYYYYMMDD-manager.tar.gz
shell> tar -zxvf KingbaseFlySync-V00XR00XC00XBYYYYMMDD-compare.tar.gz
4.2.2.2 元数据库配置
• 控制台元数据库配置。
控制台元数据库支持内置 Derby、 MySQL 及 KingbaseES V8 作为后台元数据库。其数据配置方式如下:
– 使用内置 Derby 数据库:
使用 Derby 作为元信息库运行控制台,此时仅需修改 spring.profiles.active 的参数为 derby 即可。
修改方式为使用 vim 直接编辑 flysync-console.jar 文件。
找到:
BOOT-INF/classes/application.properties
打开后修改:
spring.profiles.active 的参数为 derby
– 使用 KingbaseES V8 数据库:
1. 创建元数据库
CREATE DATABASE "flysync-console";
2. 将 Kingbase 库的 sql 文件 flysync-console-kingbase.sql 导入到 KingbaseESV8 的库中 (要导
入到 V8 库的默认模式下,默认为 PUBLIC),其中 ${USER}、 ${PASSWORD}、 ${sql 文件路径}
根据实际情况修改。 flysync-console-kingbase.sql 默认在解压后根目录下。
./ksql -U ${USER} -W ${PASSWORD} -d flysync-console -p 54321 -f ${sql 文件路径};
注意:
使用 KingbaseES 作为元信息库运行控制台,此时需修改数据库连接地址,修改方式为使用 vim
直接编辑 flysync-console.jar 文件。
找到:
BOOT-INF/classes/application-kingbase.properties
4.2. Linux 平台手动安装 55
Kingbase FlySync 安装部署手册, Release V1R6
打开后修改:
spring.datasource.url
spring.datasource.username
spring.datasource.password
使其符合实际环境即可。
例如:
spring.datasource.url=jdbc:kingbase8://127.0.0.1:54321/FLYSYNC_CONSOLE?
,→database=:oracle:
spring.datasource.username=SYSTEM
spring.datasource.password=manager
找到:
BOOT-INF/classes/application.properties
打开后修改:
spring.profiles.active 的参数为 kingbase
– 使用 MySQL 数据库:
1. 配置 MySQL 的控制文件 my.cnf,确保加入以下几行后重启
lower_case_table_names=1
init-connect='SET NAMES utf8'
character-set-server = utf8
default-time-zone = '+8:00'
show_compatibility_56=on # MySQL 5.7 及以后的版本
2. 创建元数据库
CREATE DATABASE `flysync-console`;
3. 创建用户并授权
CREATE USER `flysync`@`%` IDENTIFIED BY '123456';
GRANT ALL ON `flysync-console`.* TO `flysync`@`%` WITH GRANT OPTION;
SET PASSWORD FOR `flysync`@`%` = '123456';
4. 导入元信息,其中 ${USER}、 ${PASSWORD}、 ${sql 文件地址}、 ${HOST} 根据实际情况修改。
flysync-console-mysql.sql 默认在解压后根目录下。
56 第 4 章 管控平台安装
Kingbase FlySync 安装部署手册, Release V1R6
mysql -u ${USER} -p ${PASSWORD} -h ${HOST} flysync-console < ${sql 文件地址}
注意:
使用 MySQL 作为元信息库运行管控平台,此时需修改数据库连接地址,修改方式为使用 vim 直
接编辑 flysync-console.jar 文件。
找到:
BOOT-INF/classes/application-pro.properties
打开后修改:
spring.datasource.url
spring.datasource.username
spring.datasource.password
使其符合实际环境即可。
例如:
spring.datasource.url=jdbc:mysql://127.0.0.1: 3306/flysync_console?useUnicode=true&
,→characterEncoding=utf8&useSSL=false&&zeroDateTimeBehavior=convertToNull&
,→serverTimezone=Asia/Shanghai
spring.datasource.username=root
spring.datasource.password=123456
找到:
BOOT-INF/classes/application.properties
打开后修改:
spring.profiles.active 的参数为 pro
• 比对服务元数据库配置。
比对服务元数据库支持内置 MySQL 及 KingbaseES V8 作为后台元数据库。其数据配置方式如下:
– 使用 KingbaseES V8 数据库:
1. 创建元数据库
CREATE DATABASE "flysync-compare";
2. 将 Kingbase 库的 sql 文件 flysync-compare-kingbase.sql 导入到 KingbaseESV8 的库中 (要导
入到 V8 库的默认模式下,默认为 PUBLIC),其中 ${USER}、 ${PASSWORD}、 ${sql 文件路径}
根据实际情况修改。 flysync-console-kingbase.sql 默认在解压后根目录下。
4.2. Linux 平台手动安装 57
Kingbase FlySync 安装部署手册, Release V1R6
./ksql -U ${USER} -W ${PASSWORD} -d flysync-compare -p 54321 -f ${sql 文件路径};
注意:
使用 KingbaseES 作为元信息库运行控制台,此时需修改数据库连接地址,修改方式为使用 vim
直接编辑 flysync-compare.jar 文件。
找到:
BOOT-INF/classes/application-kingbase.properties
打开后修改:
spring.datasource.url
spring.datasource.username
spring.datasource.password
使其符合实际环境即可。
例如:
spring.datasource.url=jdbc:kingbase8://127.0.0.1:54321/FLYSYNC_COMPARE?
,→database=:oracle:
spring.datasource.username=SYSTEM
spring.datasource.password=manager
找到:
BOOT-INF/classes/application.properties
打开后修改:
spring.profiles.active 的参数为 kingbase
放置 jdbc 到 lib 目录下:
cp extensions/jdbc/kingbase8-8.2.0.jar lib/
V8R6 选择 kingbase8-8.6.0.jar
– 使用 MySQL 数据库:
1. 配置 MySQL 的控制文件 my.cnf,确保加入以下几行后重启
lower_case_table_names=1
init-connect='SET NAMES utf8'
character-set-server = utf8
(continues on next page)
58 第 4 章 管控平台安装
Kingbase FlySync 安装部署手册, Release V1R6
(continued from previous page)
default-time-zone = '+8:00'
show_compatibility_56=on # MySQL 5.7 及以后的版本
2. 创建元数据库
CREATE DATABASE `flysync-compare`;
3. 创建用户并授权
CREATE USER `flysync`@`%` IDENTIFIED BY '123456';
GRANT ALL ON `flysync-compare`.* TO `flysync`@`%` WITH GRANT OPTION;
SET PASSWORD FOR `flysync`@`%` = '123456';
4. 导入元信息,其中 ${USER}、 ${PASSWORD}、 ${sql 文件地址}、 ${HOST} 根据实际情况修改。
flysync-console-mysql.sql 默认在解压后根目录下。
mysql -u ${USER} -p ${PASSWORD} -h ${HOST} flysync-compare < ${sql 文件地址};
注意:
使用 MySQL 作为元信息库运行比对服务平台,此时需修改数据库连接地址,修改方式为使用
vim 直接编辑 flysync-compare.jar 文件。
找到:
BOOT-INF/classes/application-pro.properties
打开后修改:
spring.datasource.url
spring.datasource.username
spring.datasource.password
使其符合实际环境即可。
例如:
spring.datasource.url=jdbc:mysql://127.0.0.1: 3306/flysync_compare?useUnicode=true&
,→characterEncoding=utf8&useSSL=false&&zeroDateTimeBehavior=convertToNull&
,→serverTimezone=Asia/Shanghai
spring.datasource.username=root
spring.datasource.password=123456
找到:
4.2. Linux 平台手动安装 59
Kingbase FlySync 安装部署手册, Release V1R6
BOOT-INF/classes/application.properties
打开后修改:
spring.profiles.active 的参数为 pro
4.2.2.3 高级参数配置
编辑 flysync-console.jar 及 flysync-compare.jar 包中的 BOOT-INF/classes/application.properties,修改以下
参数:
1. kfs.client.address 修改为本机 ip 地址
2. eureka.instance.instance-id 修改为本机 ip 地址和 server.port 中的端口(即:服务对外端口),格式
为: 192.x.x.x:8091
4.2.3 启动与停止
4.2.3.1 服务启动
• Kingbase FlySync 的管控平台启动命令
./bin/fsmanager start
./bin/fsconsole start
./bin/fscompare start
4.2.3.2 服务停止
• Kingbase FlySync 的管控平台停止命令
./bin/fsmanager stop
./bin/fsconsole stop
./bin/fscompare stop
4.2.3.3 服务状态
• Kingbase FlySync 的管控平台状态查看命令
./bin/fsmanager status
./bin/fsconsole status
./bin/fscompare status
注意:
60 第 4 章 管控平台安装
Kingbase FlySync 安装部署手册, Release V1R6
1. 执行”启动”、”停止”以及”状态查看”命令时,均需 cd 至各自的安装路径中(即:解压缩路径);
2. 启动顺序为:服务中心 -> 管理控制台 -> 比对服务;
3. 管控平台启动后,日志保存路径。
• 服务中心
解压路径/log/fsmanagersvc.log # 服务运行信息,包括终端输出,故障重启等
解压路径/log/flysync-manager.log # 服务中心内部日志
• 管理控制台
解压路径/log/fsconsolesvc.log # 服务运行信息,包括终端输出,故障重启等
解压路径/log/flysync-console.log # 管理控制台平台内部日志
• 比对服务
解压路径/log/fscomparesvc.log # 服务运行信息,包括终端输出,故障重启等
解压路径/log/flysync-compare.log # 比对服务内部日志
4.3 Windows 平台图形化安装
4.3.1 安装前准备
执行安装程序前注意事项如下:
• 安装用户对于安装路径需要有“读”、“写”、“执行”的权限。
• Windows 7 及以上的操作系统,需要使用管理员身份安装,否则安装程序可能出现问题。
4.3.2 安装
Windows 安装过程,包含如下步骤:
1. 启动安装程序
2. 简介
3. 许可协议
4. 选择授权文件
5. 选择安装集
6. 选择安装文件夹
4.3. Windows 平台图形化安装 61
Kingbase FlySync 安装部署手册, Release V1R6
7. 管控平台元数据库配置
8. 比对服务元数据库配置
9. 服务元信息配置
10. 预安装摘要
11. 正在安装…
12. 安装完成
4.3.2.1 启动安装程序
右键以管理员身份运行 setup.bat,或以管理员身份打开终端,进入安装程序中 setup.bat 所在目录,执行
如下命令。
• 图形界面安装
setup.bat 或 setup.bat -i swing
• 命令行安装
setup.bat -i console
4.3.2.2 简介
在“简介”界面中提供了金仓数据同步工具安装程序基本操作等信息。
• 图形界面
62 第 4 章 管控平台安装
Kingbase FlySync 安装部署手册, Release V1R6
• 命令行
4.3. Windows 平台图形化安装 63
Kingbase FlySync 安装部署手册, Release V1R6
注意: 输入 quit,再按 <ENTER> 退出安装,若无特殊说明,以下各步骤皆与此相同。
4.3.2.3 许可协议
该步骤显示北京人大金仓信息技术股份有限公司许可协议。
• 图形界面
64 第 4 章 管控平台安装
Kingbase FlySync 安装部署手册, Release V1R6
默认不选中“我接受许可协议条款”,【下一步】按钮置灰;只有选中“我接受许可协议条款”后,【下一步】
按钮才有效。
若取消选中“我接受许可协议条款”,则弹出如下对话框。
4.3. Windows 平台图形化安装 65
Kingbase FlySync 安装部署手册, Release V1R6
若点击【退出】按钮,将退出安装程序。
若点击【继续执行】按钮,则回到安装界面,继续安装。
• 命令行
66 第 4 章 管控平台安装
Kingbase FlySync 安装部署手册, Release V1R6
输入 Y 表示接受;输入 N 表示不接受,输入其他无效。若不接受,则提示警告信息:
4.3. Windows 平台图形化安装 67
Kingbase FlySync 安装部署手册, Release V1R6
4.3.2.4 选择授权文件
此步骤用于选择授权文件。若选择的授权文件合法,则显示该授权文件的详细信息。
• 图形界面
68 第 4 章 管控平台安装
Kingbase FlySync 安装部署手册, Release V1R6
进入该步骤【下一步】按钮默认置灰,若授权文件检查通过,【下一步】按钮有效。
授权文件路径默认为空。点击【浏览】按钮以选择授权文件。
• 命令行
4.3. Windows 平台图形化安装 69
Kingbase FlySync 安装部署手册, Release V1R6
用户输入授权文件的绝对路径后,按 <ENTER> 以检查授权文件,若授权文件有效,则进入下一步骤。
4.3.2.5 选择安装集
安装程序提供“完全安装”和“管控平台”、“比对服务”三种安装集,默认选择“完全安装”。
1. “完全安装”——系统将安装管控平台及比对服务功能部件。建议大多数用户采用此选项。。
2. “管控平台”——只安装管控平台功能部件。管控平台为系统主服务,提供同步工具的常规管理功能。
3. “比对服务”——只安比对服务功能部件。比对服务为管控平台增强功能,提供同步数据的比对及比对结
果查看功能。
• 图形界面
70 第 4 章 管控平台安装
Kingbase FlySync 安装部署手册, Release V1R6
• 命令行
4.3. Windows 平台图形化安装 71
Kingbase FlySync 安装部署手册, Release V1R6
注意: 若无特殊说明,以下均以“完全安装”为例说明。
4.3.2.6 选择安装文件夹
此步骤用于选择安装路径。
默认安装路径为: C:\KFS
• 图形界面
72 第 4 章 管控平台安装
Kingbase FlySync 安装部署手册, Release V1R6
点击【浏览…】按钮,弹出文件选择对话框,由用户选择安装路径。
点击【恢复缺省文件夹】按钮,将安装路径恢复为对应平台的默认安装路径。
• 命令行
4.3. Windows 平台图形化安装 73
Kingbase FlySync 安装部署手册, Release V1R6
4.3.2.7 管控平台元数据库配置
此步骤用于配置管控平台元数据库信息(仅在安装集选择为“完全安装”或者选择“管控平台”安装时配置)。
• 图形界面
74 第 4 章 管控平台安装
Kingbase FlySync 安装部署手册, Release V1R6
选择元数据类型并配置其相关信息后点击【下一步】。
• 命令行
4.3. Windows 平台图形化安装 75
Kingbase FlySync 安装部署手册, Release V1R6
76 第 4 章 管控平台安装
Kingbase FlySync 安装部署手册, Release V1R6
4.3.2.8 比对服务元数据库配置
此步骤用于配置比对服务元数据库信息(仅在安装集选择为“完全安装”或者选择“比对服务”安装时配置)。
• 图形界面
4.3. Windows 平台图形化安装 77
Kingbase FlySync 安装部署手册, Release V1R6
• 命令行
78 第 4 章 管控平台安装
Kingbase FlySync 安装部署手册, Release V1R6
4.3.2.9 服务元信息配置
此步骤用于配置“管控平台”及“比对服务”的服务元信息。
• 图形界面
4.3. Windows 平台图形化安装 79
Kingbase FlySync 安装部署手册, Release V1R6
• 命令行
80 第 4 章 管控平台安装
Kingbase FlySync 安装部署手册, Release V1R6
若“管控平台元信息库”及“比对服务元信息库”选择非 Kingbase 数据库时,需要指定管控平台默认支持的
Kingbase 数据版本。
• 图形界面
4.3. Windows 平台图形化安装 81
Kingbase FlySync 安装部署手册, Release V1R6
• 命令行
82 第 4 章 管控平台安装
Kingbase FlySync 安装部署手册, Release V1R6
4.3.2.10 预安装摘要
此步骤用于在安装前显示即将安装产品的摘要信息。包括:
1. 产品名;
2. 安装文件夹;
3. 磁盘空间信息;
• 图形界面
4.3. Windows 平台图形化安装 83
Kingbase FlySync 安装部署手册, Release V1R6
• 命令行
84 第 4 章 管控平台安装
Kingbase FlySync 安装部署手册, Release V1R6
4.3.2.11 正在安装…
此步骤用于显示安装进度。
• 图形界面
4.3. Windows 平台图形化安装 85
Kingbase FlySync 安装部署手册, Release V1R6
• 命令行
86 第 4 章 管控平台安装
Kingbase FlySync 安装部署手册, Release V1R6
4.3.2.12 安装完成
此步骤用于显示安装结果,及后续操作。
• 图形界面
4.3. Windows 平台图形化安装 87
Kingbase FlySync 安装部署手册, Release V1R6
• 命令行
88 第 4 章 管控平台安装
Kingbase FlySync 安装部署手册, Release V1R6
4.3.3 启动与停止
Kingbase FlySync 服务的启动与停止通过命令行方式操作。
4.3.3.1 服务启动
• 启动管控平台
1. 打开开始菜单【金仓数据同步工具 Kingbase FlySync】;
2. 选择【管控平台】;
3. 点击【启动管控平台】;
• 启动比对服务
1. 打开开始菜单【金仓数据同步工具 Kingbase FlySync】;
2. 选择【比对服务】;
3. 点击【启动比对服务】;
4.3. Windows 平台图形化安装 89
Kingbase FlySync 安装部署手册, Release V1R6
4.3.3.2 服务停止
• 停止管控平台
1. 打开开始菜单【金仓数据同步工具 Kingbase FlySync】;
2. 选择【管控平台】;
3. 点击【停止管控平台】;
• 停止比对服务
1. 打开开始菜单【金仓数据同步工具 Kingbase FlySync】;
2. 选择【比对服务】;
3. 点击【停止比对服务】;
4.4 Windows 平台手动安装
4.4.1 安装前准备
管控平台依赖的 Jave 运行环境
• Oracle JDK8/JRE8
管控平台后台元信息库
• Derby(内置数据库,仅支持 console)
• MySQL
– MySQL 5.5 (推荐)
– MySQL 5.7 (需要设置)
– MySQL 8.0
• KingbaseES
– KingbaseES V8R2
– KingbaseES V8R3
手动部署包含三部分
• Kingbase FlySync manager 服务中心;
• Kingbase FlySync console 控制台;
• Kingbase FlySync compare 比对服务;
90 第 4 章 管控平台安装
Kingbase FlySync 安装部署手册, Release V1R6
4.4.2 手动安装
管控平台手动部署采用独立的压缩包发布
1. KingbaseFlySync-V00XR00XC00XBYYYYMMDD-manager.tar.gz
2. KingbaseFlySync-V00XR00XC00XBYYYYMMDD-console.tar.gz
3. KingbaseFlySync-V00XR00XC00XBYYYYMMDD-compare.tar.gz
4.4.2.1 解压缩手动部署安装包
管控平台采用独立的压缩包发布,直接通过解压缩软件解压即可。
4.4.2.2 元数据库配置
• 控制台元数据库配置。
控制台元数据库支持内置 Derby、 MySQL 及 KingbaseES V8 作为后台元数据库。其数据配置方式如下:
– 使用内置 Derby 数据库:
使用 Derby 作为元信息库运行控制台,此时仅需修改 spring.profiles.active 的参数为 derby 即可。
修改方式通过解压缩软件编辑 flysync-console.jar 文件。
找到:
BOOT-INF/classes/application.properties
打开后修改:
spring.profiles.active 的参数为 derby
– 使用 KingbaseES V8 数据库:
1. 创建元数据库
CREATE DATABASE "flysync-console";
1. 将 Kingbase 库的 sql 文件 flysync-console-kingbase.sql 导入到 KingbaseESV8 的库中 (要导
入到 V8 库的默认模式下,默认为 PUBLIC),其中 ${USER}、 {PASSWORD}、 {sql 文件路径} 根
据实际情况修改。
ksql.exe -U ${USER} -W ${PASSWORD} -d flysync-console -p 54321 -f ${sql 文件路径};
注意:
使用 KingbaseES 作为元信息库运行控制台,此时需修改数据库连接地址,修改方式为通过解压
缩软件编辑 flysync-console.jar 文件。
4.4. Windows 平台手动安装 91
Kingbase FlySync 安装部署手册, Release V1R6
找到:
BOOT-INF/classes/application-kingbase.properties
打开后修改:
spring.datasource.url
spring.datasource.username
spring.datasource.password
使其符合实际环境即可。
找到:
BOOT-INF/classes/application.properties
打开后修改:
spring.profiles.active 的参数为 kingbase
放置 jdbc 到 lib 目录下:
cp extensions/jdbc/kingbase8-8.2.0.jar lib/
V8R6 选择 kingbase8-8.6.0.jar
– 使用 MySQL 数据库:
1. 配置 MySQL 的控制文件 my.cnf,确保加入以下几行后重启
lower_case_table_names=1
init-connect='SET NAMES utf8'
character-set-server = utf8
default-time-zone = '+8:00'
show_compatibility_56=on # MySQL 5.7 及以后的版本
1. 创建元数据库
CREATE DATABASE `flysync-console`;
1. 创建用户并授权
CREATE USER `flysync`@`%` IDENTIFIED BY '123456';
GRANT ALL ON `flysync-console`.* TO `flysync`@`%` WITH GRANT OPTION;
SET PASSWORD FOR `flysync`@`%` = '123456';
1. 导入元信息,其中 ${USER}、 ${PASSWORD}、 ${sql 文件地址} 根据实际情况修改。
92 第 4 章 管控平台安装
Kingbase FlySync 安装部署手册, Release V1R6
mysql.exe -u ${USER} -p ${PASSWORD} -h 地址 flysync-console < ${sql 文件地址}
注意:
使用 MySQL 作为元信息库运行管控平台,此时需修改数据库连接地址,修改方式为通过解压缩
软件编辑 flysync-console.jar 文件。
找到:
BOOT-INF/classes/application-pro.properties
打开后修改:
spring.datasource.url
spring.datasource.username
spring.datasource.password
使其符合实际环境即可。
找到:
BOOT-INF/classes/application.properties
打开后修改:
spring.profiles.active 的参数为 pro
• 比对服务元数据库配置。
比对服务元数据库支持内置 MySQL 及 KingbaseES V8 作为后台元数据库。其数据配置方式如下:
– 使用 KingbaseES V8 数据库:
1. 创建元数据库
CREATE DATABASE "flysync-compare";
1. 将 Kingbase 库的 sql 文件 flysync-compare-kingbase.sql 导入到 KingbaseESV8 的库中 (要导
入到 V8 库的默认模式下,默认为 PUBLIC), 其中 ${USER}、 ${PASSWORD}、 ${sql 文件路径}
根据实际情况修改。
ksql.exe -U ${USER} -W ${PASSWORD} -d flysync-compare -p 54321 -f ${sql 文件路径};
注意:
使用 KingbaseES 作为元信息库运行控制台,此时需修改数据库连接地址,修改方式为通过解压
缩软件编辑 flysync-compare.jar 文件。
找到:
4.4. Windows 平台手动安装 93
Kingbase FlySync 安装部署手册, Release V1R6
BOOT-INF/classes/application-kingbase.properties
打开后修改:
spring.datasource.url
spring.datasource.username
spring.datasource.password
使其符合实际环境即可。
找到:
BOOT-INF/classes/application.properties
打开后修改:
spring.profiles.active 的参数为 kingbase
– 使用 MySQL 数据库:
1. 配置 MySQL 的控制文件 my.cnf,确保加入以下几行后重启
lower_case_table_names=1
init-connect='SET NAMES utf8'
character-set-server = utf8
default-time-zone = '+8:00'
show_compatibility_56=on # MySQL 5.7 及以后的版本
1. 创建元数据库
CREATE DATABASE `flysync-compare`;
1. 创建用户并授权
CREATE USER `flysync`@`%` IDENTIFIED BY '123456';
GRANT ALL ON `flysync-compare`.* TO `flysync`@`%` WITH GRANT OPTION;
SET PASSWORD FOR `flysync`@`%` = '123456';
1. 导入元信息,其中 ${USER}、 ${PASSWORD}、 ${sql 文件地址} 根据实际情况修改。
mysql.exe -u ${USER} -p ${PASSWORD} -h 地址 flysync-compare < ${sql 文件地址};
注意:
使用 MySQL 作为元信息库运行管控平台,此时需修改数据库连接地址,修改方式为通过解压缩
软件编辑 flysync-compare.jar 文件。
找到:
94 第 4 章 管控平台安装
Kingbase FlySync 安装部署手册, Release V1R6
BOOT-INF/classes/application-pro.properties
打开后修改:
spring.datasource.url
spring.datasource.username
spring.datasource.password
使其符合实际环境即可。
找到:
BOOT-INF/classes/application.properties
打开后修改:
spring.profiles.active 的参数为 pro
4.4.3 高级参数配置
编辑 flysync-console.jar 包中的 BOOT-INF/classes/application.properties,修改以下参数:
1. kfs.client.address 本机的 ip 地址
4.4.4 启动与停止
4.4.4.1 服务启动
• Kingbase FlySync 的管控平台启动命令
bin\fsmanager start
bin\fsconsole start
bin\fscompare start
4.4.4.2 服务停止
• Kingbase FlySync 的管控平台停止命令
bin\fsmanager stop
bin\fsconsole stop
bin\fscompare stop
4.4. Windows 平台手动安装 95
Kingbase FlySync 安装部署手册, Release V1R6
4.4.4.3 服务状态
• Kingbase FlySync 的管控平台状态查看命令
bin\fsmanager status
bin\fsconsole status
bin\fscompare status
注意:
1. 执行”启动”、”停止”以及”状态查看”命令时,均需使用命令行方式 CD 至各自的安装路径中执行(即:解
压缩路径);
2. 启动顺序为:服务中心 -> 管理控制台 -> 比对服务;
3. 管控平台启动后,日志保存路径。
• 服务中心
解压路径\log\fsmanagersvc.log # 服务运行信息,包括终端输出,故障重启等
解压路径\log\flysync-manager.log # 服务中心内部日志
• 管理控制台
解压路径\log\fsconsolesvc.log # 服务运行信息,包括终端输出,故障重启等
解压路径\log\flysync-console.log # 管理控制台平台内部日志
• 比对服务
解压路径\log\fscomparesvc.log # 服务运行信息,包括终端输出,故障重启等
解压路径\log\flysync-compare.log # 比对服务内部日志
4.5 访问管控平台
启动管控平台后,默认登录地址为
http://管控平台所在机器 IP 地址:8089/
注若安装过程修改了管控平台端口,请以实际为准。
默认帐号密码为
admin/admin
96 第 4 章 管控平台安装
Kingbase FlySync 安装部署手册, Release V1R6
4.6 控制台配置文件说明
• threadpool.properties
– task.pool.corePoolSize:线程池的基本线程数,默认 5 条
– task.pool.maxPoolSize:线程池允许的最大线程数,当缓存线程池存满时,会开启并行的最
大线程数,默认 12 条
– task.pool.queueCapacity:缓存线程池,当基本线程数达到指定值,会进入缓存区,默认值
60 条。
• syssetting.properties
– syssetting.writeThread:一条流水线(读取、比对、写入)中,写入的时间相对较长,需要开
启写入并发线程,默认 5 条。
• COMPARE application.properties
– replicateBatchSize: 设置比对同步事务处理量大小,默认 10000,在比对同步大数据量时,
防止内存溢出时设置。
4.6. 控制台配置文件说明 97
Kingbase FlySync 安装部署手册, Release V1R6
98 第 4 章 管控平台安装
第 5 章
同步程序部署
5.1 命令行部署
5.1.1 同步软件安装
1. 创建 flysync.ini 配置文件
安装前需要先在当前安装用户的 HOME 目录下创建 flysync.ini 配置文件。 Kingbase FlySync 安装包中
提供了 flysync.ini 的文件模板,用户可根据实际情况修改相关参数。
注: Kingbase FlySync 针对不同数据库的部署配置会略有不同,具体配置操作可参见相关章节。
2. 解压 Kingbase FlySync 安装包文件
Kingbase FlySync 软件包采用压缩包的形式发布,安装时只需要解压软件包即可。
tar xvf KingbaseFlySync-V00XR00XC00XBYYYYMMDD-replicator.tar.gz
3. 执行 Kingbase FlySync 安装部署命令
进入 Kingbase FlySync 解压目录,执行安装部署命令。
./tool/fspm install
4. 安装产品 License 授权文件
99
Kingbase FlySync 安装部署手册, Release V1R6
执行安装部署命令后,需将产品提供的 license.dat 文件复制到 flysync.ini 中 install-directory 所定义的
目录下。
${install-directory}/license.dat
Important:
• 在部署时数据库应开启监听,以保证部署正常进行。
• 在 ini 中配置的用户名需要具备相关权限或采用 DBA 权限,因为部署时需要对数据库进行建表及查询
系统表、系统视图等操作。
• 在 ini 中配置服务名推荐填写小写字母,不支持特殊字符。
• 执行 fspm install 安装前请确保 flysync.ini 配置文件已编辑完成,并放置在当前用户 $HOME 目录下。
5.1.2 源端配置
源端配置一般包括:数据库配置及 Kingbase FlySync 软件安装部署配置。
1. 数据库配置
由于 FlySync 进行数据通过过程需要借助数据库的部分特性,因此在进行数据同步软件安装部署前,
需要调整数据库相关参数。具体调整参数参见各数据源相关配置章节。
2. Kingbase FlySync 软件安装部署配置
Kingbase FlySync 软件安装部署配置主要针对 flysync.ini 文件进行配置。
公共配置参数说明:

名称含义
user软件安装用户
install-directory软件的安装路径
profile-script环境变量文件
rmi-port=11000RMI 远程访问端口

基础配置参数说明:
100 第 5 章 同步程序部署
Kingbase FlySync 安装部署手册, Release V1R6

名称含义
[server_name]服务名
skip-validation-check跳过检查项
role同步角色,源端为 master
master主节点的机器名或 IP(源端填写本机的机器名或 IP)
members当前节点的机器名或 IP
kufl-portKUFL 端口,默认 3112
replication-host数据库 ip 地址
replication-port数据库端口
replication-user数据库连接帐号
replication-password数据库连接密码
datasource-type数据库类型, 可为 oracle,mysql,mssql,kingbase
svc-extractor-filters源端过滤器
property额外属性,具体参见 property 相关配置参数说明

重连重试配置参数说明:

名称含义
repl_auto_recovery_max_attempts自动恢复尝试次数,系统 OFFLINE 时,尝试将系统
重新置于 ONLINE 状态的次数
repl_auto_recovery_delay_interval系统 OFFLINE 时,尝试 ONLINE 之前的等待时间,
s(秒)、 m(分钟)、 h(小时)
repl_auto_recovery_reset_interval系统自动恢复次数重置时间, s(秒)、 m(分钟)、 h(小
时)

KUFL 健壮性增强配置参数说明:

名称含义
replicator.store.kufl.enableKuflRWControl是否开启协调机制,值域 true/false
replicator.store.kufl.fsyncOnFlush是否每个 event 在 flush 时,都需要 fsync,值域
true/false
replicator.store.kufl.ignoreCheckEpochNumber是否检查 epochNumber,值域 true/false

事务拆分合并配置参数说明:

名称含义
replicator.extractor.dbms.minRowsPerBlock单事务最大数据行数,默认为 500

其他配置参数说明:
5.1. 命令行部署 101
Kingbase FlySync 安装部署手册, Release V1R6

名称含义
replicator.extractor.dbms.minSleepTime两次获取增量时,默认的等待时间,秒
replicator.extractor.dbms.sleepAdditiona等待时间间隔的递增量,秒
replicator.extractor.dbms.maxSleepTime最大等待间隔

5.1.2.1 源端 MySQL 配置
概述
Kingbase Flysync 从 V1R1 版本开始,支持基于 MySQL 作为源端的数据同步,可支持的 MySQL 版本为:
• 5.7, 8.0
本文以下部分对基于 MySQL 作为源端时的部署过程进行阐述。
MySQL 数据库配置
1. MySQL 系统参数配置
MySQL 的数据库配置文件需要进行修改,配置文件默认名称为 my.cnf
在 my.cnf 配置文件中加入以下内容
[mysqld]

character-set-server
binlog_format
default-time-zone
server-id
log-bin
= utf8
= ROW
= '+08:00'
= 1
= mysql-bin

配置完成后需执行 service mysqld restart 以重启 MySQL 服务使配置生效。
注意: 若源端为 MySQL 8.0 及以上版本,目标端为 MySQL5.X 版本,请确保源端编码未使用
utf8mb4。否则将导致目标端不支持。
参考配置:在 my.cnf 中添加以下内容
[client]
default-character-set= utf8
[mysqld]
character-set-server= utf8
若源端 MySQL 采用分离部署 KFS,参考配置:在 my.cnf 中添加以下内容
102 第 5 章 同步程序部署
Kingbase FlySync 安装部署手册, Release V1R6
[mysqld]
net_write_timeout=3600
2. 连接帐号配置
建立帐号并给予相应的权限
mysql> CREATE USER flysync@'%' IDENTIFIED BY 'password';
mysql> GRANT ALL ON *.* TO flysync@'%' WITH GRANT OPTION;
注意事项:
含有大数据量表时,需修改临时表空间大小限制。可通过 my.cnf 修改配置信息
tmp_table_size = 256M # 临时表大小
max_heap_table_size = 256M # 内存表大小
以上配置信息需结合实际环境中表的 ibd 文件最大值进行配置修改,系统默认 16M,修改后需
重启 mysql 生效
Kingbase FlySync 同步软件部署
Kingbase FlySync 的配置文件的默认路径为 ($HOME/flysync.ini)
配置文件中的参数含义参见下表

名称含义
skip-validation-check忽略检测
datasource-mysql-confmy.cnf 文件的路径
preferred-path连接源端 mysql 数据库的客户端所在的目录

property 属性的名称和含义见下表

名称含义
replicator.filter.replicate.do=test.*,test2.t2同步 test 数据库中的所有表,和 test2 库的 t2
表。多个规则使用逗号( ,)分隔
replicator.extractor.dbms.serverId=1KFS 解析 MySQL 模拟为备机的唯一标识

skip-validation-check 属性的名称和含义见下表

名称含义
MySQLDumpCheck忽略 mysql_dump 程序检查
MySQLPermissionsCheck忽略用户权限检查

5.1. 命令行部署 103
Kingbase FlySync 安装部署手册, Release V1R6
示例配置文件和部署结果
示例配置文件内容
[defaults]
install-directory=/home/flysync/flysync_test
profile-script=~/.bash_profile
rmi-port=11000
preferred-path=/home/flysync/mysql-8.0.16-linux-glibc2.12-x86_64/bin
[mysql]
skip_validation_check=MySQLDumpCheck,MySQLPermissionsCheck
role=master
master=flysync-1
members=flysync-1
kufl-port=3112
replication-host=192.168.11.31
replication-port=3306
replication-user=root
replication-password=password
datasource-type=mysql
datasource-mysql-conf=/home/flysync/mysql-8.0.16-linux-glibc2.12-x86_64/my.cnf
property=replicator.extractor.dbms.serverId=1
enable-heterogeneous-master=true
svc-extractor-filters=dropstatementdata,replicate
property=replicator.filter.dbselector.db=test
property=replicator.filter.replicate.do=test.*,flysync_mysql8_0.*
注意:
• 配置 MySQL 作为源端时, MySQLDumpCheck 需要将 mysql 的 bin 路径放到 PATH 环境
变量中
• install-directory 要保证该目录是一个空目录,不包含任何内容
• 示例中的配置内容,在实际配置时,需用户根据实际环境进行修改
• 源端 MySQL 与 Kingbase FlySync 分离部署时,所在节点需要有源端 MySQL 的配置文件
my.cnf 和连接源端 MySQL 的客户端
• preferred-path 用于添加附加路径到 PATH 环境变量中,需配置在 defaults 下
• 源端 MySQL 与 MySQL 数据库节点 serverId 必须不重复,唯一,如遇到与数据库冲突,可
通过修改 ini 配置文件 serverId 来解决
运行 Kingbase FlySync 部署命令
104 第 5 章 同步程序部署
Kingbase FlySync 安装部署手册, Release V1R6
./tools/fspm install
Kingbase Flysync 部署结果
[flysync@flysync-1 KingbaseFlySync-V00XR00XC00XBXXXXXXXX]$ ./tools/fspm install
NOTE>> Log output being sent to /tmp/flysync/flysync-configure.log
....
WARN>> flysync_1 >> ntpd is not running. It is important that configured
hosts have time synchronised. (NtpdRunningCheck)
WARN>> flysync_1 >> Linux swappiness is currently set to 60, on restart
it will be 60,consider setting this to 10 or under to avoid
swapping. (SwappinessCheck)
....
#####################################################################
# Next Steps
#####################################################################
Unless automatically started, you must start the flysync services before the
cluster will be available.
/tmp/flysyncSQLServer/flysync/cluster-home/bin/startall
Wait a minute for the services to start up and configure themselves.After
that you may proceed.
Once your services start successfully replication will begin.
To look at services and perform administration, run the following command
from any database server.
/tmp/flysyncSQLServer/flysync/flysync-replicator/bin/fsrepctl services
Configuration is now complete.For further information, please consult
flysync documentation.
NOTE>> Command successfully completed
以上,表示已经完成了 Kingbase Flysync 源端支持 MySQL 的部署
Note: NTP(网络时间协议) 未开启,安装时系统会警告,但不影响系统运行。 swappiness 参数默认 60,
表示内存使用到 100%-60%=40% 的时候,开始出现有交换分区的使用, swappiness 值越小内存的使用率
越高。
在部署 Kingbase Flysync 的时候,系统会检测 swappiness 值的设置,并以警告形式展示,不影响系统运行。
5.1. 命令行部署 105
Kingbase FlySync 安装部署手册, Release V1R6
WARN>> flysync_1>>ntpd is not running. It is important that configured
hosts have time synchronised.(NtpdRunningCheck)
WARN>> flysync_1>>Linux swappiness is currently set to 60, on restart it
will be 60, consider setting this to 10 or under to avoid
swapping.(SwappinessCheck)
常见问题
1. MySQL 8.0 报错
unable to load authentication plugin 'caching_sha2_password'
开启 MySQL 8.0 的 native_password 插件
ALTER USER your_user_name IDENTIFIED WITH mysql_native_password
2. MySQL 5.5 以上,配置时报连接不上数据库,可使用以下命令重新配置 MySQL 的密码
CREATE USER 'root'@'%' IDENTIFIED BY 'password';
GRANT ALL ON *.* TO 'root'@'%' WITH GRANT OPTION;
SET PASSWORD FOR 'root'@'%' = 'password';
3. 部署时报错, binlog_format 必须是 ROW
The MySQL datasource binlog_format must be set to 'ROW' for heterogenous␣
,→replication.
(RowBasedBinaryLoggingCheck)
解决办法
• 检查 my_print_defaults 命令是否在 PATH 中
• 检查 my.cnf 文件是否在默认路径( /etc/my.cnf 或者 /etc/mysql/my.cnf),如果不在,
就需要设置 datasource-mysql-conf 到 my.cnf 的路径
4. MySQL 修改过 binlog 文件前缀 (默认前缀为 mysql-bin),如按以下修改 my.cnf,安装启动 KFS 后,再
次重启会报错
[mysqld]
log-bin=mysql-bi
解决办法
• ini 添加 property=replicator.extractor.dbms.binlog_file_pattern=mysql-bi,更新 KFS,重
新启动
106 第 5 章 同步程序部署
Kingbase FlySync 安装部署手册, Release V1R6
5.1.2.2 源端 MariaDB
概述
Kingbase Flysync 从 V1R6 版本开始,支持基于 MariaDB 作为源端的数据同步,可支持的 MariaDB 版本为:
• 5.5
本文以下部分对基于 MariaDB 作为源端时的部署过程进行阐述。
MariaDB 数据库配置
1. MariaDB 系统参数配置
MariaDB 的数据库配置文件需要进行修改,配置文件默认名称为 my.cnf
在 my.cnf 配置文件中加入以下内容
[mysqld]

character-set-server
binlog_format
default-time-zone
server-id
log-bin
= utf8
= ROW
= '+08:00'
= 1
= mysql-bin

配置完成后需执行 service mysqld restart 以重启 MariaDB 服务使配置生效。
2. 连接帐号配置
建立帐号并给予合适的权限
mysql> CREATE USER flysync@'%' IDENTIFIED BY 'password';
mysql> GRANT ALL ON *.* TO flysync@'%' WITH GRANT OPTION;
注意事项:
1. 含有大数据量表时,需修改临时表空间大小限制。可通过 my.cnf 修改配置信息
tmp_table_size = 256M //临时表大小
max_heap_table_size = 256M //内存表大小
以上配置信息需结合实际环境中表的 ibd 文件最大值进行配置修改,系统默认 16M,
修改后重启 mariadb 生效
5.1. 命令行部署 107
Kingbase FlySync 安装部署手册, Release V1R6
Kingbase FlySync 同步软件部署
Kingbase Flysync 的配置文件的默认路径为 ($HOME/flysync.ini)
配置文件中的参数含义参见下表

名称含义
skip-validation-check忽略检测
datasource-mysql-confmy.cnf 文件的路径
preferred-path访问 mariaDB 的客户端路径
mysql-driverjdbc 的 url 使用 mariadb(默认值为 mariadb)

property 属性的名称和含义见下表

名称含义
replicator.filter.replicate.do=test.*,test2.t2同步 test 数据库中的所有表,和 test2 库的 t2
表。多个规则使用逗号( ,)分割

skip-validation-check 属性的名称和含义见下表

名称含义
MySQLDumpCheck忽略 mysql_dump 程序检查
MySQLPermissionsCheck忽略用户权限检查

示例配置文件和部署结果
示例配置文件如下
[defaults]
install-directory=/home/flysync/flysync_test
profile-script=~/.bash_profile
rmi-port=11000
preferred-path=/usr/local/mysql/bin
[mariadb]
skip_validation_check=MySQLDumpCheck,MySQLPermissionsCheck
role=master
master=flysync-2
members=flysync-2
kufl-port=3112
replication-host=192.168.11.31
(continues on next page)
108 第 5 章 同步程序部署
Kingbase FlySync 安装部署手册, Release V1R6
(continued from previous page)
replication-port=3306
replication-user=root
replication-password=password
datasource-type=mysql
mysql-driver=mariadb
datasource-mysql-conf=/usr/local/mysql/my.cnf
enable-heterogeneous-master=true
svc_extractor_filters=dropstatementdata,replicate
property=replicator.filter.dbselector.db=test
property=replicator.filter.replicate.do=test.*,flysync_mysql.*
注意:
• 配置 MariaDB 作为源端时, MySQLDumpCheck 需要将 mariadb 的 bin 路径放到 PATH 环境
变量中
• install-directory 要保证该目录是一个空目录,不包含任何内容
• 示例中的配置内容,在实际配置时,需用户根据实际环境进行修改
• 源端 MariaDB 与 Kingbase FlySync 分离部署时,所在节点需要有源端 MariaDB 的配置文件
my.cnf 和连接源端 MariaDB 的客户端
• preferred-path 用于添加附加路径到 PATH 环境变量中,需配置在 defaults 下
运行 Kingbase Flysync 部署命令
./tools/fspm install
Flysync 部署结果
[flysync@flysync-1 KingbaseFlySync-V00XR00XC00XBXXXXXXXX]$ ./tools/fspm install
NOTE>> Log output being sent to /tmp/flysync/flysync-configure.log
....
WARN>> flysync_1 >> ntpd is not running. It is important that configured
hosts have time synchronised. (NtpdRunningCheck)
WARN>> flysync_1 >> Linux swappiness is currently set to 60, on restart
it will be 60,consider setting this to 10 or under to avoid
swapping. (SwappinessCheck)
....
#####################################################################
# Next Steps
#####################################################################
Unless automatically started, you must start the flysync services before the
cluster will be available.
(continues on next page)
5.1. 命令行部署 109
Kingbase FlySync 安装部署手册, Release V1R6
(continued from previous page)
/tmp/flysyncSQLServer/flysync/cluster-home/bin/startall
Wait a minute for the services to start up and configure themselves.After
that you may proceed.
Once your services start successfully replication will begin.
To look at services and perform administration, run the following command
from any database server.
/tmp/flysyncSQLServer/flysync/flysync-replicator/bin/fsrepctl services
Configuration is now complete.For further information, please consult
flysync documentation.
NOTE>> Command successfully completed
以上,表示已经完成了 Kingbase Flysync 源端支持 MariaDB 的部署
Note: NTP(网络时间协议) 未开启,安装时系统会警告,但不影响系统运行。 swappiness 参数默
认 60,表示内存使用到 100%-60%=40% 的时候,开始出现有交换分区的使用, swappiness 值
越小内存的使用率越高。在部署 Kingbase Flysync 的时候,系统会检测 swappiness 值的设置,
并以警告形式展示,不影响系统运行。
WARN>> flysync_1>>ntpd is not running. It is important that configured
hosts have time synchronised.(NtpdRunningCheck)
WARN>> flysync_1>>Linux swappiness is currently set to 60, on restart it
will be 60, consider setting this to 10 or under to avoid
swapping.(SwappinessCheck)
常见问题
1. MariaDB 5.5 以上,配置时报连接不上数据库,可使用以下命令重新配置 MariaDB 的密码
CREATE USER 'root'@'%' IDENTIFIED BY 'password';
GRANT ALL ON *.* TO 'root'@'%' WITH GRANT OPTION;
SET PASSWORD FOR 'root'@'%' = 'password';
2. 部署时报错, binlog_format 必须是 ROW
110 第 5 章 同步程序部署
Kingbase FlySync 安装部署手册, Release V1R6
The MySQL datasource binlog_format must be set to 'ROW' for heterogenous␣
,→replication.
(RowBasedBinaryLoggingCheck)
解决办法为
• 检查 my_print_defaults 命令是否在 PATH 中
• 检查 my.cnf 文件是否在默认路径( /etc/my.cnf 或者 /etc/mysql/my.cnf),如果不在,
就需要设置 datasource-mysql-conf 到 my.cnf 的路径
5.1.2.3 源端 Oracle
概述
Kingbase FlySync 支持基于 Oracle 作为源端的数据同步,可支持的 Oracle 版本为:
• Oracle 10g, Oracle 11g, Oracle 12c
本文以下部分对基于 Oracle 作为源端时的部署过程进行阐述。
Kingbase FlySync 现支持基于 Oracle 作为源端的数据同步有 2 种运行方式(依赖于 Oracle 所支持的方式),
分别为:
• Logminer
– 基于解析在线日志的形式,由 Logminer 做日志解析
– 对源端性能影响较小
– Kingbase FlySync 可以控制解析的位置和速度,便于断点续传
• redo
– 直接解析 redo 日志的方式进行数据解析
– 对源端性能影响较小
– Kingbase FlySync 可以控制解析的位置和速度,便于断点续传
– 解析效率高
Logminer 相关配置
Oracle Logminer 数据库配置
1. 创建 Logminer 用户并赋予相应的权限:
假设 Logminer 用户为 FLYSYNC,如果能够提供 DBA 权限,那么该用户应该赋予的权限包括:
5.1. 命令行部署 111
Kingbase FlySync 安装部署手册, Release V1R6
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;
假设 Logminer 用户为 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;
GRANT SELECT ON V_$LOGMNR_LOGS TO FLYSYNC;
GRANT SELECT ON V_$LOGMNR_PARAMETERS TO FLYSYNC;
GRANT SELECT ON V_$PARAMETER TO FLYSYNC;
备注说明:
• Oracle 12c 版本的数据库在创建用户时与其他版本不同,创建的用户名有以下两种
形式:
112 第 5 章 同步程序部署
Kingbase FlySync 安装部署手册, Release V1R6
FLYSYNC:没有安装插接式数据库( pdb)的形式;
C##FLYSYNC:安装插接式数据库( pdb)的形式;
2. 安装 Logminer(如果没有安装 Logminer 需要在 sqlplus 中执行下面的语句(均需要用 sys 管理员执
行))工具,
命令如下( 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 数据库相应的目录中有则必须执行;如果
没有则可忽略
3. 开启 Oracle 数据库的归档日志(必须开启)了,具体步骤如下:
• 检查是否归档已经开启
SQL> select log_mode from v$database;
LOG_MODE
------------
NOARCHIVELOG
• 开启归档(需要重启数据库)
SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup mount
ORACLE 例程已经启动。
数据库装载完毕。
SQL> alter database archivelog;
数据库已更改。
SQL> alter database open;
数据库已更改。
• 再次查看数据库归档情况
SQL> select log_mode from v$database;
LOG_MODE
(continues on next page)
5.1. 命令行部署 113
Kingbase FlySync 安装部署手册, Release V1R6
(continued from previous page)
------------
ARCHIVELOG
4. 开启补全日志
• 检查补全日志的状态
SQL> SELECT supplemental_log_data_min, supplemental_log_data_pk,
2 supplemental_log_data_all FROM v$database;
SUPPLEME SUP SUP
-------- --- ---
NO NO NO
• 开启补全日志 (建议在 MOUNT 模式下执行)
SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
Database altered.
SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY) COLUMNS;
Database altered.
SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
Database altered.
• 再次检查补全日志的状态
SQL> SELECT supplemental_log_data_min, supplemental_log_data_pk,
2 supplemental_log_data_all FROM v$database;
SUPPLEME SUP SUP
-------- --- ---
YES YES YES
5. 切换日志文件
SQL> ALTER SYSTEM SWITCH LOGFILE;
System altered
6. 若使用插接式数据库(pdb)
使用 sys 用户登录 sqlplus,查看所有 pdb 状态,并将使用的 pdb 开启, 例如 orclpdb
SQL> select con_id,dbid,name,open_mode from v$pdbs;
SQL> alter pluggable database orclpdb open;
114 第 5 章 同步程序部署
Kingbase FlySync 安装部署手册, Release V1R6
Kingbase FlySync 同步软件部署
Kingbase FlySync 配置文件: ($HOME/flysync.ini)
[defaults]
install-directory=/home/flysync/flysync_test
profile-script=~/.bash_profile
rmi-port=11000
[oracle11g]
role=master
master=flysync-1
members=flysync-1
kufl-port=3112
replication-host=192.168.9.52
replication-port=1523
replication-user=FSTET_430
replication-password=password
datasource-type=oracle
oracle-extractor-method=logminer
datasource-oracle-service=orcl
svc-extractor-filters=dropstatementdata
property=replicator.extractor.dbms.tablePatterns=FSTEST_430.*,TEST.T2
property=replicator.extractor.dbms.scnSegmentationThreshold=5000
property=replicator.datasource.global.catalogPrefix=false
注意:
1. oracle-extractor-method 设置为 logminer(数据抽取方式)
2. replicator.extractor.dbms.scnSegmentationThreshold logminer 查询数据的阈值(当 Flysync 软件刚启
动时,会查询到最早开启归档日志的 Scn 号,如果最早的 Scn 号与当前数据库的 Scn 号跨度很大的
话,会严重影响数据库的性能,所以设置此阈值),默认值为 5000
3. svc-extractor-filters 表示是否同步 DDL 语句(默认值: dropstatementdata,表示不同步 DDL 语句)
4. property=replicator.extractor.dbms.tablePatterns 进 行 表 过 滤, FSTEST_430.*,TEST.T2 表 示 同 步
FSTEST_430 模式下所有表和 TEST 模式下 T2 表多个规则采用逗号 (,) 分割
5. 若配置了 property=replicator.extractor.dbms.tablePatterns 进行表过滤参数时,请确保将 flysync 使
用的数据库用户下的心跳表加入 tablePatterns 参数中,即:若使用 flysync 使用的数据库用户为
KINGBASE, 待同步的用户模式为 TEST,则应配置
• property=replicator.extractor.dbms.tablePatterns=KINGBASE.*,TEST.*
6. replicator.datasource.global.catalogPrefix KFS 系统表是否按服务名增加前缀 (serviceName_), 配置后
需要考虑由于 KFS 系统表的表名改变,导致目标端 casetransform 和 replicate 过滤器会对系统表生
效,详细见 FAQ
5.1. 命令行部署 115
Kingbase FlySync 安装部署手册, Release V1R6
• 解决方法一:先配置 rename,再配置 casetransform 和 replicate 过滤器
• 解决方法二:配置 casetransform 后, rename 按照 casetransform 后的进行配置
Kingbase FlySync 部署结果
[flysync@flysync-2KingbaseFlySync-V001R002B1214]$./tools/fspm install
NOTE>>Log output being sent to /tmp/flysync/flysync-configure.log
....
WARN>> flysync_1>>ntpd is not running. It is important that configured
hosts have time synchronised.(NtpdRunningCheck)
WARN>> flysync_1>>Linux swappiness is currently set to 60, on restart
it will be 60,consider setting this to 10 or under to avoid
swapping.(SwappinessCheck)
...
#####################################################################
#Next Steps
#####################################################################
Unless automatically started, you must start the Flysync services before the
cluster will be available.
/home/flysync/flysync_test/flysync/cluster-home/bin/startall
Wait a minute for the services to start upand configure themselves. After
that you may proceed.
Once your services start successfully replication will begin.
To look at service sand perform administration, run the following command
from any database server.
/home/flysync/flysync_test/flysync/flysync-replicator/bin/fsrepctl services
Configurationis now complete. For further information, please consult
Flysync documentation.
NOTE>>Commandsuccessfully completed
116 第 5 章 同步程序部署
Kingbase FlySync 安装部署手册, Release V1R6
注意事项
1. Kingbase FlySync 软件支持 Oracle 数据库的 Logminer 方式进行数据同步, Oracle 支持 Logminer 的版
本有:
• 10g
• 11g
• 12c
2. 生产环境中,对 Oracle 数据库的安装要求:
Kingbase FlySync 软件在同步数据时,将需要同步的数据以 KUFL 数据文件的形式存储到指定的数据
目录下。
数据目录说明:
• Kingbase FlySync 将所有要同步的数据都存储到此目录,所以此目录中的数据会占用大量的磁盘
空间,因此需要为此数据目录设置合理的定期清除 KUFL 数据文件策略,防止 KUFL 数据文件过
多占满磁盘空间,导致 Kingbase FlySync 软件无法同步数据
• 了解每天需要同步大概的数据量,根据实际的业务使用场景来指定 Kingbase FlySync 软件的数据
目录(说明:指定数据目录的使用权限)
• 需要设置合理的数据目录的定期清除策略(说明:指定的数据目录的磁盘空间至少要能够保证存
储 7 天以上同步的数据量,推荐存储一个月左右的数据量)
3. 生产环境中,对 Kingbase FlySync 软件的安装要求:
Kingbase FlySync 软件在同步数据时(源端是 Oracle 数据库,且同步方式为 Logminer 方式), Oracle
数据库必须开启归档日志(数据库的所有操作都会记录到归档日志文件中,所以数据库的归档日志
文件会占用大量的磁盘空间),推荐为归档日志设置一个单独存储归档日志的目录(当然也可以使用
Oracle 数据库的安装目录,但是 Oracle 的安装目录需要更大的磁盘空间)。同时需要为数据库的归档
日志设置合理的定期清除归档日志文件策略,防止归档日志占满磁盘空间导致数据库无法使用。
归档日志目录说明:
• 了解每天 Oracle 数据库的数据变化量,根据实际的业务使用场景指定 Oracle 数据库归档日志目
录(说明:指定数据目录的使用权限)
• 需要设置合理的归档日志目录的定期清除策略(说明:指定的归档日志目录的磁盘空间至少要能
够保证存储 7 天以上同步的数据量,推荐存储一个月左右的数据量)
4. Kingbase FlySync 软件启动前的前置检查:
当 Kingbase FlySync 软件配置以 Logminer 方式同步 Oracle 数据库(无论 Oracle 数据库作为源端数据
库还是目标端数据库)的数据时,其同步数据的 Schema 下不能与以下五张表名重复(因为这五张表
是 Kingbase FlySync 软件的系统表: Kingbase FlySync 软件在启动时会在当前的 Schema 下自动创建
这五张表):
• consistency
5.1. 命令行部署 117
Kingbase FlySync 安装部署手册, Release V1R6
• heartbeat
• trep_commit_seqno
• trep_shard
• trep_shard_channel
常见问题
1. 如果出现 ORA-12514 错误时,如下图所示:
解决方法:
• 需要修改 listerner.ora 文件,具体在 Oracle 安装目录 NETWORKADMIN 下 (例如:当前操
作目录”D:\oracle\product\10.2.0\db_1\NETWORKADMIN\listener.ora”) 加入如下设置
(SID_DESC =2 (GLOBAL_DBNAME = practice)
(ORACLE_HOME = D:\oracle\product\10.2.0\db_1)
(SID_NAME = practice)
)
设置后需要重新启动 TNSListener,即可生效。
2. 如果出现 ORA-16018 错误时,如下图所示:
解决方法:
• 该问题是数据库开启了闪回功能,归档文件默认情况下是保存到闪回路径中,简单的处
理方式是在设置归档路径中加入 scope=spfile 参数;
• 设置归档日志文件路径
118 第 5 章 同步程序部署
Kingbase FlySync 安装部署手册, Release V1R6
SQL> ALTER SYSTEM SET log_archive_dest="D:\oracle\oradata\practice\ARCHIVE"
2 scope=spfile;
System altered
• 此时查看闪回路径,该路径并未影响,只不过闪回文件和归档文件保存到各自文件夹中
redo 相关配置
Oracle 数据库配置
数据库中需要设置 NSL_DATE_FORMAT,命令如下,设置好以后需要重启数据库:
ALTER SYSTEM SET NLS_DATE_FORMAT='YYYY-MM-DD' SCOPE=SPFILE;
1. 创建 rodo 用户并赋予相应的权限:
假设 rodo 用户为 FLYSYNC,如果能够提供 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;
假设 rodo 用户为 FLYSYNC,如果不能够提供 DBA 权限,可以赋予以下权限包括:
5.1. 命令行部署 119
Kingbase FlySync 安装部署手册, Release V1R6
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;
2. 开启 Oracle 数据库的归档日志(必须开启),具体步骤如下:
• 检查是否归档已经开启
SQL> select log_mode from v$database;
LOG_MODE
------------
NOARCHIVELOG
• 开启归档(需要重启数据库)
SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup mount
ORACLE 例程已经启动。
数据库装载完毕。
SQL> alter database archivelog;
数据库已更改。
SQL> alter database open;
数据库已更改。
• 再次查看数据库归档情况
SQL> select log_mode from v$database;
LOG_MODE
------------
ARCHIVELOG
3. 开启补全日志
• 检查补全日志的状态
120 第 5 章 同步程序部署
Kingbase FlySync 安装部署手册, Release V1R6
SQL> SELECT supplemental_log_data_min, supplemental_log_data_pk,
2 supplemental_log_data_all FROM v$database;
SUPPLEME SUP SUP
-------- --- ---
NO NO NO
• 开启补全日志 (建议在 MOUNT 模式下执行)
SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
Database altered.
SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY) COLUMNS;
Database altered.
SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
Database altered.
• 再次检查补全日志的状态
SQL> SELECT supplemental_log_data_min, supplemental_log_data_pk,
2 supplemental_log_data_all FROM v$database;
SUPPLEME SUP SUP
-------- --- ---
YES YES YES
4. 切换日志文件
SQL> ALTER SYSTEM SWITCH LOGFILE;
System altered
Kingbase Flysync 同步软件部署
Flysync 配置文件: ($HOME/flysync.ini)
[defaults]
user=flysync
install-directory=/home/flysync/flysync_test
profile-script=~/.bash_profile
rmi-port=11000
[oracle11g]
role=master
master=flysync-1
members=flysync-1
(continues on next page)
5.1. 命令行部署 121
Kingbase FlySync 安装部署手册, Release V1R6
(continued from previous page)
kufl-port=3112
replication-host=192.168.11.31
replication-port=1523
replication-user=FSTEST_430
replication-password=password
datasource-type=oracle
oracle-extractor-method=redo
datasource-oracle-service=orcl
svc-extractor-filters=dropstatementdata,ignoreddl
property=replicator.extractor.dbms.tablePatterns=FSTEST_430.*,TEST.T2
property=replicator.extractor.dbms.keepMixDML=false
property=replicator.filter.ignoreddl.ignore=CREATE;ALTER;DROP;TURNCATE
注意:
1. REDO 形式的部署, KFS 必须和数据库处于同一台物理机器
2. replicator.extractor.dbms.keepMixDML 在开启同步 DDL 后生效,主要针对 create table as 类型语句,
同时产生 DDL 和 DML,可以通过 replicator.extractor.dbms.keepMixDML 来确认是否保留 DML, true
为保留, false 为不保留,默认为 false。
3. svc-extractor-filters=dropstatementdata,ignoreddl(默认值: dropstatementdata,表示不同步 DDL 语
句; ignoreddl,表示不同步指定 DDL 语句,两者配置其一即可)
4. property=replicator.filter.ignoreddl.ignore 配置 ignoreddl 时生效, 参数可为所有 DDL 语句或关键字, 如
CREATE/DROP 等, 多个用分号隔开
Kingbase FlySync 部署结果
[flysync@flysync-2KingbaseFlySync-V001R002B1214]$./tools/fspm install
NOTE>>Log output being sent to /tmp/flysync/flysync-configure.log
....
WARN>> flysync_1>>ntpd is not running. It is important that configured
hosts have time synchronised.(NtpdRunningCheck)
WARN>> flysync_1>>Linux swappiness is currently set to 60, on restart
it will be 60, consider setting this to 10 or under to avoid
swapping.(SwappinessCheck)
...
#####################################################################
#Next Steps
#####################################################################
Unless automatically started, you must start the Flysync services before the
cluster will be available.
/home/flysync/flysync_test/flysync/cluster-home/bin/startall
(continues on next page)
122 第 5 章 同步程序部署
Kingbase FlySync 安装部署手册, Release V1R6
(continued from previous page)
Wait a minute for the services to start upand configure themselves. After
that you may proceed.
Once your services start successfully replication will begin.
To look at service sand perform administration, run the following command
from any database server.
/home/flysync/flysync_test/flysync/flysync-replicator/bin/fsrepctl services
Configurationis now complete. For further information, please consult
Flysync documentation.
NOTE>>Command successfully completed
5.1.2.4 源端 Oracle RAC 集群
Oracle RAC 数据库配置
详情请参见“源端 Oracle Logminer 相关配置”
Kingbase FlySync 软件部署
Kingbase FlySync 配置文件: ($HOME/flysync.ini) 中的参数含义参见下表

名称含义
datasource-oracle-serviceOracle 连接数据库的服务名
oracle-extractor-method增量数据解析方式

Kingbase FlySync 配置文件: ($HOME/flysync.ini)
[defaults]
install-directory=/home/flysync/flysync_test
profile-script=~/.bash_profile
rmi-port=11000
[oracle11rac]
role=master
master=flysync-1
members=flysync-1
kufl-port=3112
(continues on next page)
5.1. 命令行部署 123
Kingbase FlySync 安装部署手册, Release V1R6
(continued from previous page)
replication-host=192.168.11.31
replication-port=1521
replication-user=TEST
replication-password=123456
datasource-type=oracle
datasource-oracle-service=RACDB2
oracle-extractor-method=logminer
svc-extractor-filters=dropstatementdata
property=replicator.extractor.dbms.tablePatterns=TEST.*
property=replicator.extractor.dbms.scnSegmentationThreshold=5000
property=replicator.datasource.global.connectionSpec.use_cluster=true
property=replicator.datasource.global.connectionSpec.slave_add=\
192.168.28.176,192.168.28.177
property=replicator.datasource.global.connectionSpec.slave_port=1521,1521
注意(其他常用配置属性请参见“源端 Oracle Logminer 相关配置”,这里主要针对 Oracle RAC 集群所涉及的
相关属性进行如下说明):
1. property=replicator.datasource.global.connectionSpec.use_cluster 此服务是否使用 Oracle
RAC 集群标识;如果源端支持 Oracle RAC 集群,则必须设置此属性且值为 true
2. replication-host 当 use_cluster 为 true 时,指定 Oracle RAC 集群一个对外访问的地址;当
use_cluster 为 false 时,和 V1R1 含义一致
3. replication-port 当 use_cluster 为 true 时,指定 Oracle RAC 集群对外访问地址的端口且与
replication-host 对应;当 use_cluster 为 false 时,和 V1R1 含义一致
4. oracle-extractor-method 设置为 logminer(数据抽取方式), Oracle RAC 集群仅支持以
Logminer 方式进行数据抽取
5. property=replicator.datasource.global.connectionSpec.slave_add 当 use_cluster 为 true 时,
指定 Oracle RAC 集群其他对外访问的地址,多个地址时采用逗号 (,) 分割;当 use_cluster
为 false 时无效
6. property=replicator.datasource.global.connectionSpec.slave_port 当 use_cluster
为 true 时, 指 定 Oracle RAC 集 群 其 他 对 外 访 问 地 址 的 端 口 且 与 property=replicator.datasource.global.connectionSpec.slave_add 相 对 应, 多 个 端 口 时 采 用
逗号 (,) 分割;当 use_cluster 为 false 时无效
说明: Oracle RAC 集 群 其 他 对 外 访 问 的 地 址 ( property=replicator.datasource.global.connectionSpec.slave_add), Oracle RAC 集群其他对外
访问地址的对应端口( property=replicator.datasource.global.connectionSpec.slave_port)
配置个数必须一一对应
Kingbase Flysync 部署结果
124 第 5 章 同步程序部署
Kingbase FlySync 安装部署手册, Release V1R6
[flysync@flysync-2KingbaseFlySync-V00XR00XC00XBXXXXXXXX]$ ./tools/fspm install
NOTE >> Logoutputbeingsentto/tmp/flysync/flysync-configure.log
....
WARN >> flysync_2 >> ntpd is not running. It is important that configured
hosts have time synchronised. (NtpdRunningCheck)
WARN >> flysync_2 >> Linux swappiness is currently set to 60, on restart it
will be 60,consider setting this to 10 or under to avoid
swapping. (SwappinessCheck)
...............
#####################################################################
# Next Steps
#####################################################################
Unless automatically started, you must start the Flysync services before the
cluster will be available.
/home/flysync/flysync_test/flysync/cluster-home/bin/startall
Wait a minute for the services to start up and configure themselves. After
that you may proceed.
We have added Flysync environment variables to ~/.bash_profile.
Run `source ~/.bash_profile` to rebuild your environment.
Once your services start successfully replication will begin.
To look at services and perform administration, run the following command
from any database server.
/home/flysync/flysync_test/flysync/flysync-replicator/bin/fsrepctl services
Configuration is now complete. For further information, please consult
Flysync documentation.
NOTE >> Command successfully completed
5.1.2.5 源端 SQL Server
概述
KingbaseFlySync 支持基于 SQLServer 作为源端的数据同步,可支持 SQL Server 的版本为:
• 2008 及以上版本
• 非 Exrepss 版本
5.1. 命令行部署 125
Kingbase FlySync 安装部署手册, Release V1R6
本文以下部分对基于 SQLServer 作为源端时的部署过程进行阐述。
SQL Server 数据库配置
Kingbase FlySync 自带了设置 CDC 的脚本,具体路径为
flysync-replicator/extractors/mssql-cdc
其中主要的脚本和配置文件有

脚本作用
setupCDC.sh部署脚本
setupCDC.conf配置文件,和 setupCDC.sh 配合使用
updateCDC.sh更新脚本,当需要变更 CDC 部署时使用

1. setupCDC.sh:删掉现存的订阅,然后将整个模式重新订阅(如果有上次没订阅的
表,本次会新订阅),用于初次创建 CDC 或者想重新创建所有的 CDC 关系
2. updateCDC.sh: 仅处理列出来的表(当列出的表订阅清理掉,重新订阅;如果表
本身就没有被订阅,则忽略),用于仅仅想订阅某个表的 CDC 关系
以下为 SQL Server 源端的配置过程
1. 设置配置文件
修改 setupCDC.conf ,使其符合当前环境,具体参数含义为

参数名称含义
service服务名称,由用户自行指定(注意:需要和和后面同步工具部署
时的服务名称保持一致)
db_hostSQLServer 所在的机器地址和端口,默认 localhost,1433
db_name要同步的表所在的数据库
sa_usersa 用户的帐号
sa_passsa 用户的密码
source_user同步的用户名称(会自动创建)
source_password同步的用户密码
delete_user是否删除同步用户(当存在时,注意:设置为 1 时,会强制删除
同步用户)一般用在重新部署时
specific_pathflysync.tables 文件所在的路径
file_group_size创建文件组最大值,不指定默认 16GB,值参照增量数据储备大
小设定

2. 填写 flysync.tables 文件
126 第 5 章 同步程序部署
Kingbase FlySync 安装部署手册, Release V1R6
flysync.tables 文件里边列出需要同步的表(注意:如果列出的表不存在,会忽略)
flysync.tables 文件的格式为:
schama_name<tab>table_name<tab>column_list
比如:
SCHEMA_1<tab>TABLE_1<tab>C1,C2,C3 表示 TABLE_1 的 C1、 C2、 C3 列
注意:
• 所有预同步表必需包含主键
3. 执行配置脚本
./setupCDC.sh setupCDC.conf
注意:
• 执行 setupCDC.sh 前需要安装配置 JDK1.8+
• Linux 执行前请执行 sudo /opt/mssql/bin/mssql-conf set sqlagent.enabled
true 以及 systemctl restart mssql-server.service
• Windows 执行前请到系统服务中开启 SQL Server 的对应服务( MSSQLSERVER、 SQL
Server Agent 等服务)
• 创建 file group,仅在文件组不存在时生效,若想更新文件组大小,需要手动删除文件
组再执行 setupCDC.sh
示例配置文件和部署结果
假设配置文件如下
service=sqlserver
db_host=localhost,1433
db_name=testdb
sa_user=sa
sa_pass=yourStrong123Password
source_user=flysync_sqlserver # 命名规则: flysync_ + service 名称
source_password=Test_cdc_PassW0rd
delete_user=1
specific_path=
file_group_size=16GB
flysync.tables 文件如下
TEST t1
TEST t2 C1,C2
5.1. 命令行部署 127
Kingbase FlySync 安装部署手册, Release V1R6
运行部署脚本
klwangdeMacBook-Pro:mssql-cdc klwang$ ./setupCDC.sh
输出内容为
Configuring CDC for service 'hello' for SQLServer 14. File Group is
'FLYSYNC_flysync_ALPHA_FILE_GROUP'
Check SQLAgent status
Done.
Removing old CDC installation if any (DBA)
Done.
Deleting old source user 'flysync_ALPHA' (DBA)
Done.
Enable database testdb CDC (DBA)
Done.
Creating source_user (DBA)
Done.
Creating file group
Done.
Load flysync.tables and enable table cdc
enable CDC for table: TEST.t1 ...
Done.
enable CDC for table: TEST.t2 ...
Done.
Done.
没有报错信息,表示部署成功。
Kingbase FlySync 同步软件部署
Kingbase FlySync 的配置文件的默认路径为 ($HOME/flysync.ini)
SQLServer 配置文件中的参数含义参见下表

名称含义
mssql-dbnameSQLServer 的连接数据库
mssql-extractor-method增量数据解析方式

128 第 5 章 同步程序部署
Kingbase FlySync 安装部署手册, Release V1R6
示例配置文件和部署结果
示例配置文件如下
[defaults]
install-directory=/home/flysync/flysync_test
profile-script=~/.bash_profile
rmi-port=11000
[sqlserver]
role=master
master=flysync-1
members=flysync-1
kufl-port=3112
replication-host=flysync-1
replication-port=1433
replication-user=flysync_sqlserver
replication-password=Test_cdc_PassW0rd
datasource-type=mssql
mssql-extractor-method=cdc
mssql-dbname=testdb
property=replicator.extractor.dbms.minSleepTime=5
property=replicator.extractor.dbms.sleepAddition=1
property=replicator.extractor.dbms.maxSleepTime=15
注意:
1. 服务名【sqlserver】必须和 setupCDC.conf 中的 service 一致
2. replication-user 表示同步帐号
运行 Kingbase FlySync 部署命令
./tools/fspm install
Kingbase FlySync 部署结果
[flysync@flysync-1 KingbaseFlySync-V00XR00XC00XBXXXXXXXX]$ ./tools/fspm install
NOTE>> Log output being sent to /tmp/flysync/flysync-configure.log
....
WARN>> flysync_1 >> ntpd is not running. It is important that configured
hosts have time synchronised. (NtpdRunningCheck)
WARN>> flysync_1 >> Linux swappiness is currently set to 60, on restart
it will be 60, consider setting this to 10 or under to avoid
swapping. (SwappinessCheck)
....
(continues on next page)
5.1. 命令行部署 129
Kingbase FlySync 安装部署手册, Release V1R6
(continued from previous page)
#####################################################################
# Next Steps
#####################################################################
Unless automatically started, you must start the flysync services before the
cluster will be available.
/tmp/flysyncSQLServer/flysync/cluster-home/bin/startall
Wait a minute for the services to start up and configure themselves.After
that you may proceed.
Once your services start successfully replication will begin.
To look at services and perform administration, run the following command
from any database server.
/tmp/flysyncSQLServer/flysync/flysync-replicator/bin/fsrepctl services
Configuration is now complete.For further information, please consult
flysync documentation.
NOTE>> Command successfully completed
以上,表示已经完成了 Kingbase FlySync 源端支持 SQLServer 的部署
Note: NTP(网络时间协议) 未开启,安装时系统会警告,但不影响系统运行。 swappiness 参数默认 60,
表示内存使用到 100%-60%=40% 的时候,开始出现有交换分区的使用, swappiness 值越小内存的使用率
越高。
在部署 Kingbase FlySync 的时候,系统会检测 swappiness 值的设置,并以警告形式展示,不影响系统运行。
WARN>> flysync_1 >> ntpd is not running. It is important that configured hosts
have time synchronised. (NtpdRunningCheck)
WARN>> flysync_1 >> Linux swappiness is currently set to 60, on restart
it will be 60, consider setting this to 10 or under to avoid
swapping. (SwappinessCheck)
130 第 5 章 同步程序部署
Kingbase FlySync 安装部署手册, Release V1R6
常见问题
1. SQLServer 2014 代理服务无法启动,报错
使用 SQL Server 2014 时,代理服务无法启动。报错:
sp_sqlagent_update_agent_xps' 沒有 EXECUTE 权限
解决办法:
• 首先,确保 SQLServer 不是 Express 版本(SQLSERVER2014 Express 不支持代理服务)
• 然后,使用如下命令配置系统:
sp_configure'Agent XPs', 1
reconfigure
2. 启用表 CDC 失败,报错
返回的错误为 14234: ‘指定的 @server 无效 (有效值由 sp_helpserver 返回)。’。请使用此
操作和错误来确定失败的原因并重新提交请求。’。
解决办法:
此问题产生的原因是,数据库安装完后,又重新修改了机器名所致,目前 Kingbse
FlySync 的 setupCDC 脚本已经内置了解决方式,只需要按照脚本提示重启数据
库即可
3. 源端创建 CDC 失败
检查源表是否有主键
4. 源端表名过长导致执行 setupCDC.sh 失败
SQL Server 数据库对于捕获集的限制为 100 个字符。捕获集的名称构成为
模式名_ 表名_CT
故,需要用户自行确保模式名 + 表名小于 96 个字符
5.1.2.6 源端 KingbaseES V7
概述
Kingbase FlySync 支持基于 Kingbase 解析日志形式的数据同步,通过解析 KingbaseES V7 的归档日志来进
行数据的增量解析。下面将介绍 KingbaseES V7 作为复制的源端进行部署的方式。
5.1. 命令行部署 131
Kingbase FlySync 安装部署手册, Release V1R6
KingbaseES V7 数据库配置
由于在复制中我们需要使用数据库归档日志来进行解析,因此首先要检查数据库是否开启归档日志。
1. 创建归档目录,目录位置和名称可自定义,如在 ES V7 安装目录下:
mkdir archive
2. 编辑安装目录下 data/kingbase.conf 文件, 修改如下配置:

参数配置含义
log_archive_start = on开启归档日志
log_archive_dest = ‘归档目录’设置归档日志的存放位置,必须为存在的路径
enable_llogminer = on开启 logminer

注:如果要进行分区表的同步,需另外增加配置 llogminer_condition_method=’auto’。
全部配置完成后,重启数据库使配置生效。
Kingbase FlySync 同步软件部署
Kingbase FlySync 配置文件: ($HOME/flysync.ini)
[defaults]
install-directory=/home/flysync/flysync_test
profile-script=~/.bash_profile
rmi-port=11000
[kingbase7]
role=master
master=flysync-1
members=flysync-1
kufl-port=3112
replication-host=192.168.3.123
replication-port=54321
replication-user=SYSTEM
replication-password=MANAGER
datasource-type=kingbase
datasource-version=7
kingbase-extractor-method=redo
kingbase-dbname=TEST
svc-extractor-filters=dropstatementdata,ignoreddl
property=replicator.filter.ignoreddl.ignore=CREATE;ALTER;DROP;TURNCATE
注意:
132 第 5 章 同步程序部署
Kingbase FlySync 安装部署手册, Release V1R6
1. 部署前请先执行 UNSET LD_LIBRARY_PATH, 避免 ES V7 的环境变量影响部署过程。
2. 若 ES V7 数据库使用 ORACLE 兼容模式,请确认使用的用户名有对应的模式,否则无法进
行部署
3. 若使用的 ES V7 为 BASELINE 分支,则需要在部署完成后手动将解压目录下 extensions/
xlogical/下的 baseline 对应的包拷贝至安装目录下 xlogical/目录并解压替换。
4. svc-extractor-filters=dropstatementdata,ignoreddl 参数 dropstatementdata 表示不同步 DDL
语句;ignoreddl 表示不同步指定的 DDL 语句 (两者配置其一即可)
5. property=replicator.filter.ignoreddl.ignore 配置 ignoreddl 时生效, 参数可为所有 DDL 语句或
关键字, 如 CREATE/DROP 等, 多个用分号隔开
Kingbase FlySync 部署结果
[flysync@flysync-2KingbaseFlySync-V001R002B1214]$./tools/fspm install
NOTE>>Log output being sent to /tmp/flysync/flysync-configure.log
....
WARN>>flysync_1>>ntpd is not running. It is important that configured
hosts have time synchronised.(NtpdRunningCheck)
WARN>>flysync_1>>Linux swappiness is currently set to 60, on restart it
will be 60, consider setting this to 10 or under to avoid
swapping.(SwappinessCheck)
...
#####################################################################
#Next Steps
#####################################################################
Unless automatically started, you must start the Flysync services before the
cluster will be available.
/home/flysync/flysync_test/flysync/cluster-home/bin/startall
Wait a minute for the services to start upand configure themselves. After
that you may proceed.
Once your services start successfully replication will begin.
To look at service sand perform administration, run the following command
from any database server.
/home/flysync/flysync_test/flysync/flysync-replicator/bin/fsrepctl services
Configurationis now complete. For further information, please consult
Flysync documentation.
NOTE>>Command successfully completed
5.1. 命令行部署 133
Kingbase FlySync 安装部署手册, Release V1R6
注意:
• 源端 ES V7 在更新或其他操作需要停止时,请先运行 fsrepctl offline 命令停止服务,再运行 replicator
stop。
• ES V7 作为源端只能集中部署,且要与 kingbaseES v7 部署在同一用户下
5.1.2.7 源端 KingbaseES V8
概述
Kingbase FlySync 支持基于 Kingbase xlogical 形式的数据同步,通过解析 kingbase 的 xlog 来进行数据的增
量解析。下面将介绍 kingbase 作为复制的源端进行部署的方式。
KingbaseES V8 数据库配置 (xlogical 相关配置)
在复制中我们使用了 decoderbufs 插件进行中间数据的存储,因此首先检查 V8 数据库是否已经
支 持 decoderbufs 插 件。 在 Kingbase FlySync 的 安 装 包 中 extensions 目 录 中 提 供 了 相 关 依 赖 文 件
( kfs_decoderbufs_lib_mips64_v8r2.zip),解压 zip 包可得到。
1. 检查 V8 安装目录下的/lib 目录,是否有 decoderbuf.so 和 kfs_current_query.so 包,若没有,
将 Kingbase FlySync 安装包中附带的 decoderbuf.so 和 kfs_current_query.so 复制到 Kingbase
安装目录的/lib 目录下。
2. 检查 V8 安装目录下的/share/extension 目录,是否有 decoderbufs.control 文件,若没有,将
Kingbase FlySync 安装包中附带的 decoderbuf.control 复制到 Kingbase 安装目录的/share/extension 目录下。
注意: KingbaseES V8R3C002B0261 及以上版本和 V8R6 不需要替换 decoderbuf 文件。
其次开始进行数据库的相关配置:
1. 编辑安装目录下 data/sys_hba.conf 文件, 增加如下配置,使用户有复制权限:
host replication all 127.0.0.1/32 md5
host replication all 0.0.0.0/0 md5
2. 编辑安装目录下 data/kingbase.conf 文件, 修改如下配置:
134 第 5 章 同步程序部署
Kingbase FlySync 安装部署手册, Release V1R6

参数配置含义
max_wal_senders = 2* 数据库个数日志发送进程数 (最小为 4)
wal_keep_segments = 4保留日志数量,根据磁盘空间设置,越大
越好
wal_level = logical日志级别
max_replication_slots = 2* 数据库个
复制槽数量 (最小为 4)
ora_input_emptystr_isnull=off关闭空字符串显示为 null(pg 兼容模式需配
置)

全部配置完成后,重启数据库使配置生效。
Kingbase FlySync 同步软件部署
在部署之前需确认 KingbaseES V8 的具体版本,如果为 V8R3(不含)之上的版本,需要将 Kingbase
FlySync 的安装包中 extensions/jdbc/kingbase8-8.6.0.jar 拷贝到同步包的 flysync-replicator/lib 目录下,如
果为 V8R3(含) 以下版本,需要 Kingbase FlySync 的安装包中 extensions/jdbc/kingbase8-8.2.0.jar 拷贝到
同步包的 flysync-replicator/lib 目录下。
** 注意 ** 部署关系中不允许 V8R3 和 V8R6 共存。
Kingbase FlySync 配置文件: ($HOME/flysync.ini)
[defaults]
install-directory=/home/flysync/flysync_test
profile-script=~/.bash_profile
rmi-port=11000
[kingbase8]
role=master
master=flysync-1
members=flysync-1
kufl-port=3112
replication-host=192.168.3.123
replication-port=54321
replication-user=SYSTEM
replication-password=MANAGER
datasource-type=kingbase
datasource-version=8
kingbase-extractor-method=xlogical
kingbase-dbname=TEST
svc-extractor-filters=replicate,ignoreddl
property=replicator.filter.replicate.do=PUBLIC.*
(continues on next page)
5.1. 命令行部署 135
Kingbase FlySync 安装部署手册, Release V1R6
(continued from previous page)
property=replicator.filter.replicate.ignore=PUBLIC.T1
property=replicator.extractor.dbms.minRowsPerBlock=4000
property=replicator.extractor.dbms.ddlListFile=\
/home/flysync/flysync_test/filters-config/ddl_support_list.csv
property=replicator.extractor.dbms.keepMixDML=true
property=replicator.filter.ignoreddl.ignore=CREATE;ALTER;DROP;TURNCATE
注意:
1. svc-extractor-filters 中配置 ignoreddl 参数表示不同步指定 DDL 语句
2. property=replicator.filter.ignoreddl.ignore 配置 ignoreddl 时生效, 参数可为所有 DDL 语句或
关键字 (如 CREATE/DROP 等, 多个用分号隔开)
KingbaseES V8 配置独有参数:
property=replicator.extractor.dbms.minRowsPerBlock=4000,单事务最大数据行数,默认为 500
property=replicator.extractor.dbms.ddlListFile=xx 同步 DDL 语句所需,可以配置支持的 DDL 类型
property=replicator.extractor.dbms.keepMixDML 在开启同步 DDL 后生效,主要针对 create table
as 类型语句,同时产生 DDL 和 DML,可以通过 replicator.extractor.dbms.keepMixDML 来确认是否保
留 DML,
true 为保留, false 为不保留,默认为 true。
注: Kingbase FlySync 的服务名请不要以数字或特殊字符开头,否则将导致安装出现问题
Kingbase Flysync 部署结果
[flysync@flysync-2KingbaseFlySync-V001R002B0916]$./tools/fspm install
NOTE>>Log output being sent to /tmp/flysync/flysync-configure.log
....
WARN>>flysync_2>>ntpd is not running. It is important that configured
hosts have time synchronised.(NtpdRunningCheck)
WARN>>flysync_2>>Linux swappiness is currently set to 60, on restart it
will be 60, consider setting this to 10 or under to avoid
swapping.(SwappinessCheck)
...
#####################################################################
#Next Steps
#####################################################################
Unless automatically started, you must start the Flysync services before the
cluster will be available.
/home/flysync/flysync_esv8/flysync/cluster-home/bin/startall
Wait a minute for the services to start upand configure themselves. After
(continues on next page)
136 第 5 章 同步程序部署
Kingbase FlySync 安装部署手册, Release V1R6
(continued from previous page)
that you may proceed.
Once your services start successfully replication will begin.
To look at service sand perform administration, run the following command
from any database server.
/home/flysync/flysync_esv8/flysync/flysync-replicator/bin/fsrepctl services
Configurationis now complete. For further information, please consult
Flysync documentation.
NOTE>>Command successfully completed
5.1.2.8 源端 KingbaseES V8 读写分离集群
Kingbase V8 数据库读写分离集群配置
同单机版一致
Kingbase FlySync 同步软件部署
Kingbase FlySync 的配置文件的默认路径为 ($HOME/flysync.ini)
新增配置参数如下:
property 属性的名称和含义见下表

名称含义
replicator.datasource.global.connectionSpec.use_cluster指定是否使用读写分离功能标识,默
认取值为: false。此配置项关闭 JDBC
就变成单机 JDBC,无读写分离功能
replicator.datasource.global.connectionSpec.slave_add当 use_cluster 为 true 时,指定后端
V8 的备节点地址;当 use_cluster 为
false 时无效
replicator.datasource.global.connectionSpec.slave_port当 use_cluster 为 true 时,指定后端
V8 的备节点端口,与备节点地址对
应;当 use_cluster 为 false 时无效
replicator.datasource.global.connectionSpec.nodeList若为 V8R6 则还需配置 nodeList 参数

注意:
5.1. 命令行部署 137
Kingbase FlySync 安装部署手册, Release V1R6
1. nodeList 为数据库集群中各节点的主机名称或 IP 地址,相关信息可通过数据库提供的工具./
repmgr cluster show 命令查询获取。数据库集群各节点的主机名或 IP 之间用逗号分隔,如:
nodeList=node1,node2,node3
若配置为主机名时请注意需要将各个数据库集群节点的主机名与 IP 映射关系配置在对应同步程序所在
机器的 /etc/hosts 文件中。
2. 推荐使用数据库集群 VIP 方式进行配置。
示例配置文件和部署结果
示例配置文件如下
[defaults]
install-directory=/home/flysync/flysync_test
profile-script=~/.bash_profile
rmi-port=11000
[kingbase8cluster]
role=master
master=flysync-1
members=flysync-1
kufl-port=3112
replication-host=192.168.1.1
replication-port=54321
replication-user=SYSTEM
replication-password=krms
datasource-type=kingbase
datasource-version=8
kingbase-extractor-method=xlogical
kingbase-dbname=TEST
svc-parallelization-type=none
property=replicator.datasource.global.connectionSpec.use_cluster=true
property=replicator.datasource.global.connectionSpec.slave_add=192.168.1.2
property=replicator.datasource.global.connectionSpec.slave_port=54321
注: replication-host 必须为主机 IP 地址
运行 Kingbase Flysync 部署命令
./tools/fspm install
Kingbase FlySync 部署结果
[flysync@flysync-2KingbaseFlySync-V001R002B0916]$./tools/fspm install
NOTE>>Log output being sent to /tmp/flysync/flysync-configure.log
....
(continues on next page)
138 第 5 章 同步程序部署
Kingbase FlySync 安装部署手册, Release V1R6
(continued from previous page)
WARN>>flysync_2>>ntpd is not running. It is important that configured
hosts have time synchronised.(NtpdRunningCheck)
WARN>>flysync_2>>Linux swappiness is currently set to 60, on restart it
will be 60,consider setting this to 10 or under to avoid
swapping.(SwappinessCheck)
...
#####################################################################
#Next Steps
#####################################################################
Unless automatically started, you must start the Flysync services before the
cluster will be available.
/home/flysync/flysync_esv8/flysync/cluster-home/bin/startall
Wait a minute for the services to start upand configure themselves. After
that you may proceed.
Once your services start successfully replication will begin.
To look at service sand perform administration, run the following command
from any database server.
/home/flysync/flysync_esv8/flysync/flysync-replicator/bin/fsrepctl services
Configurationis now complete. For further information, please consult
Flysync documentation.
NOTE>>Command successfully completed
以上,表示已经完成了 Kingbase FlySync 源端支持 KingbaseES V8 读写分离集群的部署
5.1.2.9 源端 PostgreSQL
概述
Kingbase FlySync 支持基于 PostgreSQL xlogical 形式的数据同步,通过解析 PostgreSQL 的 xlog 来进行数据
的增量解析。下面将介绍 PostgreSQL 作为复制的源端进行部署的方式。
5.1. 命令行部署 139
Kingbase FlySync 安装部署手册, Release V1R6
PostgreSQL 数据库配置 (xlogical 相关配置)
PostgreSQL 数据库版本支持
• 9.6
• 10
• 11.5
• 12
在复制中我们使用了 decoderbufs 插件进行中间数据的存储,因此首先检查 PostgreSQL 数据库是否
已经支持 decoderbufs 插件。在 Kingbase FlySync 的安装包中 extensions 目录中提供了相关依赖文件
( pg_plugns_(version).zip),解压 zip 包可得到。
1. 数据库 bin 目录下执行 ./pg_config --pkglibdir 查看动态加载库目录。
2. 数据库 bin 目录下执行 ./pg_config --sharedir 查看 share 目录。
3. 检查 PostgreSQL 安装目录下的动态加载库目录,是否有 decoderbuf.so 和 kfs_current_query.
so 包,若没有,将 Kingbase FlySync 安装包中附带的 decoderbuf.so 和 kfs_current_query.so
复制到 PostgreSQL 安装目录的动态加载库目录下。
4. 检查 PostgreSQL 安装目录下的 share/extension 目录下,是否有 decoderbufs.control 文件,若
没有,将 Kingbase FlySync 安装包中附带的 decoderbuf.control 复制到 PostgreSQL 安装目录下的
share/extension 目录下。
其次开始进行数据库的相关配置:
1. 编辑安装目录下 data/pg_hba.conf 文件, 增加如下配置,使用户有复制权限:
host replication all 127.0.0.1/32 md5
host replication all 0.0.0.0/0 md5
2. 编辑安装目录下 data/postgresql.conf 文件, 修改如下配置:

参数配置含义
max_wal_senders = 2* 数据库个数日志发送进程数 (最小为 4)
wal_keep_segments = 4保留日志数量,根据磁盘空间设置,越大
越好
wal_level = logical日志级别
max_replication_slots = 2* 数据库个
复制槽数量 (最小为 4)

全部配置完成后,重启数据库使配置生效。
140 第 5 章 同步程序部署
Kingbase FlySync 安装部署手册, Release V1R6
Kingbase FlySync 同步软件部署
配置文件中的参数含义参见下表

名称含义
datasource-versionpostgresql 版本,可为 9.6 | 10 | 11.5 | 12
postgresql-dbname数据库名称

Kingbase FlySync 配置文件: ($HOME/flysync.ini)
[defaults]
install-directory=/home/flysync/flysync_test
profile-script=~/.bash_profile
rmi-port=11000
[postgresql]
role=master
master=flysync-1
members=flysync-1
kufl-port=3112
replication-host=192.168.3.123
replication-port=54321
replication-user=SYSTEM
replication-password=MANAGER
datasource-type=postgresql
datasource-version=9.6
postgresql-extractor-method=xlogical
postgresql-dbname=postgres
svc-extractor-filters=replicate
property=replicator.filter.replicate.do=public.*
property=replicator.filter.replicate.ignore=public.T1
注: Kingbase FlySync 的服务名请不要以数字或特殊字符开头,否则将导致安装出现问题
Kingbase Flysync 部署结果
[flysync@flysync-2KingbaseFlySync-V001R002B0916]$./tools/fspm install
NOTE>>Log output being sent to /tmp/flysync/flysync-configure.log
....
WARN>>flysync_2>>ntpd is not running. It is important that configured
hosts have time synchronised.(NtpdRunningCheck)
WARN>>flysync_2>>Linux swappiness is currently set to 60, on restart it
will be 60, consider setting this to 10 or under to avoid
swapping.(SwappinessCheck)
(continues on next page)
5.1. 命令行部署 141
Kingbase FlySync 安装部署手册, Release V1R6
(continued from previous page)
...
#####################################################################
#Next Steps
#####################################################################
Unless automatically started, you must start the Flysync services before the
cluster will be available.
/home/flysync/flysync_esv8/flysync/cluster-home/bin/startall
Wait a minute for the services to start upand configure themselves. After
that you may proceed.
Once your services start successfully replication will begin.
To look at service sand perform administration, run the following command
from any database server.
/home/flysync/flysync_esv8/flysync/flysync-replicator/bin/fsrepctl services
Configurationis now complete. For further information, please consult
Flysync documentation.
NOTE>>Command successfully completed
5.1.2.10 源端 PolarDB
概述
Kingbase FlySync 支持基于 PolarDB for PostgreSQL xlogical 形式的数据同步,通过解析 PolarDB 的 xlog 来
进行数据的增量解析。下面将介绍 PolarDB 作为复制的源端进行部署的方式。
PolarDB 数据库配置 (xlogical 相关配置)
PolarDB 数据库版本支持
• 9.4 版本以上
• 云环境 PolarDB
对数据库的相关配置:
1. 编辑安装目录下 data/pg_hba.conf 文件, 增加如下配置,使用户有复制权限:
142 第 5 章 同步程序部署
Kingbase FlySync 安装部署手册, Release V1R6
host all all 0.0.0.0/0 md5
host replication all 0.0.0.0/0 md5
2. 编辑安装目录下 data/postgresql.conf 文件, 修改如下配置:

参数配置含义
max_wal_senders = 2* 数据库个数日志发送进程数 (最小为 4)
wal_keep_segments = 4保留日志数量,根据磁盘空间设置,越大
越好
wal_level = logical日志级别
max_replication_slots = 2* 数据库个
复制槽数量 (最小为 4)

全部配置完成后,重启数据库使配置生效。
Kingbase FlySync 同步软件部署
配置文件中的参数含义参见下表

名称含义
polardb-dbname数据库名称

Kingbase FlySync 配置文件: ($HOME/flysync.ini)
[defaults]
install-directory=~/flysync_test
profile-script=~/.bash_profile
rmi-port=11000
[polardb]
role=master
master=flysync-1
members=flysync-1
kufl-port=3112
replication-host=192.168.3.123
replication-port=5432
replication-user=system
replication-password=123456
datasource-type=polardb
polardb-extractor-method=xlogical
polardb-dbname=postgres
(continues on next page)
5.1. 命令行部署 143
Kingbase FlySync 安装部署手册, Release V1R6
(continued from previous page)
svc-extractor-filters=replicate
property=replicator.filter.replicate.do=public.*
property=replicator.filter.replicate.ignore=public.T1
注: Kingbase FlySync 的服务名请不要以数字或特殊字符开头,否则将导致安装出现问题
Kingbase Flysync 部署结果
[flysync@flysync-2KingbaseFlySync-V001R002B0916]$./tools/fspm install
.....
WARN >> flysync-1 >> The open file limit is set to '1024', we suggest a value of␣
,→65535. Add '* - nofile 65535' to your /etc/security/limits.conf and␣
,→restart your session (OpenFilesLimitCheck)
WARN >> flysync-1 >> ntpd is not running. It is important that configured hosts␣
,→have time synchronised. (NtpdRunningCheck)
WARN >> flysync-1 >> Linux swappiness is currently set to 30, on restart it will␣
,→be 60, consider setting this to 10 or under to avoid swapping. (SwappinessCheck)
License : /home/polardb/flysync/license.dat
#####################################################################
# Next Steps
#####################################################################
Unless automatically started, you must start the FlySync services before the
cluster will be available.
/home/polardb/flysync/flysync/cluster-home/bin/startall
Wait a minute for the services to start up and configure themselves. After
that you may proceed.
We have added FlySync environment variables to ~/.bash_profile.
Run `source ~/.bash_profile` to rebuild your environment.
Once your services start successfully replication will begin.
To look at services and perform administration, run the following command
from any database server.
/home/polardb/flysync/flysync/flysync-replicator/bin/fsrepctl services
Configuration is now complete. For further information, please consult
FlySync documentation.
NOTE >> Command successfully completed
144 第 5 章 同步程序部署
Kingbase FlySync 安装部署手册, Release V1R6
5.1.2.11 源端 DB2
概述
KingbaseFlySync 支持基于 DB2 作为源端的数据同步,可支持 DB2 的版本为:
• 9.7、 10、 11
本文以下部分对基于 DB2 作为源端时的部署过程进行阐述。 s
DB2 数据库相关配置
1. 检查并开启归档日志
以 sample 数据库为例
• 使用管理用户 db2inst1 连接 sample
db2 connect to sample
• 检查是否开启归档日志
db2 get db cfg for sample | grep -i LOGARCHMETH
输出为:

First log archive method(LOGARCHMETH1) = DISK:/
,→home/db2inst1/archive_test01/archivelog1/
Archive compression for logarchmeth1(LOGARCHCOMPR1) = OFF
Options for logarchmeth1(LOGARCHOPT1) =
Second log archive method(LOGARCHMETH2) = OFF
Archive compression for logarchmeth2(LOGARCHCOMPR2) = OFF
Options for logarchmeth2(LOGARCHOPT2) =

如果 LOGARCHMETH1 为 OFF 表示没开启归档日志
如果已开启归档日志,结束
• 停止应用连接
db2 terminate
查看 sample 数据库的连接情况
db2 list application | grep SAMPLE
输出为:
5.1. 命令行部署 145
Kingbase FlySync 安装部署手册, Release V1R6
DB2INST1 asncap 13169 *LOCAL.db2inst1.230215184609 ␣
,→ SAMPLE 1
DB2INST1 asncap 13153 *LOCAL.db2inst1.230215184608 ␣
,→ SAMPLE 1
停止此数据库的连接,下面的 id 换成上面查询到的结果
db2 "force application (13169)"
db2 "force application (13153)"
• 开启日志归档(下面以本地归档目录为例)
创建归档日志目录(可以按照实际规划调整)
mkdir -p /home/db2inst1/archive_sample/archivelog1
开启归档
db2 update db cfg for sample using logarchmeth1 DISK:/home/db2inst1/
,→archive_sample/archivelog1
• 做一次脱机备份
db2 backup db sample to /home/db2inst1/archive_sample
2. 创建同步用户
同步用户如果需要单独创建执行
db2 的用户使用的操作系统的用户,在 root 用户下操作,例如同步用户名为 flysync
useradd flysync
passwd flysync
使用管理用户 db2inst1 连接到待同步数据库(例: sample)授权
db2 connect to sample
• 如果能授予管理员权限,则执行
db2 grant dbadm on database to user flysync
• 如果不能授予管理员权限,则执行
db2 grant connect,implicit_schema,createtab on database to user␣
,→flysync
退出连接
146 第 5 章 同步程序部署
Kingbase FlySync 安装部署手册, Release V1R6
db2 terminate
3. 部署控制表和 UDF
• 上传安装文件
在 DB2 服务器上创建上传目录,例如/tmp/db2-cdc
mkdir /tmp/db2-cdc
上传 KFS replicator 安装包中 flysync-replicator/extractors/db2-cdc 目录下的所有文件
到/tmp/db2-cdc
[cdc@ld-41 db2-cdc]$ ll
-rw-rw-r--. 1 cdc cdc 7896 2 月 8 22:32 asncdcaddremove_v10-v11.sql
-rw-rw-r--. 1 cdc cdc 7880 2 月 9 11:37 asncdcaddremove_v9.sql
-rw-rw-r--. 1 cdc cdc 17794 2 月 8 22:32 asncdctables_v10.sql
-rw-rw-r--. 1 cdc cdc 17794 2 月 8 22:32 asncdctables_v11.sql
-rw-rw-r--. 1 cdc cdc 17470 2 月 8 22:32 asncdctables_v9.sql
-rw-rw-r--. 1 cdc cdc 540 2 月 8 22:32 asncdc_UDF.sql
-rw-r--r--. 1 cdc cdc 2917 2 月 24 11:16 asncdc_v10.jar
-rw-r--r--. 1 cdc cdc 2943 2 月 24 11:16 asncdc_v11.jar
-rw-r--r--. 1 cdc cdc 2931 2 月 24 11:16 asncdc_v9.jar
使用上面创建的同步用户 flysync 连接到待同步数据库(例: sample)
db2 connect to sample user flysync using passxxx
• 上传 UDF jar 和注册 UDF
如果无管理员权限则跳过此步骤
根据不通过版本选择对应的 asncdc.jar
安装 UDF JAR
# v11 版本
db2 "CALL SQLJ.INSTALL_JAR('file:/tmp/db2-cdc/asncdc_v11.jar', asncdcjar)"
# v10 版本
db2 "CALL SQLJ.INSTALL_JAR('file:/tmp/db2-cdc/asncdc_v10.jar', asncdcjar)"
# v9 版本
db2 "CALL SQLJ.INSTALL_JAR('file:/tmp/db2-cdc/asncdc_v9.jar', asncdcjar)"
注册服务控制 UDF
db2 -tmf /tmp/db2-cdc/asncdc_UDF.sql
• 创建 asn 控制表
5.1. 命令行部署 147
Kingbase FlySync 安装部署手册, Release V1R6
注意:不同版本执行的 sql 脚本不同
# v11 版本
db2 -tmf /tmp/db2-cdc/asncdctables_v11.sql
# v10 版本
db2 -tmf /tmp/db2-cdc/asncdctables_v10.sql
# v9 版本
db2 -tmf /tmp/db2-cdc/asncdctables_v9.sql
• 注册新增删除 UDF
注意:不同版本执行的 sql 脚本不同
# v11 和 v10 版本
db2 -tmf /tmp/db2-cdc/asncdcaddremove_v10-v11.sql
# v9 版本
db2 -tmf /tmp/db2-cdc/asncdcaddremove_v9.sql
配置表的 CDC
登录到 replicator 所在服务器,在 flysync-replicator/extractors/db2-cdc 目录下,包含下面脚本
注:不能单独将 db2-cdc 文件夹拷贝到其它目录,因为 setupCDC.sh 执行时,需要依赖 replicator 安装包中其它目录下的文件

脚本作用参数说明
setupCDC.sh部署脚本,读取 flysync.tables
里配置的表, 然后配置 CDC(之
前已配置的表不会清理)
-h 查看使用说明; -c <path> 配置文件 setupCDC.conf
的全路径,如果不指定此参数默认使用当前路径下
的 setupCDC.conf; -cs 生成修改 CAPTURE CHANGES
属性的 sql 文件
cleanCDC.sh清理脚本,清理 db2 CDC 的配
-h 查看使用说明; -c <path> 配置文件 setupCDC.conf
的全路径,如果不指定此参数默认使用当前路径下
的 setupCDC.conf -a 使用此参数将清理 db2 所有
CDC 配置(包含安装的控制表和 UDF jar),如果不
指定此参数默认只清理 flysync.tables 里配置的 CDC
setupCDC.conf 部署和清理使用的配置文件
flysync.tables部署时使用配置表

1. 配置 setupCDC.conf
修改 setupCDC.conf,具体参数含义为
148 第 5 章 同步程序部署
Kingbase FlySync 安装部署手册, Release V1R6

参数名称含义
service服务名称,由用户自行指定(注意:需要和和后面同步工具部署
时的服务名称保持一致
db_hostdb2 所在的机器 ip 或域名
db_portdb2 的端口
db_name要同步的表所在的数据库
sys_user系统用户名, 无管理权限时不填
sys_pass系统用户名密码, 无管理权限时不填
source_user同步的用户名称(需手动创建)
source_password同步的用户密码
sqllib_Pathdb2 sqllib 目录位置的全路径
commit_interval变更数据提交到 CD 表中的间隔时间
auto_setuptrue: 部署/清理时自动启停 asncap 服务; false: 部署/清理时手
动启停 asncap 服务; 无管理权限时配置为 false

1. 填写 flysync.tables 文件
flysync.tables 文件里边列出需要同步的表
flysync.tables 文件的格式为:
schemaName<TAB>tableName
2. 生成 ALTER_CAPTURE_CHANGES.sql
./setupCDC.sh -cs
执行后在当前目录下生成 ALTER_CAPTURE_CHANGES.sql 将 ALTER_CAPTURE_CHANGES.sql
上传到 db2 服务器/tmp/db2-cdc,并使用具有 dbadm 权限的用户执行
db2 -tmf /tmp/db2-cdc/ALTER_CAPTURE_CHANGES.sql
3. 执行配置脚本
根据 auto_setup 配置选择不同的安装操作:
• auto_setup=true 时,直接执行 setupCDC.sh
./setupCDC.sh
结果如下:
Begin.
| [ - main] INFO db2.cdc.SetupCDC query db version: DB2 v9.7.0.7
| [ - main] INFO db2.cdc.DB2CDCTools CREATE TABLE "flysync_db2"."heartbeat
,→" ("id" BIGINT NOT NULL, "seqno" BIGINT, "eventid" VARCHAR(128), "source_tstamp"␣
,→TIMESTAMP,
(continues on next page)
5.1. 命令行部署 149
Kingbase FlySync 安装部署手册, Release V1R6
(continued from previous page)
"target_tstamp" TIMESTAMP, "lag_millis" BIGINT, "salt" BIGINT, "name" VARCHAR(128),␣
,→PRIMARY KEY ("id"))
| [ - main] INFO db2.cdc.DB2CDCTools ALTER TABLE "flysync_db2"."heartbeat"␣
,→DATA CAPTURE CHANGES
| [ - main] INFO db2.cdc.SetupCDC Check SQLAgent status
| [ - main] INFO db2.cdc.DB2CDCTools fail:success: 密码: 2023-02-23-23.30.
,→36.040269 ASN0600I "AsnCcmd" : "" : "Initial" : Program "capcmd 9.7.7" is starting.
2023-02-23-23.30.44.046925 ASN0506E "AsnCcmd" : "ASNCDC" : "Initial" : The␣
,→command was not processed because the target replication program "Capture" was not␣
,→running or because you entered an incorrect parameter value (for example, a server␣
,→name, schema, or qualifier might be misspelled).
| [ - main] INFO db2.cdc.SetupCDC Asncdc agent is not running, will start␣
,→it
| [ - main] INFO db2.cdc.DB2CDCTools success: 密码:
capture started
| [ - main] INFO db2.cdc.DB2CDCTools success: 密码: 2023-02-23-23.30.47.
,→460787 ASN0600I "AsnCcmd" : "" : "Initial" : Program "capcmd 9.7.7" is starting.
2023-02-23-23.30.49.464007 ASN0520I "AsnCcmd" : "ASNCDC" : "Initial" : The STATUS␣
,→command response: "HoldLThread" thread is in the "is waiting" state.
2023-02-23-23.30.49.464101 ASN0520I "AsnCcmd" : "ASNCDC" : "Initial" : The STATUS␣
,→command response: "AdminThread" thread is in the "is resting" state.
2023-02-23-23.30.49.464158 ASN0520I "AsnCcmd" : "ASNCDC" : "Initial" : The STATUS␣
,→command response: "PruneThread" thread is in the "is resting" state.
2023-02-23-23.30.49.464203 ASN0520I "AsnCcmd" : "ASNCDC" : "Initial" : The STATUS␣
,→command response: "WorkerThread" thread is in the "is resting" state.
| [ - main] INFO db2.cdc.SetupCDC Load flysync.tables.
| [ - main] INFO db2.cdc.SetupCDC find schema: TEST01 ...
| [ - main] INFO db2.cdc.DB2CDCTools enable table: TEST01.A01
| [ - main] INFO db2.cdc.DB2CDCTools enable table: TEST01.A02
| [ - main] INFO db2.cdc.DB2CDCTools enable table: TEST01.A03
| [ - main] INFO db2.cdc.DB2CDCTools enable table: TEST01.TEST001
| [ - main] INFO db2.cdc.DB2CDCTools enable table: flysync_db2.heartbeat
| [ - main] INFO db2.cdc.SetupCDC reinit agent ...
| [ - main] INFO db2.cdc.DB2CDCTools success: 密码: 2023-02-23-23.30.49.
,→876926 ASN0600I "AsnCcmd" : "" : "Initial" : Program "capcmd 9.7.7" is starting.
2023-02-23-23.30.51.880187 ASN0522I "AsnCcmd" : "ASNCDC" : "Initial" : The program␣
,→received the "REINIT" command.
| [ - main] INFO db2.cdc.SetupCDC SUCCESS
| [ - main] INFO db2.cdc.SetupCDC Done.
Done.
150 第 5 章 同步程序部署
Kingbase FlySync 安装部署手册, Release V1R6
没有报错信息,表示部署成功
• auto_setup=false 时,需手动操作 asncap 服务
注意:以下/home/db2inst1/sqllib 替换成实际的 sqllib 路径,sample 替换成实际的数据库
– 检查 db2 服务器 asncap 是否启动
/home/db2inst1/sqllib/bin/asnccmd capture_schema=asncdc capture_server=sample status
– 如未启动,手动启动 asncap 服务
/home/db2inst1/sqllib/bin/asncap capture_schema=asncdc capture_server=sample␣
,→autoprune=n commit_interval=5 &
– 在 replicator 服务器执行 setupCDC 部署表
./setupCDC.sh
– 在 db2 服务器上 reinit 刷新
/home/db2inst1/sqllib/bin/asnccmd capture_schema=asncdc capture_server=sample reinit
Kingbase FlySync 同步软件部署
Kingbase FlySync 的配置文件的默认路径为 ($HOME/flysync.ini)
DB2 配置文件中的参数含义参见下表

名称含义
db2-dbnamedb2 的连接数据库
db2-extractor-method增量数据解析方式(目前仅支持 cdc)

property 属性的名称和含义见下表

名称含义
replicator.extractor.dbms.pruneIntervalCD 裁剪周期间隔(秒)
replicator.extractor.dbms.ignoreUser忽略某个用户的变更数据(防回环使用)
replicator.extractor.dbms.completeLobByQuery是否查询源表来补全 lob 字段

示例配置文件和部署结果
示例配置文件如下
5.1. 命令行部署 151
Kingbase FlySync 安装部署手册, Release V1R6
[defaults]
install-directory=/home/kfs/flysync-test
profile-script=~/.bash_profile
rmi-port=11000
[db2]
role=master
master=localhost
members=localhost
kufl-port=3112
replication-host=ip
replication-port=50000
replication-user=source_user
replication-password=source_passwd
datasource-type=db2
db2-extractor-method=cdc
db2-dbname=sample
property=replicator.extractor.dbms.minSleepTime=5
property=replicator.extractor.dbms.sleepAddition=1
property=replicator.extractor.dbms.maxSleepTime=15
property=replicator.extractor.dbms.ignoreUser=source_user
注意:
1. 服务名 db2 必须和 setupCDC.conf 中的 service 一致
2. replication-user 表示同步帐号
运行 Kingbase FlySync 部署命令
./tools/fspm install
Kingbase FlySync 部署结果
[flysync@flysync-1 KingbaseFlySync-V00XR00XC00XBXXXXXXXX]$ ./tools/fspm install
NOTE >> Log output being sent to /tmp/cdc/flysync-configure.log
....
WARN >> localhost >> The open file limit is set to '1024', we suggest a value of␣
,→65535. Add '* - nofile 65535' to your /etc/security/limits.conf and␣
,→restart your session (OpenFilesLimitCheck)
WARN >> localhost >> ntpd is not running. It is important that configured hosts␣
,→have time synchronised. (NtpdRunningCheck)
WARN >> localhost >> Linux swappiness is currently set to 30, on restart it will␣
,→be 60, consider setting this to 10 or under to avoid swapping. (SwappinessCheck)
(continues on next page)
152 第 5 章 同步程序部署
Kingbase FlySync 安装部署手册, Release V1R6
(continued from previous page)
License : /home/cdc/flysync_test/license.dat
#####################################################################
# Next Steps
#####################################################################
Unless automatically started, you must start the FlySync services before the
cluster will be available.
/home/cdc/flysync_test/flysync/cluster-home/bin/startall
Wait a minute for the services to start up and configure themselves. After
that you may proceed.
We have added FlySync environment variables to ~/.bash_profile.
Run `source ~/.bash_profile` to rebuild your environment.
Once your services start successfully replication will begin.
To look at services and perform administration, run the following command
from any database server.
/home/cdc/flysync_test/flysync/flysync-replicator/bin/fsrepctl services
Configuration is now complete. For further information, please consult
FlySync documentation.
NOTE >> Command successfully completed
以上,表示已经完成了 Kingbase FlySync 源端支持 DB2 的部署
Note: NTP(网络时间协议) 未开启,安装时系统会警告,但不影响系统运行。 swappiness 参数
默认 60,表示内存使用到 100-60=40% 的时候,开始出现有交换分区的使用, swappiness 值
越小内存的使用率越高。在部署 Kingbase FlySync 的时候,系统会检测 swappiness 值的设置,
并以警告形式展示,不影响系统运行。
WARN>> flysync_1 >> ntpd is not running. It is important that configured hosts
have time synchronised. (NtpdRunningCheck)
WARN>> flysync_1 >> Linux swappiness is currently set to 60, on restart it will
be 60, consider setting this to 10 or under to avoid swapping.
,→ (SwappinessCheck)
5.1. 命令行部署 153
Kingbase FlySync 安装部署手册, Release V1R6
常见问题
1. 捕获进程 asncap 启动后停止
• DB2 服务器上/home/db2inst1/下无 db2inst1.DBNAME.ASNCDC.CAP.log 此类日志
可能原因是数据库未开启归档日志,请参考 检查并开启归档日志章节排查问题
• DB2 服务器上/home/db2inst1/下无 db2inst1.DBNAME.ASNCDC.CAP.log 存在日志
查看日志获取错误信息
– 如果错误为“does not have DATA CAPTURE CHANGES attribute”
原因是步骤“生成 ALTER_CAPTURE_CHANGES.sql”未执行,导致源表未开启 CDC,额外执行
此步骤即可
– 如果错误为“The SQL request is “INSERT”. The table name is ”
需检查错误表名是 CDC 控制表(表名以 IBM 开头)还是 CDC 中间表(表名以 CDC 开头)
* 如果是 CDC 控制表无法写入,可能原因是执行“创建 asn 控制表”步骤时执行脚本和当前
数据库版本不匹配,此时需卸载重新部署
* 如果是 CDCC 中间表无法写入,可能原因是源表中包含了某些不支持的字段类型,比如
boolean、 xml 或者 LOB 类型字段使用了非空约束等,请查看《限制手册》做相应处理
2. 执行 setupCDC.sh 时报错:
ERROR db2.cdc.DB2CDCTools operate(xxx)agent error:
可能原因是 setupCDC.conf 中 auto_setup 设置的 true,但是未执行“上传 UDF jar 和注册
UDF”步骤
(其他)清理 CDC
• 清理部分表的 CDC,保留控制表和 UDF jar
/cleanCDC.sh
若 auto_setup=false,需额外在 db2 服务器上执行
/home/db2inst1/sqllib/bin/asnccmd capture_schema=asncdc capture_server=sample␣
,→reinit
• 清理所有安装
若 auto_setup=false,需额外在 db2 服务器上先执行
/home/db2inst1/sqllib/bin/asnccmd capture_schema=asncdc capture_server=sample␣
,→stop
154 第 5 章 同步程序部署
Kingbase FlySync 安装部署手册, Release V1R6
清理所有安装
./cleanCDC.sh -a
(其他)捕获进程操作命令
• 允许远程控制 asncap 的 DB2 服务器
Asncap 进程的操作:
db2 "VALUES ASNCDC.ASNCDCSERVICES('sqllibPath', 'dbName', 'action', 'sysUser',
,→'sysPass', 5)"
其中:
sqllibPath: db2 sqllib 目录位置的全路径,比如/home/db2inst1/sqllib
dbName: 监控的数据库名
action 允许值为: start/stop/status/reinit
sysUser: 管理用户,比如 db2inst1
sysPass:管理用户密码
• 不允许远程控制 asncap 的 DB2 服务器
Asncap 进程的操作:
start:
sqllibPath/bin/asncap capture_schema=asncdc capture_server=dbName autoprune=n␣
,→commit_interval=5 &
status/stop/reinit:
sqllibPath/bin/asnccmd capture_schema=asncdc capture_server=dbName action
其中:
sqllibPath: db2 sqllib 目录位置的全路径,比如/home/db2inst1/sqllib
dbName: 监控的数据库名
action 允许值为: start/stop/status/reinit
5.1. 命令行部署 155
Kingbase FlySync 安装部署手册, Release V1R6
5.1.2.12 源端达梦
概述
Kingbase FlySync 支持基于达梦作为源端的数据同步
本文以下部分对基于达梦作为源端时的部署过程进行阐述。
达梦数据库配置
1. 创建用户并赋予相应的权限:
假设用户为 FLYSYNC,如果能够提供 DBA 权限,那么该用户应该赋予的权限包括:
GRANT DBA TO FLYSYNC;
假设用户为 FLYSYNC,如果不能够提供 DBA 权限,可以赋予以下权限包括:
GRANT CREATE TABLE TO FLYSYNC;
GRANT CREATE SCHEMA TO FLYSYNC;
GRANT SELECT ON V$LOGMNR_CONTENTS TO FLYSYNC;
GRANT SELECT ON V$ARCHIVED_LOG TO FLYSYNC;
GRANT SELECT ON V$RLOG TO FLYSYNC;
GRANT EXECUTE ON SYS.DBMS_LOGMNR TO FLYSYNC;
2. 开启 LOGMNR 包
--验证 LOGMNR 包是否开启, 返回 1 则有
SELECT SF_CHECK_SYSTEM_PACKAGE('DBMS_LOGMNR');
--开启 LOGMNR
SP_CREATE_SYSTEM_PACKAGES(1,'DBMS_LOGMNR');
注意:必须开启此前置条件,开启 LOGMNR 包需要一定权限执行,如果没有权限联系 DBA
开启
3. 开启日志:
• 修改 dm.ini
ARCH_INI = 1
RLOG_APPEND_LOGIC = 1
• 开启归档
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
(continues on next page)
156 第 5 章 同步程序部署
Kingbase FlySync 安装部署手册, Release V1R6
(continued from previous page)
ARCH_DEST = E:\dmdbms\data\TEST\arch
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 10240
• 重启数据库
Kingbase FlySync 同步软件部署
Kingbase FlySync 配置文件: ($HOME/flysync.ini)
[defaults]
install-directory=/home/flysync/flysync_test
profile-script=~/.bash_profile
rmi-port=11000
[dm]
role=master
master=10.10.3.10
members=10.10.3.10
kufl-port=3112
replication-host=10.10.3.10
replication-port=5236
replication-user=FLYSYNC
replication-password=Pass123456
datasource-type=dm
dm-extractor-method=logminer
svc-extractor-filters=dropstatementdata
property=replicator.extractor.dbms.tablePatterns=FLYSYNC.*
property=replicator.extractor.dbms.scnSegmentationThreshold=5000
注意:
1. dm-extractor-method 设置为 logminer(数据抽取方式)
2. replicator.extractor.dbms.scnSegmentationThreshold logminer 查询数据的阈值(当 Flysync 软件刚启
动时,会查询到最早开启归档日志的 Scn 号,如果最早的 Scn 号与当前数据库的 Scn 号跨度很大的
话,会严重影响数据库的性能,所以设置此阈值),默认值为 5000
3. svc-extractor-filters 表示是否同步 DDL 语句(设置 dropstatementdata,表示不同步 DDL 语句)
4. property=replicator.extractor.dbms.tablePatterns 进 行 表 过 滤, FSTEST_430.*,TEST.T2 表 示 同 步
FSTEST_430 模式下所有表和 TEST 模式下 T2 表多个规则采用逗号 (,) 分割
Kingbase FlySync 部署结果
5.1. 命令行部署 157
Kingbase FlySync 安装部署手册, Release V1R6
[flysync@flysync-2KingbaseFlySync-V001R002B1214]$./tools/fspm install
.
WARN >> 10_10_3_10 >> ntpd is not running. It is important that configured hosts␣
,→have time synchronised. (NtpdRunningCheck)
WARN >> 10_10_3_10 >> Linux swappiness is currently set to 30, on restart it will␣
,→be 60, consider setting this to 10 or under to avoid swapping. (SwappinessCheck)
License : /home/dmdba/slavenode/license.dat
#####################################################################
# Next Steps
#####################################################################
Unless automatically started, you must start the FlySync services before the
cluster will be available.
/home/dmdba/slavenode/flysync/cluster-home/bin/startall
Wait a minute for the services to start up and configure themselves. After
that you may proceed.
We have added FlySync environment variables to ~/.bash_profile.
Run `source ~/.bash_profile` to rebuild your environment.
Once your services start successfully replication will begin.
To look at services and perform administration, run the following command
from any database server.
/home/dmdba/slavenode/flysync/flysync-replicator/bin/fsrepctl services
Configuration is now complete. For further information, please consult
FlySync documentation.
NOTE >> Command successfully completed
Important: 部署过程中,用户自行填写的 flysync.ini 文件或者 setupCDC.conf 文件中的相关配置参数,其
中涉及到数据库密码,可能存在安全风险。待部署完成后,请用户自行将密码删除。
158 第 5 章 同步程序部署
Kingbase FlySync 安装部署手册, Release V1R6
5.1.3 目标端配置
目标端配置一般包括:数据库配置及 Kingbase FlySync 软件安装部署配置。
1. 数据库配置
由于 FlySync 进行数据通过过程需要操作数据库,因此在进行数据同步软件安装部署前,需要创建数
据库相关用户。
2. Kingbase FlySync 软件安装部署配置
Kingbase FlySync 软件安装部署配置主要针对 flysync.ini 文件进行配置。
公共配置参数说明:

名称含义
user软件安装用户
install-directory软件的安装路径
profile-script环境变量文件
rmi-port=11000RMI 远程访问端口

基础配置参数说明:

名称含义
[server_name]服务名
skip-validation-check跳过检查项
role同步角色,目标端为 slave
master主节点的机器名或 IP(目标端端填写 master 的机器名或 IP)
members当前节点的机器名或 IP
kufl-portKUFL 端口,默认 3112
replication-host数据库 ip 地址
replication-port数据库端口
replication-user数据库连接帐号
replication-password数据库连接密码
datasource-type数据库类型, 可为 oracle,mysql,mssql,kingbase
svc-remote-filters目标端过滤器
property额外属性,具体参见 property 相关配置参数说明

重连重试配置参数说明:
5.1. 命令行部署 159
Kingbase FlySync 安装部署手册, Release V1R6

名称含义
repl_auto_recovery_max_attempts自动恢复尝试次数,系统 OFFLINE 时,尝试将系统
重新置于 ONLINE 状态的次数
repl_auto_recovery_delay_interval系统 OFFLINE 时,尝试 ONLINE 之前的等待时间,
s(秒)、 m(分钟)、 h(小时)
repl_auto_recovery_reset_interval系统自动恢复次数重置时间, s(秒)、 m(分钟)、 h(小
时)

其他配置参数说明:

名称含义
replicator.filter.casetransform.to_upper_case大小写转换, mysql, mariadb 使用 false

5.1.3.1 目标端 MySQL
概述
Kingbase Flysync 从 V1R1 版本开始,支持基于 MySQL 作为目标端的数据同步,对 MySQL 的限制为:
• 5.7, 8.0
本文以下部分对基于 MySQL 作为目标端时的部署过程进行阐述
MySQL 数据库配置
1. MySQL 系统参数配置
MySQL 的数据库配置文件需要进行修改,配置文件默认名称为 my.cnf
在 my.cnf 配置文件中加入以下内容
[mysqld]
local-infile
character-set-server = utf8
collation-server = utf8_general_ci
default-time-zone = '+08:00'
在配置完成后请执行 service mysqld restart 或者自行重启 mysql 服务使配置生效。
2. 连接帐号配置
建立帐号并给予合适的权限
mysql> CREATE USER flysync@'%' IDENTIFIED BY 'password';
mysql> GRANT ALL ON *.* TO flysync@'%' WITH GRANT OPTION;
160 第 5 章 同步程序部署
Kingbase FlySync 安装部署手册, Release V1R6
Kingbase Flysync 同步软件部署
Kingbase Flysync 的配置文件的默认路径为 ($HOME/flysync.ini)
配置文件中的参数含义参见下表

名称含义
skip-validation-check忽略检测

skip-validation-check 属性的名称和含义见下表

名称含义
MySQLDumpCheck忽略 mysql_dump 程序检查
MySQLPermissionsCheck忽略用户权限检查

示例配置文件和部署结果
示例配置文件如下
[defaults]
install-directory=/home/flysync/flysync_test
profile-script=~/.bash_profile
rmi-port=11000
[oracle11mysql80]
skip-validation-check=MySQLPermissionsCheck
role=slave
master=flysync-1
master-kufl-port=3112
members=flysync-2
kufl-port=3112
replication-host=192.168.11.32
replication-port=3306
replication-user=root
replication-password=password
datasource-type=mysql
svc-remote-filters=casetransform,rename
property=replicator.filter.casetransform.to_upper_case=false
注意:
• 配置 MySQL 作为目标端时, MySQLDumpCheck 需要将 mysql 的 bin 路径放到 PATH 环境
变量中
• 当 svc-remote-filters 中加入 rename 关键字,表明开启了名称映射,需要修改对应的映射
文件,路径为 安装目录/filters-config/rename.csv 详情参见FAQ
5.1. 命令行部署 161
Kingbase FlySync 安装部署手册, Release V1R6
运行 Kingbase FlySync 部署命令
./tools/fspm install
Kingbase FlySync 部署结果
[flysync@flysync-2KingbaseFlySync-V001R002B1214]$./tools/fspm install
NOTE>>Log output being sent to /tmp/flysync/flysync-configure.log
....
WARN>> flysync_1>>ntpd is not running. It is important that configured
hosts have time synchronised.(NtpdRunningCheck)
WARN>> flysync_1>>Linux swappiness is currently set to 60, on restart it
will be 60,consider setting this to 10 or under to avoid
swapping.(SwappinessCheck)
...
#####################################################################
#Next Steps
#####################################################################
Unless automatically started, you must start the Flysync services before the
cluster will be available.
/home/flysync/flysync_test/flysync/cluster-home/bin/startall
Wait a minute for the services to start upand configure themselves. After
that you may proceed.
Once your services start successfully replication will begin.
To look at service sand perform administration, run the following command
from any database server.
/home/flysync/flysync_test/flysync/flysync-replicator/bin/fsrepctl services
Configurationis now complete. For further information, please consult
Flysync documentation.
NOTE>>Command successfully completed
以上,表示已经完成了 Kingbase Flysync 目标端支持 MySQL 的部署
Note: NTP(网络时间协议) 未开启,安装时系统会警告,但不影响系统运行。 swappiness 参数默认 60,
表示内存使用到 100%-60%=40% 的时候,开始出现有交换分区的使用, swappiness 值越小内存的使用率
越高。
在部署 Kingbase Flysync 的时候,系统会检测 swappiness 值的设置,并以警告形式展示,不影响系统运行。
162 第 5 章 同步程序部署
Kingbase FlySync 安装部署手册, Release V1R6
WARN>> flysync_1>>ntpd is not running. It is important that configured
hosts have time synchronised.(NtpdRunningCheck)
WARN>> flysync_1>>Linux swappiness is currently set to 60, on restart
it will be 60, consider setting this to 10 or under to avoid
swapping.(SwappinessCheck)
常见问题
1. MySQL 8.0 报错
unable to load authentication plugin 'caching_sha2_password'
开启 MySQL 8.0 的 native_password 插件:
ALTER USER your_user_name IDENTIFIED WITH mysql_native_password
2. MySQL 5.5 以上,配置时报连接不上数据库
使用以下命令重新配置 MySQL 的密码:
create USER 'root'@'%' identified by password;
grant all on *.* to 'root'@'%' with grant option;
SET PASSWORD FOR 'root'@'%' = 'password';
5.1.3.2 目标端 MariaDB
概述
Kingbase Flysync 从 V1R6 版本开始,支持基于 MariaDB 作为目标端的数据同步,对 MariaDB 的限制为:
• 5.5
本文以下部分对基于 MariaDB 作为目标端时的部署过程进行阐述
MariaDB 数据库配置
1. MariaDB 系统参数配置
MariaDB 的数据库配置文件需要进行修改,配置文件默认名称为 my.cnf
在 my.cnf 配置文件中加入以下内容
5.1. 命令行部署 163
Kingbase FlySync 安装部署手册, Release V1R6
[mysqld]
local-infile

character-set-server
collation-server
default-time-zone
= utf8
= utf8_general_ci
= '+08:00'

# add for flysync
bind-address = *
port = 3306
server-id = 1
open-files-limit = 65536
log-bin = mysql-bin
sync_binlog = 1
max_allowed_packet = 52m
default-storage-engine = InnoDB
innodb_flush_log_at_trx_commit = 2
innodb_flush_method = O_DIRECT
binlog_format = ROW
explicit_defaults_for_timestamp=true
在配置完成后请执行 service mysqld restart 或者自行重启 MariaDB 服务使配置生效。
2. 连接帐号配置
建立帐号并给予合适的权限
mysql> CREATE USER flysync@'%' IDENTIFIED BY 'password';
mysql> GRANT ALL ON *.* TO flysync@'%' WITH GRANT OPTION;
Kingbase FlySync 同步软件部署
Kingbase Flysync 的配置文件的默认路径为 ($HOME/flysync.ini)
配置文件中的参数含义参见下表

名称含义
skip-validation-check忽略检测
mysql-driverjdbc 的 url 使用 mariadb(默认值为 mariadb)

skip-validation-check 属性的名称和含义见下表

名称含义
MySQLDumpCheck忽略 mysql_dump 程序检查
MySQLPermissionsCheck忽略用户权限检查

164 第 5 章 同步程序部署
Kingbase FlySync 安装部署手册, Release V1R6
示例配置文件和部署结果
示例配置文件如下
[defaults]
install-directory=/home/flysync/flysync_test
profile-script=~/.bash_profile
rmi-port=11000
[oracle11mariadb]
skip-validation-check=MySQLPermissionsCheck
role=slave
master=flysync-1
master-kufl-port=3112
members=flysync-2
kufl-port=3112
replication-host=192.168.11.32
replication-port=3306
replication-user=root
replication-password=password
datasource-type=mysql
mysql-driver=mariadb
svc-remote-filters=casetransform,rename
property=replicator.filter.casetransform.to_upper_case=false
注意:
• 配置 MariaDB 作为目标端时, MySQLDumpCheck 需要将 MariaDB 的 bin 路径放到 PATH 环
境变量中
• 当 svc-remote-filters 中加入 rename 关键字,表明开启了名称映射,需要修改对应的映射
文件,路径为 安装目录/filters-config/rename.csv 详情参见FAQ
运行 Kingbase Flysync 部署命令
./tools/fspm install
Kingbase Flysync 部署结果
[flysync@flysync-2KingbaseFlySync-V001R002B1214]$./tools/fspm install
NOTE>>Log output being sent to /tmp/flysync/flysync-configure.log
....
WARN>> flysync_1>>ntpd is not running. It is important that configured
hosts have time synchronised.(NtpdRunningCheck)
WARN>> flysync_1>>Linux swappiness is currently set to 60, on restart it
will be 60,consider setting this to 10 or under to avoid
swapping.(SwappinessCheck)
(continues on next page)
5.1. 命令行部署 165
Kingbase FlySync 安装部署手册, Release V1R6
(continued from previous page)
...
#####################################################################
#Next Steps
#####################################################################
Unless automatically started, you must start the Flysync services before the
cluster will be available.
/home/flysync/flysync_test/flysync/cluster-home/bin/startall
Wait a minute for the services to start upand configure themselves. After
that you may proceed.
Once your services start successfully replication will begin.
To look at service sand perform administration, run the following command
from any database server.
/home/flysync/flysync_test/flysync/flysync-replicator/bin/fsrepctl services
Configurationis now complete. For further information, please consult
Flysync documentation.
NOTE>>Command successfully completed
以上,表示已经完成了 Kingbase Flysync 目标端支持 MariaDB 的部署
Note: NTP(网络时间协议) 未开启,安装时系统会警告,但不影响系统运行。 swappiness 参数默认 60,
表示内存使用到 100%-60%=40% 的时候,开始出现有交换分区的使用, swappiness 值越小内存的使用率
越高。
在部署 Kingbase Flysync 的时候,系统会检测 swappiness 值的设置,并以警告形式展示,不影响系统运行。
WARN>> flysync_1>>ntpd is not running. It is important that configured
hosts have time synchronised.(NtpdRunningCheck)
WARN>> flysync_1>>Linux swappiness is currently set to 60, on restart
it will be 60, consider setting this to 10 or under to avoid
swapping.(SwappinessCheck)
166 第 5 章 同步程序部署
Kingbase FlySync 安装部署手册, Release V1R6
常见问题
1. MariaDB 报错
unable to load authentication plugin 'caching_sha2_password'
开启 MariaDB 的 native_password 插件:
ALTER USER your_user_name IDENTIFIED WITH mysql_native_password
2. MariaDB 5.5 以上,配置时报连接不上数据库
使用以下命令重新配置 MariaDB 的密码:
create USER 'root'@'%' identified by password;
grant all on *.* to 'root'@'%' with grant option;
SET PASSWORD FOR 'root'@'%' = 'password';
5.1.3.3 目标端 Oracle
概述
Kingbase FlySync 支持基于 Oracle 作为目标端的数据同步,可支持的 Oracle 版本为:
• Oracle 10g, Oracle 11g, Oracle 12c
本文以下部分对基于 Oracle 作为目标端时的部署过程进行阐述。
Oracle 数据库配置
建立帐号并给予合适的权限
sqlplus> CREATE USER FLYSYNC IDENTIFIED BY password;
sqlplus> GRANT connect, resource TO FLYSYNC;
sqlplus> GRANT dba TO FLYSYNC;
Kingbase FlySync 同步软件部署
Kingbase FlySync 的配置文件的默认路径为 ($HOME/flysync.ini)
配置文件中的参数含义参见下表

名称含义
datasource-oracle-service-grouporacle 数据源的 OS 用户

5.1. 命令行部署 167
Kingbase FlySync 安装部署手册, Release V1R6
注意:
• oracle 用户名不要带有 # 号,会被 shell 脚本当做注释,导致出错。
示例配置文件和部署结果
示例配置文件如下
[defaults]
install-directory=/home/flysync/flysync_test
profile-script=~/.bash_profile
rmi-port=11000
[oracle11coracle]
role=slave
master=flysync-1
master-kufl-port=4114
members=flysync-3
kufl-port=5116
replication-host=192.168.2.78
replication-port=1521
replication-user=FLYSYNC
replication-password=password
datasource-type=oracle
datasource-oracle-service=oracle
datasource-oracle-service-group=flysync
svc-remote-filters=casetransform,rename
property=replicator.filter.casetransform.to_upper_case=true
运行 Kingbase FlySync 部署命令
./tools/fspm install
Kingbase FlySync 部署结果
[flysync@flysync-2KingbaseFlySync-V001R002B0916]$./tools/fspm install
NOTE>>Log output being sent to /tmp/flysync/flysync-configure.log
....
WARN>> flysync_2>>ntpd is not running. It is important that configured
hosts have time synchronised.(NtpdRunningCheck)
WARN>> flysync_2>>Linux swappiness is currently set to 60, on restart it
will be 60, consider setting this to 10 or under to avoid
swapping.(SwappinessCheck)
...
#####################################################################
#Next Steps
(continues on next page)
168 第 5 章 同步程序部署
Kingbase FlySync 安装部署手册, Release V1R6
(continued from previous page)
#####################################################################
Unless automatically started, you must start the Flysync services before the
cluster will be available.
/home/flysync/flysync_oracle/flysync/cluster-home/bin/startall
Wait a minute for the services to start upand configure themselves. After
that you may proceed.
Once your services start successfully replication will begin.
To look at service sand perform administration, run the following command
from any database server.
/home/flysync/flysync_oracle/flysync/flysync-replicator/bin/fsrepctl services
Configurationis now complete. For further information, please consult
Flysync documentation.
NOTE>>Command successfully completed
以上,表示已经完成了 Kingbase FlySync 目标端支持 Oracle 的部署。
Note: NTP(网络时间协议) 未开启,安装时系统会警告,但不影响系统运行。 swappiness 参数默认 60,
表示内存使用到 100%-60%=40% 的时候,开始出现有交换分区的使用, swappiness 值越小内存的使用率
越高。
在部署 Kingbase FlySync 的时候,系统会检测 swappiness 值的设置,并以警告形式展示,不影响系统运行。
WARN>> flysync_2>>ntpd is not running. It is important that configured
hosts have time synchronised.(NtpdRunningCheck)
WARN>> flysync_2>>Linux swappiness is currently set to 60, on restart it
will be 60, consider setting this to 10 or under to avoid
swapping.(SwappinessCheck)
注意:
• 当 svc-remote-filters 中加入 rename 关键字,表明开启了名称映射,需要修改对应的映射文件,路径
为 安装目录/filters-config/rename.csv。详情参见FAQ。
5.1. 命令行部署 169
Kingbase FlySync 安装部署手册, Release V1R6
5.1.3.4 目标端 Oracle RAC 集群
Kingbase FlySync 同步软件部署
Kingbase FlySync 配置文件: ($HOME/flysync.ini)
[defaults]
install-directory=/home/flysync/flysync_test
profile-script=~/.bash_profile
rmi-port=11000
[oracle11rac]
role=slave
master=flysync-1
master-kufl-port=3112
members=flysync-2
kufl-port=3112
replication-host=192.168.28.176
replication-user=TEST
replication-password=123456
replication-port=1521
datasource-type=oracle
datasource-oracle-service=RACDB2
property=replicator.extractor.dbms.tablePatterns=TEST.*
property=replicator.extractor.dbms.scnSegmentationThreshold=5000
property=replicator.datasource.global.connectionSpec.use_cluster=true
property=replicator.datasource.global.connectionSpec.slave_add=\
192.168.28.176,192.168.28.177
property=replicator.datasource.global.connectionSpec.slave_port=1521,1521
Oracle RAC 参数具体详情请参见“源端支持 Oracle RAC 集群”章节。
Kingbase FlySync 部署结果
[flysync@flysync-2KingbaseFlySync-V00XR00XC00XBXXXXXXXX]$ ./tools/fspm install
NOTE >> Logoutputbeingsentto/tmp/flysync/flysync-configure.log
....
WARN >> flysync_2 >> ntpd is not running. It is important that configured
hosts have time synchronised. (NtpdRunningCheck)
WARN >> flysync_2 >> Linux swappiness is currently set to 60, on restart it
will be 60, consider setting this to 10 or under to avoid
swapping. (SwappinessCheck)
...............
#####################################################################
(continues on next page)
170 第 5 章 同步程序部署
Kingbase FlySync 安装部署手册, Release V1R6
(continued from previous page)
# Next Steps
#####################################################################
Unless automatically started, you must start the Flysync services before the
cluster will be available.
/home/flysync/flysync_test/flysync/cluster-home/bin/startall
Wait a minute for the services to start up and configure themselves. After
that you may proceed.
We have added Flysync environment variables to ~/.bash_profile.
Run `source ~/.bash_profile` to rebuild your environment.
Once your services start successfully replication will begin.
To look at services and perform administration, run the following command
from any database server.
/home/flysync/flysync_test/flysync/flysync-replicator/bin/fsrepctl services
Configuration is now complete. For further information, please consult
Flysync documentation.
NOTE >> Command successfully completed
5.1.3.5 目标端 SQL Server
概述
KingbaseFlySync 从 V1R2 版本开始,支持基于 SQL Server 作为目标端的数据同步,对 SQL Server 的限
制为:
• 2008、 2014、 2016、 2017
本文以下部分对基于 SQL Server 作为目标端时的部署过程进行阐述
Kingbase Flysync 同步软件部署
Kingbase Flysync 的配置文件的默认路径为 ($HOME/flysync.ini)
示例配置文件和部署结果
示例配置文件如下
5.1. 命令行部署 171
Kingbase FlySync 安装部署手册, Release V1R6
[defaults]
install-directory=/home/flysync/flysync_test
profile-script=~/.bash_profile
rmi-port=11000
[oracle11mysql80]
role=slave
master=flysync-1
master-kufl-port=3112
members=flysync-2
kufl-port=3112
replication-host=192.168.11.33
replication-port=1433
replication-user=root
replication-password=password
datasource-type=mssql
mssql-dbname=test
svc-remote-filters=rename
运行 Kingbase Flysync 部署命令
./tools/fspm install
Flysync 部署结果
[flysync@flysync-2KingbaseFlySync-V001R002B1214]$./tools/fspm install
NOTE>>Log output being sent to /tmp/flysync/flysync-configure.log
....
WARN>> flysync_1>>ntpd is not running. It is important that configured
hosts have time synchronised.(NtpdRunningCheck)
WARN>> flysync_1>>Linux swappiness is currently set to 60, on restart it
will be 60, consider setting this to 10 or under to avoid
swapping.(SwappinessCheck)
...
#####################################################################
#Next Steps
#####################################################################
Unless automatically started, you must start the Flysync services before the
cluster will be available.
/home/flysync/flysync_test/flysync/cluster-home/bin/startall
Wait a minute for the services to start upand configure themselves. After
(continues on next page)
172 第 5 章 同步程序部署
Kingbase FlySync 安装部署手册, Release V1R6
(continued from previous page)
that you may proceed.
Once your services start successfully replication will begin.
To look at service sand perform administration, run the following command
from any database server.
/home/flysync/flysync_test/flysync/flysync-replicator/bin/fsrepctl services
Configurationis now complete. For further information, please consult
Flysync documentation.
NOTE>>Command successfully completed
以上,表示已经完成了 KingbaseFlysync 目标端支持 SQL Server 的部署
5.1.3.6 目标端 KingbaseES V7
概述
Kingbase FlySync 支持基于 KingbaseES V7 作为目标端的数据同步。本文以下部分对基于 Kingbase 作为目
标端时的部署过程进行阐述
Kingbase 数据库配置
建立帐号并给予合适的权限
ksql> CREATE USER FLYSYNC SUPERUSER PASSWORD 'password';
Kingbase FlySync 同步软件部署
Kingbase FlySync 的配置文件的默认路径为 ($HOME/flysync.ini)
配置文件中的参数含义参见下表

名称含义
datasource-versionkingbase 版本,可为 7 或 8
kingbase-dbname数据库名称

示例配置文件和部署结果
示例配置文件如下
5.1. 命令行部署 173
Kingbase FlySync 安装部署手册, Release V1R6
[defaults]
install-directory=/home/flysync/flysync_test
profile-script=~/.bash_profile
rmi-port=12000
[oracle11kingbase]
role=slave
master=flysync-1
master-kufl-port=3112
members=flysync-2
kufl-port=3112
replication-host=192.168.1.1
replication-port=54323
replication-user=SYSTEM
replication-password=krms
datasource-type=kingbase
datasource-version=7
kingbase-dbname=ORACLE11G
svc-parallelization-type=none
svc-remote-filters=casetransform,rename
property=replicator.filter.casetransform.to_upper_case=true
property=replicator.applier.dbms.optimizeRowEvents=true
property=replicator.applier.dbms.maxRowBatchSize=5000
主要参数说明:
optimizeRowEvents 和 maxRowBatchSize 是从 V1R2 新引入的入库性能调节参数,合理配置可
以大大提到数据的入库性能。小事务场景下, maxRowBatchSize 表示单表一次入库的数据量。
5000 表示每次入库 5000 条数据。
运行 Kingbase 的 Kingbase FlySync 部署命令
./tools/fspm install
Kingbase FlySync 部署结果
[flysync@flysync-2KingbaseFlySync-V001R002B0916]$./tools/fspm install
NOTE>>Log output being sent to /tmp/flysync/flysync-configure.log
....
WARN>> flysync_2>>ntpd is not running. It is important that configured
hosts have time synchronised.(NtpdRunningCheck)
WARN>> flysync_2>>Linux swappiness is currently set to 60, on restart
it will be 60,consider setting this to 10 or under to avoid
swapping.(SwappinessCheck)
...
(continues on next page)
174 第 5 章 同步程序部署
Kingbase FlySync 安装部署手册, Release V1R6
(continued from previous page)
#####################################################################
#Next Steps
#####################################################################
Unless automatically started, you must start the Flysync services before the
cluster will be available.
/home/flysync/flysync_esv7/flysync/cluster-home/bin/startall
Wait a minute for the services to start upand configure themselves. After
that you may proceed.
Once your services start successfully replication will begin.
To look at service sand perform administration, run the following command
from any database server.
/home/flysync/flysync_esv7/flysync/flysync-replicator/bin/fsrepctl services
Configurationis now complete. For further information, please consult
Flysync documentation.
NOTE>>Commandsuccessfully completed
以上,表示已经完成了 Kingbase FlySync 目标端支持 Kingbase 的部署
Note: NTP(网络时间协议) 未开启,安装时系统会警告,但不影响系统运行。 swappiness 参数默认 60,表
示内存使用到 100%-60%=40% 的时候,开始出现有交换分区的使用, swappiness 值越小内存的使用率越
高。在部署 Kingbase FlySync 的时候,系统会检测 swappiness 值的设置,并以警告形式展示,不影响系统
运行。
WARN>> flysync_2>>ntpd is not running. It is important that configured
hosts have time synchronised.(NtpdRunningCheck)
WARN>> flysync_2>>Linux swappiness is currently set to 60, on restart
it will be 60, consider setting this to 10 or under to avoid
swapping.(SwappinessCheck)
注意:
• 当 svc-remote-filters 中加入 rename 关键字,表明开启了名称映射,需要修改对应的映射文件,路径
为 安装目录/filters-config/rename.csv 详情参见FAQ
• 示例中的配置内容,在实际配置时,需用户根据实际环境进行修改
• 使用 rename 过滤器,需要在安装目录下/filters-config/rename.csv 文件中修改源端和目的端之间模
5.1. 命令行部署 175
Kingbase FlySync 安装部署手册, Release V1R6
式和数据库的映射。
• 数 据 库 client_encoding 和 server_encoding 值 需 一 致, server_encoding 默 认 值 为 GBK,
client_encoding 不 一 致 则 ini 需 配 置 property=replicator.datasource.global.
connectionSpec.urlOptions=UseServerPrepare=true&ClientEncoding=GBK
5.1.3.7 目标端 KingbaseES V8
概述
Kingbase FlySync 支持基于 KingbaseES V8 作为目标端的数据同步。本文以下部分对基于 Kingbase 作为目
标端时的部署过程进行阐述
Kingbase v8 数据库配置
建立帐号并给予合适的权限
ksql> CREATE USER FLYSYNC SUPERUSER PASSWORD 'password';
当数据库为 pg 兼容模式时,应在 kingbase.conf 文件中修改如下配置

名称含义
ora_input_emptystr_isnull=off关闭空字符串显示为 null(pg 兼容模式需配置)

Kingbase FlySync 同步软件部署
Kingbase FlySync 的配置文件的默认路径为 ($HOME/flysync.ini)
配置文件中的参数含义参见下表

名称含义
datasource-versionkingbase 版本,可为 7 或 8
kingbase-dbname数据库名称

示例配置文件和部署结果
示例配置文件如下
[defaults]
install-directory=/home/flysync/flysync_test
profile-script=~/.bash_profile
rmi-port=11000
(continues on next page)
176 第 5 章 同步程序部署
Kingbase FlySync 安装部署手册, Release V1R6
(continued from previous page)
[oracle11kingbase]
role=slave
master=flysync-1
master-kufl-port=3112
members=flysync-2
kufl-port=3112
replication-host=192.168.1.1
replication-port=54321
replication-password=krms
replication-user=SYSTEM
datasource-type=kingbase
datasource-version=8
kingbase-dbname=ORACLE11G
svc-parallelization-type=none
svc-remote-filters=casetransform,rename
property=replicator.filter.casetransform.to_upper_case=true
property=replicator.applier.dbms.optimizeRowEvents=true
property=replicator.applier.dbms.maxRowBatchSize=5000
主要参数说明:
optimizeRowEvents 和 maxRowBatchSize 是从 V1R2 新引入的入库性能调节参数,合理配置可
以大大提到数据的入库性能。小事务场景下, maxRowBatchSize 表示单表一次入库的数据量。
5000 表示每次入库 5000 条数据。
运行 Kingbase 的 Kingbase FlySync 部署命令
./tools/fspm install
Kingbase FlySync 部署结果
[flysync@flysync-2KingbaseFlySync-V001R002B0916]$./tools/fspm install
NOTE>>Log output being sent to /tmp/flysync/flysync-configure.log
....
WARN>> flysync_2>>ntpd is not running. It is important that configured
hosts have time synchronised.(NtpdRunningCheck)
WARN>> flysync_2>>Linux swappiness is currently set to 60, on restart it
will be 60, consider setting this to 10 or under to avoid
swapping.(SwappinessCheck)
...
#####################################################################
#Next Steps
#####################################################################
Unless automatically started, you must start the Flysync services before the
(continues on next page)
5.1. 命令行部署 177
Kingbase FlySync 安装部署手册, Release V1R6
(continued from previous page)
cluster will be available.
/home/flysync/flysync_esv8/flysync/cluster-home/bin/startall
Wait a minute for the services to start upand configure themselves. After
that you may proceed.
Once your services start successfully replication will begin.
To look at service sand perform administration, run the following command
from any database server.
/home/flysync/flysync_esv8/flysync/flysync-replicator/bin/fsrepctl services
Configurationis now complete. For further information, please consult
Flysync documentation.
NOTE>>Commandsuccessfully completed
以上,表示已经完成了 Kingbase FlySync 目标端支持 Kingbase 的部署
Note: NTP(网络时间协议) 未开启,安装时系统会警告,但不影响系统运行。 swappiness 参数默认 60,
表示内存使用到 100%-60%=40% 的时候,开始出现有交换分区的使用, swappiness 值越小内存的使用率
越高。
在部署 Kingbase FlySync 的时候,系统会检测 swappiness 值的设置,并以警告形式展示,不影响系统运行。
WARN>> flysync_2>> ntpd is not running. It is important that configured
hosts have time synchronised.(NtpdRunningCheck)
WARN>> flysync_2>> Linux swappiness is currently set to 60, on restart
it will be 60, consider setting this to 10 or under to avoid
swapping.(SwappinessCheck)
注意:
• 当 svc-remote-filters 中加入 rename 关键字,表明开启了名称映射,需要修改对应的映射文件,路径
为 安装目录/filters-config/rename.csv 详情参见FAQ
• 示例中的配置内容,在实际配置时,需用户根据实际环境进行修改
• 使用 rename 过滤器,需要在安装目录下/filters-config/rename.csv 文件中修改源端和目的端之间模
式和数据库的映射。
178 第 5 章 同步程序部署
Kingbase FlySync 安装部署手册, Release V1R6
5.1.3.8 目标端 KingbaseES V8 读写分离集群
KingbaseES V8 读写分离集群数据库配置
同上 KingbaseES V8 单机版配置。
Kingbase FlySync 同步软件部署
Kingbase FlySync 的配置文件的默认路径为 ($HOME/flysync.ini)
配置文件中的参数含义参见下表

名称含义
[oracle11kingbase]服务名
master主节点的机器名,此处填写本机的机器名
master-kufl-port主节点 kufl 监听端口
members当前节点的机器名
datasource-type数据库类型, kingbase
install-directory软件的安装路径
property额外属性,具体参见下表中
replication-hostKingbase 机器的 ip 地址:当 use_cluster 为 true 时,指定后端 V8 的主
节点地址; 当 use_cluster 为 false 时,和 V1R1 含义一致
replication-portKingbase 的端口:当 use_cluster 为 true 时,指定后端 V8 的主节点端
口,与主节点地址对应;当 use_cluster 为 false 时,和 V1R1 含义一致
replication-userKingbase 的连接帐号
replication-passwordKingbase 的连接密码
role同步角色,目标端为 slave
svc-remote-filters目标端 filter 配置

property 属性的名称和含义见下表
5.1. 命令行部署 179
Kingbase FlySync 安装部署手册, Release V1R6

名称含义
replicator.datasource.global.connectionSpec.use_cluster指定是否使用读写分离功能标识,默
认取值为: false。此配置项关闭 JDBC
就变成单机 JDBC,无读写分离功能
replicator.datasource.global.connectionSpec.slave_add当 use_cluster 为 true 时,指定后端
V8 的备节点地址;当 use_cluster 为
false 时无效
replicator.datasource.global.connectionSpec.slave_port当 use_cluster 为 true 时,指定后端
V8 的备节点端口,与备节点地址对
应;当 use_cluster 为 false 时无效
replicator.datasource.global.connectionSpec.nodeList若为 V8R6 则还需添加该参数

注意: nodeList 为集群中指定的各节点的名称,各节点的名称可通过数据库提供的工具./repmgr cluster
show 命令查询获取。要求开启读写分离时必须配置此项,不允许为空并要与节点的地址配置顺序完全一致。
各个节点名称之间用逗号分隔,如: nodeList=node1,node2,nod
示例配置文件和部署结果
示例配置文件如下
[defaults]
install-directory=/home/flysync/flysync_test
profile-script=~/.bash_profile
rmi-port=11000
[oracle11cluster]
role=slave
master=flysync-1
master-kufl-port=3112
members=flysync-2
kufl-port=3112
replication-host=192.168.1.1
replication-port=54323
replication-user=SYSTEM
replication-password=krms
datasource-type=kingbase
datasource-version=8
kingbase-dbname=ORACLE11G
svc-parallelization-type=none
svc-remote-filters=casetransform,rename
property=replicator.filter.casetransform.to_upper_case=true
property=replicator.datasource.global.connectionSpec.use_cluster=true
property=replicator.datasource.global.connectionSpec.slave_add=\
192.168.28.54,192.168.28.55
(continues on next page)
180 第 5 章 同步程序部署
Kingbase FlySync 安装部署手册, Release V1R6
(continued from previous page)
property=replicator.datasource.global.connectionSpec.slave_port=54321,54321
运行 Kingbase FlySync 部署命令
./tools/fspm install
Kingbase FlySync 部署结果
[flysync@flysync-2KingbaseFlySync-V001R002B0916]$./tools/fspm install
NOTE>>Log output being sent to /tmp/flysync/flysync-configure.log
....
WARN>> flysync_2>>ntpd is not running. It is important that configured hosts
have time synchronised.(NtpdRunningCheck)
WARN>> flysync_2>>Linux swappiness is currently set to 60, on restart it
will be 60, consider setting this to 10 or under to avoid swapping.
(SwappinessCheck)
...
#####################################################################
#Next Steps
#####################################################################
Unless automatically started, you must start the Flysync services before the
cluster will be available.
/home/flysync/flysync_esv8/flysync/cluster-home/bin/startall
Wait a minute for the services to start upand configure themselves. After
that you may proceed.
Once your services start successfully replication will begin.
To look at service sand perform administration, run the following command
from any database server.
/home/flysync/flysync_esv8/flysync/flysync-replicator/bin/fsrepctl services
Configurationis now complete. For further information, please consult
Flysync documentation.
NOTE>>Command successfully completed
以上,表示已经完成了 Kingbase FlySync 目标端支持 KingbaseES V8R2 读写分离集群的部署
5.1. 命令行部署 181
Kingbase FlySync 安装部署手册, Release V1R6
5.1.3.9 目标端 KADB
概述
Kingbase FlySync 支持基于 KADB 作为目标端的数据同步,版本从 KADB V001R001C001B0061 开始支持。
本文以下部分对基于 KADB 作为目标端时的部署过程进行阐述。
Kingbase FlySync 同步软件部署
Kingbase FlySync 的配置文件的默认路径为 ($HOME/flysync.ini)
配置文件中的参数含义参见下表

名称含义
kadb-dbname要连接的数据库名

示例配置文件和部署结果
示例配置文件如下
[defaults]
install-directory=/home/flysync/flysync_test
profile-script=~/.bash_profile
rmi-port=11000
[oracle11kadb]
role=slave
master=flysync-1
master-kufl-port=3112
members=flysync-2
kufl-port=3112
replication-host=192.168.1.1
replication-port=54321
replication-user=SYSTEM
replication-password=krms
datasource-type=kadb
kadb-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
主要参数说明:
182 第 5 章 同步程序部署
Kingbase FlySync 安装部署手册, Release V1R6
optimizeRowEvents 和 maxRowBatchSize 是从 V1R2 新引入的入库性能调节参数,合理配置可
以大大提到数据的入库性能。小事务场景下, maxRowBatchSize 表示单表一次入库的数据量。
5000 表示每次入库 5000 条数据。
运行 KADB 的 Kingbase FlySync 部署命令
./tools/fspm install
Kingbase FlySync 部署结果
[flysync@flysync-2KingbaseFlySync-V001R002B0916]$./tools/fspm install
NOTE>>Log output being sent to /tmp/flysync/flysync-configure.log
....
WARN>> flysync_2>>ntpd is not running. It is important that configured
hosts have time synchronised.(NtpdRunningCheck)
WARN>> flysync_2>>Linux swappiness is currently set to 60, on restart it
will be 60,consider setting this to 10 or under to avoid
swapping.(SwappinessCheck)
...
#####################################################################
#Next Steps
#####################################################################
Unless automatically started, you must start the Flysync services before the
cluster will be available.
/home/flysync/flysync_kadb/flysync/cluster-home/bin/startall
Wait a minute for the services to start upand configure themselves. After
that you may proceed.
Once your services start successfully replication will begin.
To look at service sand perform administration, run the following command
from any database server.
/home/flysync/flysync_kadb/flysync/flysync-replicator/bin/fsrepctl services
Configurationis now complete. For further information, please consult
Flysync documentation.
NOTE>>Commandsuccessfully completed
以上,表示已经完成了 Kingbase FlySync 目标端支持 KADB 的部署
Note: NTP(网络时间协议) 未开启,安装时系统会警告,但不影响系统运行。 swappiness 参数默认 60,
5.1. 命令行部署 183
Kingbase FlySync 安装部署手册, Release V1R6
表示内存使用到 100%-60%=40% 的时候,开始出现有交换分区的使用, swappiness 值越小内存的使用率
越高。
在部署 KADB FlySync 的时候,系统会检测 swappiness 值的设置,并以警告形式展示,不影响系统运行。
WARN>> flysync_1>>ntpd is not running. It is important that configured
hosts have time synchronised.(NtpdRunningCheck)
WARN>> flysync_1>>Linux swappiness is currently set to 60, on restart
it will be 60,consider setting this to 10 or under to avoid
swapping.(SwappinessCheck)
注意:
• 当 svc-remote-filters 中加入 rename 关键字,表明开启了名称映射,需要修改对应的映射文件,路径
为 安装目录/filters-config/rename.csv 详情参见faq
• 示例中的配置内容,在实际配置时,需用户根据实际环境进行修改
• 使用 rename 过滤器,需要在安装目录下/filters-config/rename.csv 文件中修改源端和目的端之间模
式和数据库的映射。
5.1.3.10 目标端 PostgreSQL
概述
Kingbase FlySync 支持基于 PostgreSQL 作为目标端的数据同步。本文以下部分对基于 PostgreSQL 作为目标
端时的部署过程进行阐述
PostgreSQL 数据库配置
建立帐号并给予合适的权限
psql> CREATE USER FLYSYNC SUPERUSER PASSWORD 'password';
Kingbase FlySync 同步软件部署
Kingbase FlySync 的配置文件的默认路径为 ($HOME/flysync.ini)
配置文件中的参数含义参见下表

名称含义
datasource-versionpostgresql 版本,可为 9.6 | 10 | 11.5 | 12
postgresql-dbname数据库名称

184 第 5 章 同步程序部署
Kingbase FlySync 安装部署手册, Release V1R6
示例配置文件和部署结果
示例配置文件如下
[defaults]
install-directory=/home/flysync/flysync_test
profile-script=~/.bash_profile
rmi-port=11000
[postgresql]
role=slave
master=flysync-1
master-kufl-port=3112
members=flysync-2
kufl-port=3112
replication-host=192.168.1.1
replication-port=54321
replication-password=krms
replication-user=FLYSYNC
datasource-type=postgresql
datasource-version=9.6
postgresql-dbname=postgres
svc-remote-filters=casetransform,rename
property=replicator.filter.casetransform.to_upper_case=false
运行 PostgreSQL 的 Kingbase FlySync 部署命令
./tools/fspm install
Kingbase FlySync 部署结果
[flysync@flysync-2KingbaseFlySync-V001R002B0916]$./tools/fspm install
NOTE>>Log output being sent to /tmp/flysync/flysync-configure.log
....
WARN>> flysync_2>>ntpd is not running. It is important that configured
hosts have time synchronised.(NtpdRunningCheck)
WARN>> flysync_2>>Linux swappiness is currently set to 60, on restart it
will be 60, consider setting this to 10 or under to avoid
swapping.(SwappinessCheck)
...
#####################################################################
#Next Steps
#####################################################################
Unless automatically started, you must start the Flysync services before the
cluster will be available.
(continues on next page)
5.1. 命令行部署 185
Kingbase FlySync 安装部署手册, Release V1R6
(continued from previous page)
/home/flysync/flysync_esv8/flysync/cluster-home/bin/startall
Wait a minute for the services to start upand configure themselves. After
that you may proceed.
Once your services start successfully replication will begin.
To look at service sand perform administration, run the following command
from any database server.
/home/flysync/flysync_esv8/flysync/flysync-replicator/bin/fsrepctl services
Configurationis now complete. For further information, please consult
Flysync documentation.
NOTE>>Commandsuccessfully completed
以上,表示已经完成了 Kingbase FlySync 目标端支持 PostgreSQL 的部署
注意:
• 当 svc-remote-filters 中加入 rename 关键字,表明开启了名称映射,需要修改对应的映射文件,路径
为 安装目录/filters-config/rename.csv 详情参见FAQ
• 示例中的配置内容,在实际配置时,需用户根据实际环境进行修改
• 使用 rename 过滤器,需要在安装目录下/filters-config/rename.csv 文件中修改源端和目的端之间模
式和数据库的映射
• replicator.filter.casetransform.to_upper_case, 大小写转换, PostgreSQL 使用 false, 转小写
配置文件中的参数含义参见下表

名称含义
[postgresql]服务名
master主节点的机器名,此处填写本机的机器名
master-kufl-port主节点 kufl 监听端口
members当前节点的机器名
datasource-type数据库类型, postgresql
install-directory软件的安装路径
property额外属性,具体参见下表中
replication-hostPostgreSQL 机器的 ip 地址
replication-portPostgreSQL 的端口
replication-userPostgreSQL 的连接帐号

continues on next page
186 第 5 章 同步程序部署
Kingbase FlySync 安装部署手册, Release V1R6
Table 4 – continued from previous page

名称含义
replication-passwordPostgreSQL 的连接密码
role同步角色,目标端为 slave
svc-remote-filters目标端 filter 配置

5.1.3.11 目标端 DM
概述
Kingbase FlySync 支持基于 DM 作为目标端的数据同步,对 DM 的限制为:
• DM7、 DM8
本文以下部分对基于 DM 作为目标端时的部署过程进行阐述。
DM 数据库配置
建立帐号并给予合适的权限
dsql> CREATE USER FLYSYNC IDENTIFIED BY fuza_123_password;
Kingbase FlySync 同步软件部署
Kingbase FlySync 的配置文件的默认路径为 ($HOME/flysync.ini)
配置文件中的参数含义参见下表

名称含义
[kingbase7dm8]服务名
master主节点的机器名,此处填写本机的机器名
master-kufl-port主节点 kufl 监听端口
members当前节点的机器名
datasource-type数据库类型, dm
install-directory软件的安装路径
property额外属性,具体参见下表中
replication-hostDM 机器的 ip 地址
replication-portDM 的端口
replication-userDM 的连接帐号
replication-passwordDM 的连接密码
role同步角色,目标端为 slave
svc-remote-filters目标端 filter 配置

5.1. 命令行部署 187
Kingbase FlySync 安装部署手册, Release V1R6
property 属性的名称和含义见下表

名称含义
replicator.filter.casetransform.to_upper_case大小写转换, dm 使用 true
replicator.datasource.global.connectionSpec.urlOptionsUrl 连 接 串 参 数, 此 处
schema=PUBLIC1 schema 表 示 默
认 DDL 同步的模式

示例配置文件和部署结果
示例配置文件如下
[defaults]
install-directory=/home/flysync/flysync_dm
profile-script=~/.bash_profile
rmi-port=11000
[kingbase7dm8]
role=slave
master=flysync-1
master-kufl-port=3112
members=flysync-2
replication-host=dm8
replication-port=5236
replication-user=SYSDBA
replication-password=123456789
datasource-type=dm
svc-remote-filters=rename,casetransform,replaceStatement
property=replicator.datasource.global.connectionSpec.urlOptions=schema=PUBLIC1
主要参数说明:
replaceStatement 用来指定 DDL 的替换规则(用来进行异构 DDL 的转换,允许正则表达式)具
体实例参见 安装目录/filters-config/replaceStatement.csv
运行 DM 的 Kingbase FlySync 部署命令
./tools/fspm install
Kingbase FlySync 部署结果
[flysync@flysync-2KingbaseFlySync-V001R002B0916]$./tools/fspm install
NOTE>>Log output being sent to /tmp/flysync/flysync-configure.log
....
WARN>> flysync_2>>ntpd is not running. It is important that configured
hosts have time synchronised.(NtpdRunningCheck)
(continues on next page)
188 第 5 章 同步程序部署
Kingbase FlySync 安装部署手册, Release V1R6
(continued from previous page)
WARN>> flysync_2>>Linux swappiness is currently set to 60, on restart it
will be 60, consider setting this to 10 or under to avoid
swapping.(SwappinessCheck)
...
#####################################################################
#Next Steps
#####################################################################
Unless automatically started, you must start the Flysync services before the
cluster will be available.
/home/flysync/flysync_dm/flysync/cluster-home/bin/startall
Wait a minute for the services to start upand configure themselves. After
that you may proceed.
Once your services start successfully replication will begin.
To look at service sand perform administration, run the following command
from any database server.
/home/flysync/flysync_dm/flysync/flysync-replicator/bin/fsrepctl services
Configurationis now complete. For further information, please consult
Flysync documentation.
NOTE>>Commandsuccessfully completed
以上,表示已经完成了 Kingbase FlySync 目标端支持 Kingbase 的部署
Note: NTP(网络时间协议) 未开启,安装时系统会警告,但不影响系统运行。 swappiness 参数默认 60,
表示内存使用到 100%-60%=40% 的时候,开始出现有交换分区的使用, swappiness 值越小内存的使用率
越高。
在部署 Kingbase FlySync 的时候,系统会检测 swappiness 值的设置,并以警告形式展示,不影响系统运行。
WARN>> flysync_1>>ntpd is not running. It is important that configured
hosts have time synchronised.(NtpdRunningCheck)
WARN>> flysync_1>>Linux swappiness is currently set to 60, on restart
it will be 60, consider setting this to 10 or under to avoid
swapping. (SwappinessCheck)
注意:
5.1. 命令行部署 189
Kingbase FlySync 安装部署手册, Release V1R6
• 当 svc-remote-filters 中加入 rename 关键字,表明开启了名称映射,需要修改对应的映射文件,路径
为 安装目录/filters-config/rename.csv
• 示例中的配置内容,在实际配置时,需用户根据实际环境进行修改
• 使用 rename 过滤器,需要在安装目录下/filters-config/rename.csv 文件中修改源端和目的端之间模
式和数据库的映射。
5.1.3.12 目标端 KafKa
概述
Kingbase FlySync 从 V1R2 版本开始,支持基于 KafKa 作为目标端的数据同步
本文以下部分对基于 KafKa 作为目标端时的部署过程进行阐述
KafKa 配置
原则上, KafKa 不需要做特殊的配置,但是为了保证 Kingbase FlySync 的数据能够传输的 Kafka,需要保证
KafKa 打开了外部监听地址,比如
在 server.properties 配置文件中把
#listeners=PLAINTEXT://:9092
修改为
listeners=PLAINTEXT://对外 IP 地址:9092
Kingbase FlySync 同步软件部署
Kingbase FlySync 的配置文件的默认路径为 ($HOME/flysync.ini)
property 属性的名称和含义见下表

名称含义
replicator.applier.dbms.embedCommitTime是否在消息中嵌入提交时间,(true/flase),默认
true
replicator.applier.dbms.embedSchemaTable是否在提交中嵌入模式名和表名,(true/flase),默
认 true
replicator.applier.dbms.keyFormat消息 ID 的格式,参见下面的说明
replicator.applier.dbms.requireacks写入 Kafka 集群时,需要的 ack 数量。(1 / all)。默
认 all

continues on next page
190 第 5 章 同步程序部署
Kingbase FlySync 安装部署手册, Release V1R6
Table 6 – continued from previous page

名称含义
replicator.applier.dbms.retrycount每个消息的重试次数,默认 0
replicator.applier.dbms.zookeeperString到 Zookeeper 的链接串,包括 hostname 和 port;
默认 ${replicator.global.db.host}:2181
replicator.applier.dbms.enabletxninfo是否嵌入事务信息 (true/flase),默认 false
replicator.applier.dbms.enabletxninfoTopic是否开启事务信息 topic(true/flase),默认 false
replicator.applier.dbms.txninfoTopic事务信息 topic 名称,默认 flysync_transactions

设置 kafka 内部参数的参数名称和含义见下表

名称含义
replicator.applier.dbms.bufferMemory设置用于缓存消息的缓冲区大小,默认 33554432,
单位字节
replicator.applier.dbms.batchSize设置批量发送的数据大小,默认是 16384,即
16KB
replicator.applier.dbms.lingerMs控制消息发送延时行为,默认是 1
replicator.applier.dbms.compressionType设置压缩消息的格式( none/gzip/snappy/lz4),
none 为不压缩消息,默认是 lz4
replicator.applier.dbms.maxRequestSize控制用于发送请求的大小,默认是 1048576,单位
字节
replicator.applier.dbms.requestTimeoutMs设置客户端超时时间,表示客户端将等待这么多时
间之后让服务器响应请求,默认 60000

示例配置文件和部署结果
示例配置文件如下
[defaults]
user=klwang
install-directory=/tmp/fstest
profile-script=~/.bash_profile
rmi-port=11000
[kingbase2kafka]
role=slave
master=flysync-1
master-kufl-port=3112
members=flysync-2
kufl-port=3112
replication-host=192.168.2.173
replication-port=9092
(continues on next page)
5.1. 命令行部署 191
Kingbase FlySync 安装部署手册, Release V1R6
(continued from previous page)
replication-user=root
replication-password=null
datasource-type=kafka
property=replicator.applier.dbms.enabletxninfo=true
property=replicator.applier.dbms.enabletxninfoTopic=true
运行 Kingbase FlySync 部署命令
./tools/fspm install
Kingbase FlySync 部署结果
[flysync@flysync-1KingbaseFlySync-V00XR00XC00XBXXXXXXXX]$./tools/fspm install
NOTE>>Log output being sent to /tmp/fstest/flysync-configure.log
....
WARN>> flysync_1>>ntpd is not running. It is important that configured
host shave time synchronised. (NtpdRunningCheck)
WARN>> flysync_1>>Linux swappinessis currently set to 60, on restart it
will be 60, consider setting this to 10 or under to avoid
swapping. (SwappinessCheck)
....
#####################################################################
#Next Steps
#####################################################################
Unless automatically started, you must start the flysync services before the
cluster will be available.
/tmp/fstest/flysync/cluster-home/bin/startall
Wait a minute for the services to startup and configure themselves. After
that you may proceed.
Once your services start successfully replication will begin.
To look at services and perform administration, run the following command
from any database server.
/tmp/fstest/flysync/flysync-replicator/bin/fsrepctl services
Configuration is now complete. For further information, please consult
flysync documentation.
NOTE>>Command successfully completed
以上,表示已经完成了 Kingbase FlySync 目标端支持 KafKa 的部署
192 第 5 章 同步程序部署
Kingbase FlySync 安装部署手册, Release V1R6
Note: NTP(网络时间协议) 未开启,安装时系统会警告(同步两端的时间不一致,可能会出现时间戳类型同
步问题)。 swappiness 参数默认 60,表示内存使用到 100%-60%=40% 的时候,开始出现有交换分区的使
用, swappiness 值越小内存的使用率越高。
在部署 Kingbase FlySync 的时候,系统会检测 swappiness 值的设置,并以警告形式展示,不影响系统运行。
WARN>> flysync_1>>ntpd is not running. It is important that configured
host shave time synchronised. (NtpdRunningCheck)
WARN>> flysync_1>>Linux swappiness is currently set to 60, onrestart it
will be 60, consider setting this to 10 orunder to avoid
swapping. (SwappinessCheck)
5.1.3.13 目标端 Inceptor
概述
Kingbase FlySync 支持基于 Inceptor 作为目标端的数据同步。
本文以下部分对基于 Inceptor 作为目标端时的部署过程进行阐述。
Inceptor 数据库配置
在部署 Inceptor 的环境上,使用 root 用户查找 Inceptor 的两个配置文件: core-site.xml 和 hdfs-site.xml
shell> find / -name core-site.xml
shell> find / -name hdfs-site.xml
将查找到的两个文件拷贝到待安装同步服务的用户目录 (flysync) 下, 并使用 root 用户将权限赋予同步用户
flysync
shell> cp core-site.xml /home/flysync/
shell> cp hdfs-site.xml /home/flysync/
shell> chown -R flysync:flysync /home/flysync/core-site.xml
shell> chown -R flysync:flysync /home/flysync/hdfs-site.xml
5.1. 命令行部署 193
Kingbase FlySync 安装部署手册, Release V1R6
Kingbase FlySync 同步软件部署
Kingbase FlySync 的配置文件的默认路径为 ($HOME/flysync.ini)
配置文件中的参数含义参见下表
property 属性的名称和含义见下表

名称含义
replicator.applier.dbms.coreSitePath=inceptor 的 core-site.xml 配置文件路径
replicator.applier.dbms.hdfsSitePath=inceptor 的 hdfs-site.xml 配置文件路径
replicator.applier.dbms.writeByJdbc=是否启用 jdbc 方式入库(默认为 false)
replicator.applier.dbms.hiveURL=inceptor 中 hive 的 jdbc 连接地址
replicator.applier.dbms.hdfsUser=inceptor 中 hdfs 的使用用户(默认为
hive)
replicator.applier.dbms.hdfsUrl=inceptor 中 hdfs 使用的 ip 地址(如:
0.0.0.0)
replicator.applier.dbms.hdfsPort=inceptor 中 hdfs 使用的端口号(如:
8020)
replicator.applier.dbms.orcFileTempPath=hdfs 入库时设定的 orc 文件在 hdfs 中
的暂存地址 (默认为/tmp/test/)
replicator.applier.dbms.loadData=hdfs 入库时是否自动将文件数据录入
到 hive 中(默认为 true)

示例配置文件和部署结果
示例配置文件如下
[defaults]
install-directory=/home/flysync/flysync_inceptor
profile-script=~/.bash_profile
rmi-port=11000
[inceptor]
role=slave
master=flysync-1
master-kufl-port=3112
members=flysync-2
kufl-port=3112
replication-host=inceptorIP
replication-port=10000
datasource-type=inceptor
datasource-version=TDH
(continues on next page)
194 第 5 章 同步程序部署
Kingbase FlySync 安装部署手册, Release V1R6
(continued from previous page)
property=replicator.applier.dbms.coreSitePath=/home/flysync/
property=replicator.applier.dbms.hdfsSitePath=/home/flysync/
property=replicator.applier.dbms.writeByJdbc=true
property=replicator.applier.dbms.hiveURL=jdbc:hive2://inceptorIP:10000/test
property=replicator.applier.dbms.hdfsUser=hive
property=replicator.applier.dbms.hdfsUrl=hdfsIP
property=replicator.applier.dbms.hdfsPort=8020
property=replicator.applier.dbms.orcFileTempPath=/tmp/test
property=replicator.applier.dbms.loadData=true
svc-remote-filters=rename
inceptor-dbname=test
主要参数说明:
rename 用来指定模式名表名的替换规则具体实例参见 安装目录/filters-config/rename.csv
运行 inceptor 的 Kingbase FlySync 部署命令
./tools/fspm install
Kingbase FlySync 部署结果
[flysync@flysync-2KingbaseFlySync-V001R002B0916]$./tools/fspm install
NOTE>>Log output being sent to /tmp/flysync/flysync-configure.log
....
WARN>> flysync_2>>ntpd is not running. It is important that configured
hosts have time synchronised.(NtpdRunningCheck)
WARN>> flysync_2>>Linux swappiness is currently set to 60, on restart it
will be 60, consider setting this to 10 or under to avoid
swapping.(SwappinessCheck)
...
#####################################################################
#Next Steps
#####################################################################
Unless automatically started, you must start the Flysync services before the
cluster will be available.
/home/flysync/flysync_inceptor/flysync/cluster-home/bin/startall
Wait a minute for the services to start upand configure themselves. After
that you may proceed.
Once your services start successfully replication will begin.
To look at service sand perform administration, run the following command
(continues on next page)
5.1. 命令行部署 195
Kingbase FlySync 安装部署手册, Release V1R6
(continued from previous page)
from any database server.
/home/flysync/flysync_inceptor/flysync/flysync-replicator/bin/fsrepctl services
Configurationis now complete. For further information, please consult
Flysync documentation.
NOTE>>Commandsuccessfully completed
以上,表示已经完成了 Kingbase FlySync 目标端支持 inceptor 的部署
Note: NTP(网络时间协议) 未开启,安装时系统会警告,但不影响系统运行。 swappiness 参数默认 60,
表示内存使用到 100%-60%=40% 的时候,开始出现有交换分区的使用, swappiness 值越小内存的使用率
越高。
在部署 Kingbase FlySync 的时候,系统会检测 swappiness 值的设置,并以警告形式展示,不影响系统运行。
WARN>> flysync_1>>ntpd is not running. It is important that configured
hosts have time synchronised.(NtpdRunningCheck)
WARN>> flysync_1>>Linux swappiness is currently set to 60, on restart
it will be 60, consider setting this to 10 or under to avoid
swapping. (SwappinessCheck)
注意:
• 当 svc-remote-filters 中加入 rename 关键字,表明开启了名称映射,需要修改对应的映射文件,路径
为 安装目录/filters-config/rename.csv
• 示例中的配置内容,在实际配置时,需用户根据实际环境进行修改
• 使用 rename 过滤器,需要在安装目录下/filters-config/rename.csv 文件中修改源端和目的端之间模
式和数据库的映射。
5.1.3.14 目标端 PolarDB
概述
Kingbase FlySync 支持基于 PolarDB 作为目标端的数据同步。本文以下部分对基于 PolarDB 作为目标端时的
部署过程进行阐述
196 第 5 章 同步程序部署
Kingbase FlySync 安装部署手册, Release V1R6
PolarDB 数据库配置
Kingbase FlySync 同步软件部署
Kingbase FlySync 的配置文件的默认路径为 ($HOME/flysync.ini)
配置文件中的参数含义参见下表

名称含义
polardb-dbname数据库名称

示例配置文件和部署结果
示例配置文件如下
[defaults]
install-directory=~/flysync_test
profile-script=~/.bash_profile
rmi-port=11000
[polardb]
role=slave
master=flysync-1
master-kufl-port=3112
members=flysync-2
kufl-port=3112
replication-host=192.168.1.1
replication-port=5432
replication-password=123456
replication-user=system
datasource-type=polardb
polardb-dbname=postgres
svc-remote-filters=casetransform,rename
property=replicator.filter.casetransform.to_upper_case=false
运行 PolarDB 的 Kingbase FlySync 部署命令
./tools/fspm install
Kingbase FlySync 部署结果
[flysync@flysync-2KingbaseFlySync-V001R002B0916]$./tools/fspm install
NOTE>>Log output being sent to /tmp/flysync/flysync-configure.log
....
WARN>> flysync_2>>ntpd is not running. It is important that configured
(continues on next page)
5.1. 命令行部署 197
Kingbase FlySync 安装部署手册, Release V1R6
(continued from previous page)
hosts have time synchronised.(NtpdRunningCheck)
WARN>> flysync_2>>Linux swappiness is currently set to 60, on restart it
will be 60, consider setting this to 10 or under to avoid
swapping.(SwappinessCheck)
...
#####################################################################
#Next Steps
#####################################################################
Unless automatically started, you must start the Flysync services before the
cluster will be available.
/home/flysync/flysync_esv8/flysync/cluster-home/bin/startall
Wait a minute for the services to start upand configure themselves. After
that you may proceed.
Once your services start successfully replication will begin.
To look at service sand perform administration, run the following command
from any database server.
/home/flysync/flysync_esv8/flysync/flysync-replicator/bin/fsrepctl services
Configurationis now complete. For further information, please consult
Flysync documentation.
NOTE>>Commandsuccessfully completed
以上,表示已经完成了 Kingbase FlySync 目标端支持 PolarDB 的部署
注意:
• 当 svc-remote-filters 中加入 rename 关键字,表明开启了名称映射,需要修改对应的映射文件,路径
为 安装目录/filters-config/rename.csv 详情参见FAQ
• 示例中的配置内容,在实际配置时,需用户根据实际环境进行修改
• 使用 rename 过滤器,需要在安装目录下/filters-config/rename.csv 文件中修改源端和目的端之间模
式和数据库的映射
• replicator.filter.casetransform.to_upper_case, 大小写转换, PolarDB 使用 false, 转小写
配置文件中的参数含义参见下表
198 第 5 章 同步程序部署
Kingbase FlySync 安装部署手册, Release V1R6

名称含义
[polardb]服务名
master主节点的机器名,此处填写本机的机器名
master-kufl-port主节点 kufl 监听端口
members当前节点的机器名
datasource-type数据库类型, polardb
install-directory软件的安装路径
property额外属性,具体参见下表中
replication-hostPolarDB 机器的 ip 地址
replication-portPolarDB 的端口
replication-userPolarDB 的连接帐号
replication-passwordPolarDB 的连接密码
role同步角色,目标端为 slave
svc-remote-filters目标端 filter 配置

5.1.3.15 部署 DB2 目标端
概述
KingbaseFlySync 支持基于 DB2 作为目标端的数据同步,对 DB2 版本的限制为:
• 9.7、 10、 11
本文以下部分对基于 DB2 作为目标端时的部署过程进行阐述
Kingbase Flysync 同步软件部署
Kingbase Flysync 的配置文件的默认路径为 ($HOME/flysync.ini)
示例配置文件和部署结果
示例配置文件如下
[defaults]
install-directory=/home/flysync/flysync_test
profile-script=~/.bash_profile
rmi-port=11000
[kesv8db2]
role=slave
master=flysync-1
master-kufl-port=3112
members=flysync-2
(continues on next page)
5.1. 命令行部署 199
Kingbase FlySync 安装部署手册, Release V1R6
(continued from previous page)
kufl-port=13112
replication-host=ip
replication-port=50000
replication-user=source_user
replication-password=source_passwd
datasource-type=db2
db2-dbname=sample
svc-remote-filters=rename
运行 Kingbase Flysync 部署命令
./tools/fspm install
Flysync 部署结果
[flysync@db2 KingbaseFlySync-V002R002C004B20230214-replicator]$./tools/fspm install
WARN >> localhost >> The open file limit is set to '1024', we suggest a value of␣
,→65535. Add '* - nofile 65535' to your /etc/security/limits.conf and␣
,→restart your session (OpenFilesLimitCheck)
WARN >> localhost >> ntpd is not running. It is important that configured hosts␣
,→have time synchronised. (NtpdRunningCheck)
WARN >> localhost >> Linux swappiness is currently set to 30, on restart it will␣
,→be 60, consider setting this to 10 or under to avoid swapping. (SwappinessCheck)
License : /home/kfs1/flysync_test/license.dat
#####################################################################
# Next Steps
#####################################################################
Unless automatically started, you must start the FlySync services before the
cluster will be available.
/home/kfs1/flysync_test/flysync/cluster-home/bin/startall
Wait a minute for the services to start up and configure themselves. After
that you may proceed.
We have added FlySync environment variables to ~/.bash_profile.
Run `source ~/.bash_profile` to rebuild your environment.
Once your services start successfully replication will begin.
To look at services and perform administration, run the following command
from any database server.
/home/kfs1/flysync_test/flysync/flysync-replicator/bin/fsrepctl services
(continues on next page)
200 第 5 章 同步程序部署
Kingbase FlySync 安装部署手册, Release V1R6
(continued from previous page)
Configuration is now complete. For further information, please consult
FlySync documentation.
NOTE >> Command successfully completed
以上,表示已经完成了 KingbaseFlysync 目标端支持 DB2 的部署
5.1.3.16 目标端 Gbase8a
概述
Kingbase Flysync 从 V2R2 版本开始,支持基于 Gbase8a 作为目标端的数据同步,对 Gbase8a 的限制为:
• 9.5.2.42-patch.129983, 8.6.2.33-R21.111932
本文以下部分对基于 Gbase8a 作为目标端时的部署过程进行阐述
Gbase8a 数据库配置
1. 连接帐号配置
建立帐号并给予合适的权限
gbase> CREATE USER flysync@'%' IDENTIFIED BY 'password';
gbase> GRANT ALL ON *.* TO flysync@'%';
Kingbase Flysync 同步软件部署
Kingbase Flysync 的配置文件的默认路径为 ($HOME/flysync.ini)
示例配置文件和部署结果
示例配置文件如下
[defaults]
install-directory=/home/flysync/flysync_test
profile-script=~/.bash_profile
rmi-port=11000
[gbase8a]
role=slave
master=flysync-1
master-kufl-port=3112
(continues on next page)
5.1. 命令行部署 201
Kingbase FlySync 安装部署手册, Release V1R6
(continued from previous page)
members=flysync-2
kufl-port=3112
replication-host=192.168.11.32
replication-port=5258
replication-user=root
replication-password=password
datasource-type=gbase
datasource-version = 8a
svc-remote-filters=casetransform,rename
property=replicator.filter.casetransform.to_upper_case=false
运行 Kingbase FlySync 部署命令
./tools/fspm install
Kingbase FlySync 部署结果
[flysync@flysync-2KingbaseFlySync-V002R002B20220925]$./tools/fspm install
NOTE>>Log output being sent to /tmp/flysync/flysync-configure.log
....
WARN>> flysync_1>>ntpd is not running. It is important that configured
hosts have time synchronised.(NtpdRunningCheck)
WARN>> flysync_1>>Linux swappiness is currently set to 60, on restart it
will be 60,consider setting this to 10 or under to avoid
swapping.(SwappinessCheck)
...
#####################################################################
#Next Steps
#####################################################################
Unless automatically started, you must start the Flysync services before the
cluster will be available.
/home/flysync/flysync_test/flysync/cluster-home/bin/startall
Wait a minute for the services to start upand configure themselves. After
that you may proceed.
Once your services start successfully replication will begin.
To look at service sand perform administration, run the following command
from any database server.
/home/flysync/flysync_test/flysync/flysync-replicator/bin/fsrepctl services
(continues on next page)
202 第 5 章 同步程序部署
Kingbase FlySync 安装部署手册, Release V1R6
(continued from previous page)
Configurationis now complete. For further information, please consult
Flysync documentation.
NOTE>>Command successfully completed
以上,表示已经完成了 Kingbase Flysync 目标端支持 Gbase8a 的部署
Note: NTP(网络时间协议) 未开启,安装时系统会警告,但不影响系统运行。 swappiness 参数默认 60,
表示内存使用到 100%-60%=40% 的时候,开始出现有交换分区的使用, swappiness 值越小内存的使用率
越高。
在部署 Kingbase Flysync 的时候,系统会检测 swappiness 值的设置,并以警告形式展示,不影响系统运行。
WARN>> flysync_1>>ntpd is not running. It is important that configured
hosts have time synchronised.(NtpdRunningCheck)
WARN>> flysync_1>>Linux swappiness is currently set to 60, on restart
it will be 60, consider setting this to 10 or under to avoid
swapping.(SwappinessCheck)
Important: 部署过程中,用户自行填写的 flysync.ini 文件或者 setupCDC.conf 文件中的相关配置参数,其
中涉及到数据库密码,可能存在安全风险。待部署完成后,请用户自行将密码删除。
5.2 图形化部署
5.2.1 概述
Kingbase FlySync 管控平台是一个集中控制平台,图形化部署是集成在管控平台上方便用户部署同步程序的
功能。
5.2.2 部署
部署是将用户所想的 Kingbase FlySync 的拓扑关系部署到目标物理服务器上,方便用户使用 Kingbase
Flysync 同步程序。
5.2. 图形化部署 203
Kingbase FlySync 安装部署手册, Release V1R6
5.2.2.1 前置条件
1. 管控平台安装完成
2. 管控平台启动成功
5.2.2.2 操作步骤
1. 登录管理控制台
Windows 平台,在开始菜单点击【打开管控平台】
Linux 平台,在开始菜单的点击【打开管控平台】
输入用户名,密码,验证码登录到管理控制台
默认地址: http://127.0.0.1:8089
默认用户名/密码: admin/admin
注意: 首次登陆后建议及时修改用户名,密码以确保信息安全。
登录管理控制台成功, 首先进入主要操作页面和监控页面。
204 第 5 章 同步程序部署
Kingbase FlySync 安装部署手册, Release V1R6
2. 新建节点
1) 点击【部署管理】 ->【节点管理】
2) 点击【新建】
3) 填写节点对应信息
参数说明:
• 名称:安装同步程序所在物理的描述信息
• 地址:安装同步程序所在物理服务器的 IP 地址
• 端口:安装同步程序所在物理服务器的 RMI 通讯端口,默认 11000
5.2. 图形化部署 205
Kingbase FlySync 安装部署手册, Release V1R6
• 是否启用 SSH:是否能够 SSH 的方式登录物理服务器,如果不启用则该节点在图形界
面中的启动停止、服务的启动停止、上传 license、查看 license、卸载、拓扑安装功能
将不能使用
• 安装用户名:安装同步程序所在物理服务器的用户名,默认 flysync,用户名暂不支持带
下划线‘_’
• 安装用户密码:安装同步程序所在物理服务器的用户密码
• 安装目录:安装同步程序的目录,在用户的根目录下的目录
• SSH 端口:连接所在节点 SSH 通讯端口,默认 22
4) 点击【保存】
添加成功后在表格中可以看到相应的节点信息
注意:
1) 需确保端口,SSH 端口有效
2) 需确保物理服务器的安装用户有效
3) 需确保物理服务器节点可以访问
4)IP,端口,安装用户相同视为同一个节点,新建不同的节点只要 IP, 端口,安装用户不同
即可。
3. 部署配置
方式一:拖拽式配置
1) 点击【部署管理】 ->【拓扑配置】
206 第 5 章 同步程序部署
Kingbase FlySync 安装部署手册, Release V1R6
界面区域说明
• 1 区域:可以支持同步的数据源列表
• 2 区域:拓扑图主操作区域
• 3 区域:安装过程中日志的输出区域
2) 拖动对应的数据源图标到右边面板中
3) 连线(箭头方向代表从源端指向目标端)
4) 双击某个数据源节点,对该节点的相关参数进行配置
点击数据源节点可设置参数主要分为三部分:
1)设置部署参数
• 同步部署方式:根据实际需要,选择同步程序是否与数据库部署在同一
物理节点上,若部署在同一物理节点则选择【集中部署】,若不考虑部署
在同一物理节点上,则选择【分离部署】
• 同步服务部署节点:选择当前同步服务程序所要安装的物理节点 IP,可
5.2. 图形化部署 207
Kingbase FlySync 安装部署手册, Release V1R6
选 IP 为【节点管理】中已经完成创建且可用的节点 IP。
2)设置数据库参数
• IP 地址:数据库 IP 地址
• 端口:数据库访问端口
• 用户名:数据库访问用户名
• 密码:数据库访问密码
3)设置同步服务参数
• 本服务名称:当前配置节点所承担的服务角色名称
• 本服务端口:当前配置节点所承担的服务角色服务端口
• 源端服务 IP 地址: 端口:当前配置节点连接源端服务的 IP 地址和端口
注: 多对 1 场景下,目标端节点的同步服务参数会出现多个标签,即【目
标端 1】、【目标端 2】等,需要分别对目标端进行设置,如下图所示:
跨隔离装置
• 模式:是否为跨隔离的方式访问
• 目标端 IP 地址: 端口:连接目标端的 Kinbgase FlySync 程序的 IP 地址
及端口
其他
• 高级属性:基础属性外服务的相关参数
5) 配置完成后点击【确定】按钮
方式二:向导模式部署
向导模式说明
向导模式是一个简化部署流程,填写少量的配置参数,低成本的快速安装同步服务
的模块,达到简化配置,快速安装的目的。向导模式包含 5 种同步服务模式( 1-1
模式, 1-N 模式, N-1 模式,双轨模式,双向模式)
208 第 5 章 同步程序部署
Kingbase FlySync 安装部署手册, Release V1R6
1) 点击【部署管理】 ->【向导模式】
拓扑场景介绍
• 1-1 模式:最常用的拓扑类型,主要面向数据库容灾备份场景,用于单个
数据源之间的数据同步。
• 数据分发模式:主要面向数据分发场景,用于多个数据库的数据向多个
目标端数据源进行数据同步的场景。
• 数据汇集模式:面向数据集中场景,用于多个数据库的数据向一个数据
库中汇集。
• 双轨并行模式:主要用于国产数据库的替代。一个数据库作为主库对外承
载业务,另一个作为备库,随时应对所需的业务切换,因业务驱动需要
对数据库进行切换时,原作为备库的数据库,可以快速接管。
2) 选择点击需要应用的场景(举例 1-1 模式)
3) 配置源端服务信息
5.2. 图形化部署 209
Kingbase FlySync 安装部署手册, Release V1R6
• 同步部署方式:与方式一中类似此处不再重复叙述
• 同步服务部署节点:与方式一中类似此处不再重复叙述。
• 设置数据库参数:数据库的基本信息与方式一类似。需要注意的是选择数
据库模式是确定需要同步的范围。
• 设置同步服务参数:程序会根据配置信息自动生成当前服务名称和服务
端口。
4) 源端评估 评估同步程序和数据源相关配置是否符合同步服务安装要求
• 导出结果:导出需要整改的配置项相关信息
• 一键忽略:忽略掉可忽略的评估项继续配置
5) 配置源端高级参数 基础属性外服务的相关参数这一部分不需要过于关注,对应
相关配置有默认值,除了有特殊的场景外,一般不需要去配置。
210 第 5 章 同步程序部署
Kingbase FlySync 安装部署手册, Release V1R6
注: 多对 1 场景下,源端服务会出现多个,即【源端 1】、【源端 2】等,需要分别
配置源端服务信息,源端评估,源端高级参数。
6) 配置目标端服务信息(类似源端配置方式)
7) 目标端评估(类似源端评估)
8) 配置目标端高级参数(类似源端配置)
注: 1 对多场景下,目标端服务会出现多个,即【目标端 1】、【目标端 2】等,需
要分别对目标端的服务信息,目标端评估,目标端高级参数进行设置。
9) 配置链路信息
• 选择同步表:根据业务需要选择对应模式下的表。
• 同步映射配置:有两种设置方式:列表模式(在列表里进行配置)和表达
式模式(参考提供的语法进行配置),设置同步到目标端后的模式名,表
名,列名等。
注: 在数据分发和数据汇集场景下,会有多条链路如【链路一】,【链路二】
等,需要对每条链路进行配置。
10) 拓扑确认确认配置的数据库信息机器信息配置参数信息同步表信息
5.2. 图形化部署 211
Kingbase FlySync 安装部署手册, Release V1R6
• 保存并退出:保存当前配置不安装可在拓扑配置页面查看对应的配置
信息。
• 立即安装:保存当前配置且立即安装。
参数说明
图形化界面配置的各类参数项与后台运行安装操作所需的 flysync.ini 文件中的参数项的对应关系如下,
不同的数据源可分别参见对应说明。
MySQL/MariaDB
注意: 其中源端 MySQL 数据库配置参照命令行部署, 详情参见 源端 MySQL
其中源端 MariaDB 数据库配置参照命令行部署, 详情参见 源端 MariaDB

中文英文
IP 地址replication-host
端口replication-port
用户名replication-user
密码replication-password
本服务名称[service-name]
本服务端口kufl-port
模式repl_mode
源端服务 IP 地址: 端口master, master-kufl-port
目标端 IP 地址: 端口repl_master_gapsenduri(源端) repl_store_kufl_gaplistenuri(目标端)
高级属性property

高级属性设置参考
skip-validation-check=MySQLPermissionsCheck
preferred_path=/usr/local/mysql/bin
datasource-mysql-conf=/usr/local/mysql/my.cnf
svc-remote-filters=casetransform
property=replicator.filter.casetransform.to_upper_case=false
Oracle
212 第 5 章 同步程序部署
Kingbase FlySync 安装部署手册, Release V1R6
注意: 其中源端 Oracle 数据库配置参照命令行部署, 操作步骤详情参见 源端 Oracle

中文英文
IP 地址replication-host
端口replication-port
用户名replication-user
密码replication-password
服务名datasource-oracle-service
是否集群replicator.datasource.global.connectionSpec.use_cluster
集群节点 IP 地址: 端口replicator.datasource.global.connectionSpec.slave_add
本服务名称[service-name]
本服务端口kufl-port
源端服务 IP 地址: 端口master, master-kufl-port
模式repl_mode
目标端 IP 地址: 端口repl_master_gapsenduri(源端) repl_store_kufl_gaplistenuri(目标端)
高级属性property

高级属性设置参考
svc-extractor-filters=dropstatementdata,replicate
property=replicator.filter.replicate.do=test.*
svc-remote-filters=casetransform
property=replicator.filter.casetransform.to_upper_case=ture
property=replicator.extractor.dbms.tablePatterns=
property=replicator.extractor.dbms.scnSegmentationThreshold=5000
SQLServer
注意: 源端 SqlServer 数据库配置参照命令行部署, 操作步骤详情参见 源端 SQL Server

中文英文
IP 地址replication-host
端口replication-port
用户名replication-user
密码replication-password
数据库名mssql-dbname
本服务名称[service-name]
本服务端口kufl-port
源端服务 IP 地址: 端口master, master-kufl-port
模式repl_mode
目标端 IP 地址: 端口repl_master_gapsenduri(源端) repl_store_kufl_gaplistenuri(目标端)
高级属性property

5.2. 图形化部署 213
Kingbase FlySync 安装部署手册, Release V1R6
高级属性设置参考
svc-remote-filters=casetransform
property=replicator.filter.casetransform.to_upper_case=false
svc-extractor-filters=dropstatementdata,replicate
property=replicator.filter.replicate.do=test.*
property=replicator.extractor.dbms.minSleepTime=5
property=replicator.extractor.dbms.sleepAddition=1
property=replicator.extractor.dbms.maxSleepTime=15
Kingbase
注意: 源端 KingbaseV7 数据库配置参照命令行部署, 操作步骤详情参见 源端 KingbaseES
V7
源端 KingbaseV8 数据库配置参照命令行部署, 操作步骤详情参见 源端 KingbaseES V8

中文英文
IP 地址replication-host
端口replication-port
用户名replication-user
密码replication-password
数据库名kingbase-dbname
版本datasource-version
是否集群 (v8)replicator.datasource.global.connectionSpec.use_cluster
集群节点 IP 地址: 端口 (v8)replicator.datasource.global.connectionSpec.slave_add
本服务名称[service-name]
本服务端口kufl-port
源端服务 IP 地址: 端口master, master-kufl-port
模式repl_mode
目标端 IP 地址: 端口repl_master_gapsenduri(源端) repl_store_kufl_gaplistenuri(目标端)
高级属性property

高级属性设置参考
svc-extractor-filters=dropstatementdata,replicate
property=replicator.filter.replicate.do=test.*
property=replicator.extractor.dbms.minRowsPerBlock=500
svc-remote-filters=casetransformproperty=replicator.filter.casetransform.to_upper_
,→case=true
property=replicator.applier.dbms.optimizeRowEvents=true
property=replicator.applier.dbms.maxRowBatchSize=5000
KADB
214 第 5 章 同步程序部署
Kingbase FlySync 安装部署手册, Release V1R6

中文英文
IP 地址replication-host
端口replication-port
用户名replication-user
密码replication-password
数据库名kingbase-dbname
是否集群replicator.datasource.global.connectionSpec.use_cluster
集群节点 IP 地址: 端口replicator.datasource.global.connectionSpec.slave_add
本服务名称【service-name】
本服务端口kufl-port
源端服务 IP 地址: 端口master, master-kufl-port
模式repl_mode
目标端 IP 地址: 端口repl_master_gapsenduri(源端),repl_store_kufl_gaplistenuri(目标端)
高级属性property

Kafka

中文英文
IP 地址replication-host
端口replication-port
用户名replication-user
密码replication-password
是否集群replicator.datasource.global.connectionSpec.use_cluster
集群节点 IP 地址: 端口replicator.datasource.global.connectionSpec.slave_add
本服务名称[service-name]
本服务端口kufl-port
源端服务 IP 地址: 端口master, master-kufl-port
模式repl_mode
目标端 IP 地址: 端口repl_master_gapsenduri(源端) repl_store_kufl_gaplistenuri(目标端)
高级属性property

高级属性设置参考
svc-remote-filters=casetransform
property=replicator.filter.casetransform.to_upper_case=false
property=replica-tor.applier.dbms.enabletxninfo=true
property=replica-tor.applier.dbms.enabletxninfoTopic=true
4. 执行安装
点击【安装/更新】
5.2. 图形化部署 215
Kingbase FlySync 安装部署手册, Release V1R6
安装结果说明:
1. 安装成功
1) 安装成功会弹窗形式提醒安装成功
2) 日志显示区域中会有安装成功标识
2. 安装失败,可以查看日志部分的原因
1) 安装过程中,任意一个节点如果安装失败,整个安装过程也会停止,并提示安装失败
2) 如果需要重新安装,即确认配置无误后,重新点击【安装/更新】
注意:
1. 如果拓扑图中有一个节点处于 ONLINE 状态,不允许安装,可以将该节点停止后安装。
2. 如果拓扑图均处于 OFFLINE 状态,该拓扑允许进行安装操作,如果期间配置发生变动,则按新的
配置重新部署该拓扑。
5. 启动同步程序
安装部署成功后,在【部署管理】 ->【节点管理】的列表中点击【启动】
点击数据表对应节点【启动】
216 第 5 章 同步程序部署
Kingbase FlySync 安装部署手册, Release V1R6
若启动成功,会以弹窗形式提醒,如下图所示:
成功启动后,节点状态由 OFFLINE 变为 ONLINE,如下图所示:
5.2. 图形化部署 217
Kingbase FlySync 安装部署手册, Release V1R6
6. 查看服务状态
在【部署管理】 ->【服务管理】查看服务状态如下图安装的服务是否均为正常状态,如果均为正常状
态,则说明安装完,服务能够正常工作,如果状态为异常, 则需要登录服务器查看原因,修改即可。
218 第 5 章 同步程序部署
Kingbase FlySync 安装部署手册, Release V1R6
5.2.2.3 约束
节点状态:未安装拓扑的新节点或者安装了同步程序但是停止状态可以安装。
允许安装拓扑方式:
1) 1 对 1
2)级联
3) 1 对 N
5.2. 图形化部署 219
Kingbase FlySync 安装部署手册, Release V1R6
4)N 对 1
数据源:
KADB, Kafka, DM, SQLFile 不能作为源端
5.2.3 更新
更新现有的拓扑图
1. 在【节点管理停】中停止现有运行的所有服务
2. 在【拓扑配置】图中修改相应的配置信息
3. 点击【安装/更新】
更新未安装的拓扑
1. 在【拓扑配置】图中修改对应的配置信息
2. 点击【安装/更新】
注意:
如果拓扑图中有一个节点处于 ONLINE 状态,不允许更新,可以将该节点停止后更新。
如果拓扑图均处于 OFFLINE 状态,拓扑可以更新,视为需要重新部署拓扑关系。
5.2.4 同步程序卸载
同步程序卸载用于从物理服务器节点上的卸载删除该安装用户的 Kingbase FlySync 同步程序。
功能位于【部署管理】 ->【节点管理】中
步骤:
1. 数据表格中选择要卸载的节点
220 第 5 章 同步程序部署
Kingbase FlySync 安装部署手册, Release V1R6
2. 点击【卸载】
如图所示:
3. 卸载结果会以弹窗的形式提醒
5.2. 图形化部署 221
Kingbase FlySync 安装部署手册, Release V1R6
222 第 5 章 同步程序部署
第 6 章
管控平台卸载
6.1 Linux 平台卸载
6.1.1 卸载
Linux 卸载过程,包含如下步骤:
1. 执行 UninstallRoot.sh
2. 启动卸载
3. 准备卸载
4. 确认卸载
5. 正在卸载
6. 完成卸载
223
Kingbase FlySync 安装部署手册, Release V1R6
6.1.1.1 执行 UninstallRoot.sh
此步骤为 Linux 特有步骤。
1. 打开新终端;
2. 切换到 root 用户;
3. 运行 < 安装目录 >/scripts/UninstallRoot.sh;
注意: Linux 中执行 UninstallRoot.sh 成功后,将停止相关服务并删除相关服务注册信息。
6.1.1.2 启动卸载
以 FlySync 属主用户登录系统后点击开始菜单的”卸载”或进入安装目录,执行如下命令。
• 图形界面卸载
./Uninstall/Uninstall 或./Uninstall/Uninstall -i swing
• 命令行卸载
./Uninstall/Uninstall -i console
注意: 卸载方式默认与安装方式相同,即:若安装时为图形化安装则卸载时也为图形化卸载,若安装时为
命令行安装则卸载时也为命令行方式卸载。
6.1.1.3 准备卸载
该步骤将显示卸载页面。
• 图形界面
224 第 6 章 管控平台卸载
Kingbase FlySync 安装部署手册, Release V1R6
• 命令行
6.1. Linux 平台卸载 225
Kingbase FlySync 安装部署手册, Release V1R6
点击【取消】按钮,可以退出卸载过程,若无特殊说明,以下各步骤皆与此相同。
点击【卸载】按钮,弹出“确认”提示框。
6.1.1.4 确认卸载
确认是否进行卸载操作。
• 图形界面
226 第 6 章 管控平台卸载
Kingbase FlySync 安装部署手册, Release V1R6
• 命令行
6.1. Linux 平台卸载 227
Kingbase FlySync 安装部署手册, Release V1R6
点击【取消】按钮,返回当前步骤。
点击【确定】按钮,执行卸载操作。
6.1.1.5 正在卸载
此步骤用于显示卸载进度。
• 图形界面
228 第 6 章 管控平台卸载
Kingbase FlySync 安装部署手册, Release V1R6
• 命令行
6.1. Linux 平台卸载 229
Kingbase FlySync 安装部署手册, Release V1R6
6.1.1.6 完成卸载
对于由初始化生成的文件、您正在使用或已修改的文件,卸载过程当中无法自动删除,请退出卸载程序后手
动删除。
• 图形界面
230 第 6 章 管控平台卸载
Kingbase FlySync 安装部署手册, Release V1R6
• 命令行
6.1. Linux 平台卸载 231
Kingbase FlySync 安装部署手册, Release V1R6
6.2 Windows 平台卸载
6.2.1 卸载
Windows 卸载过程,包含如下步骤:
1. 启动卸载
2. 准备卸载
3. 确认卸载
4. 正在卸载
5. 完成卸载
232 第 6 章 管控平台卸载
Kingbase FlySync 安装部署手册, Release V1R6
6.2.1.1 启动卸载
选择开始菜单的”卸载”右键以管理员身份运行或以管理员身份打开终端,进入安装目录,执行如下命令。
• 图形界面卸载
Uninstall/Uninstall.exe 或 Uninstall/Uninstall.exe -i swing
注意: 卸载不支持命令行方式卸载,即:若安装时为命令行安装则卸载时需使用 Uninstall/Uninstall.exe -i
swing 方式卸载。
6.2.1.2 准备卸载
该步骤将显示卸载页面。
• 图形界面
点击【取消】按钮,可以退出卸载过程,若无特殊说明,以下各步骤皆与此相同。
点击【卸载】按钮,弹出“确认”提示框。
6.2. Windows 平台卸载 233
Kingbase FlySync 安装部署手册, Release V1R6
6.2.1.3 确认卸载
确认是否进行卸载操作。
• 图形界面
点击【取消】按钮,返回当前步骤。
点击【确定】按钮,执行卸载操作。
6.2.1.4 正在卸载
此步骤用于显示卸载进度。
• 图形界面
234 第 6 章 管控平台卸载
Kingbase FlySync 安装部署手册, Release V1R6
6.2.1.5 完成卸载
对于由初始化生成的文件、您正在使用或已修改的文件,卸载过程当中无法自动删除,请退出卸载程序后手
动删除。
• 图形界面
6.2. Windows 平台卸载 235
Kingbase FlySync 安装部署手册, Release V1R6
236 第 6 章 管控平台卸载
第 7 章
FAQ
7.1 关键文件路径及说明
• 日志文件
安装路径/flysync/flysync-replicator/log
• 配置文件
安装路径/flysync/flysync-replicator/conf
• 授权文件
安装路径/flysync/flysync-replicator/conf
7.2 常见问题及处理方式
1. Q: 在 Windows 7 或更高版本运行 setup.bat 安装,提示如图所示问题
237
Kingbase FlySync 安装部署手册, Release V1R6
A: 原因是部分 Windows 7 或更高版本,使用了 UAC 安全策略及特殊配置所导致。
解决办法:
A. 联系操作系统管理人员,为用户授予 Adminstrator 权限,并在启动安装程序时,选择“以管
理员身份运行”。
B. 尝试跳过用户权限检查,继续安装(该方式可能导致安装完成后无法注册系统服务)。
2. Q: 在 Windows 7 或更高版本运行 setup.bat 安装,提示如图所示问题
238 第 7 章 FAQ
Kingbase FlySync 安装部署手册, Release V1R6
A: 原因是因为已通过安装程序安装了 Kingbase FlySync 软件。
解决办法:
A. 卸载系统上的 Kingbase FlySync 软件后再次启动安装程序时。
3. Q: 管控平台元数据库配置时“使用内置数据库”与“使用外置数据库”区别?
A: “使用内置数据库”采用 Derby 作为管控平台元数据库,“使用外置数据库”则可使用 MySQL 或
KingbaseES v8 作为管控平台元数据库。
4. Q: 在 Linux 中安装完金仓数据同步工具之后,开始菜单中没有显示金仓数据同步工具相关菜单,如何
解决?
A: 只有以 Kingbase FlySync 安装的属主用户登录系统时才能看到开始菜单。
解决办法:
A. 以 Kingbase FlySync 安装的属主用户登录系统。
5. Q: 安装完成后“比对服务”启动失败,如何解决?
A: 比对服务依赖管控平台,需保证“管控平台”相关服务优先于“比对服务”启动,并且保证其端口未被其
他应用程序占用。
解决办法:
A. 查看使用的端口号是否被其它进程占用。
B. 查看“管控平台”是否启动。
C. 查看操作系统防火墙是否关闭或允许使用的端口号通过。
7.2. 常见问题及处理方式 239
Kingbase FlySync 安装部署手册, Release V1R6
6. Q: KES 试用 license 连接用户数限制是 10,启动 KFS 后,连接池占满无法再继续其他操作?
A: 安装 KFS 后,基本把连接占完,导致无连接数据库或者再做其他操作。
解决办法:
A. 若 console 和 compare 的元库使用 KES 则进入安装路径下的 console 和 compare 的 conf
目录;
B. 根 据 需 要 修 改 两 个 application.properties 文 件 的 下 列 参 数 的 值 使 得 两 个
spring.datasource.druid.initial-size 值的和加上源端 replicator 连接数 (1) 和目标端 replicator 连接数 (1) 不能超过 KES 授权的连接数。
# 修改时将下面两个参数值大小设置相同
spring.datasource.druid.initial-size
spring.datasource.druid.min-idle
7. Q: 如何修改管控平台的连接信息?
A: 目前版本的 FlySync 管控平台,可通过手动修改数据库连接信息。
解决办法:
• 使用安装程序安装的管控平台
A. 进入安装路径下的 console/conf 目录;
B. 根据需要修改 application.properties 及以 application-开头的配置文件编辑并保存即可。
• 通过解压缩包手动安装的管控平台
A. 进入安装路径下的 console/lib 目录;
B. Windows 下,使用解压软件打开 flysync-console.jar 包,找到 application.properties 及以
application-开头的配置文件,修改后,再替换回 jar 包。
C. Linux 下,使用 vim 打开 flysync-console.jar 包,定位到 application.properties 及以
application-开头的配置文件,回车,打开后编辑,保存
8. Q: 元信息库配置参数的含义?
A: 元信息库使用 mysql,需要设置几个特殊的参数。
lower_case_table_names=1 # 表名默认小写保存,但是比较的时候不区分大小写
init-connect='SET NAMES utf8' # 默认连接编码采用 utf-8
character-set-server = utf8
show_compatibility_56=on # MySQL 5.7 及以后的版本,获取启动时间
9. Q: 授权文件(license.dat) 的限制规则
A: license 中限制了 4 个参数
240 第 7 章 FAQ
Kingbase FlySync 安装部署手册, Release V1R6

名称含义
ServiceNum单个物理节点上可以部署的服务数量
clinetNumPerService每个源端,可以接受的目标端连接数量
supportConsole是否支持管控平台
supportCompare是否支持比对服务

10. Q: ORA-29538 错误
A: Oracle 数据库所在机器缺少 JDK 所致。
解决办法:
A. 配置 Oracle 数据库所在机器 JDK 环境。
11. Q: Oracle DBA 账号无法连接的问题如何处理?
A: 有时使用 DBA 账号在不加 AS DBA 的情况下可以连接 Oracle 数据库,加了 AS DBA 后无法连接数
据库。
解决办法:
A. 可以尝试修改 DBA 用户密码。
ALTER USRE SYS IDENTIFIED BY password;
12. Q: 几个关键元信息表的含义解释
A: flysync 中,有两个关键的元信息表。
• TREP_COMMIT_SEQNO 记录当前断点位置
• HEARTBEAT 心跳信息,不定期的同步 UPDATE 信息
当源端服务名和目标端服务名不一致时,需要增加一个 rename 的规则,转换模式名,保证元信
息表能够正常同步.
13. Q: update 和 install 的关系?
A:
• 第一次安装 flysync 的使用,使用
fspm install
• 后续修改了 flysync.ini 配置文件,或者需要更新 flysync 版本时,使用 update。
fspm update
14. Q: install-directory 和 home-directory 的关系?
A: install-directory 和 home-directory 都可以控制 flysync 的安装位置, home-directory 的优先级高于
install-directory。
7.2. 常见问题及处理方式 241
Kingbase FlySync 安装部署手册, Release V1R6
注意: 配置 home-directory 后,会覆盖 install-directory 值。
15. Q: 管控平台信息自动收集和手动收集的关系?
A: 默认情况下,管控平台会每隔 5 秒钟,进行一次全集群的状态信息收集。另外, flysync 还在以下位
置预留了手动收集的触发入口。
• [系统管理] -> [服务管理] -> [收集按钮]
• [实时监控] -> [拓扑图] -> [刷新]
16. Q: 如何查看版本号?
A:
• 主界面,页脚右下方。
• fsrepctl version
fspm --version
17. Q: Oracle 如何清理归档?
A: Oracle 清理归档的方法:

rman target /
crosscheck archivelog all;
delete expired archivelog all;
# 使用 rman 连接数据库
# 列出归档日志信息
# 将列出的归档日志删除

delete noprompt archivelog all completed before 'sysdate-7'; # 删除 7 天前的归档
18. Q: setupCDC.sh 脚本执行的位置限制
A: setupCDC.sh 脚本,目前只能在 setupCDC.sh 脚本所在的位置执行,比如
./setupCDC.sh
不能在其他目录采用全路径的方式执行。
19. Q: 源端和目标端的 seqno 对不上如何处理?
A: 有时,在同步过程中,目标端会报错
242 第 7 章 FAQ
Kingbase FlySync 安装部署手册, Release V1R6
原因是,目标端需要的 seqno 超出了源端的最大限度,这种问题一般出现的情况为:
• 正常同步后,源端进行了重新部署,导致 seqno 归零;
• 源端的元信息表被删除, flysync 重建元信息表后,默认的初始值归零;
一般情况下若因为源端重新部署或重新建立元信息表导致,可以在目标端进行 reset 操作,使得目标
端 seqno 重新初始化即可。
20. Q: 管控平台无法收集服务信息,查看日志,报错?
A: 此问题一般是由于没有完整或者忘记配置 hosts 文件所致,需要检查 hosts 文件是否配置无误。
21. Q: 监控界面几个数字的含义?
A: 监控界面数字的含义如下表:

名称含义
历史同步数量所有 slave 节点的数据同步量(事务)之和
今日同步数量当天零时截至查看前统计的同步数量(实时历史数量 - 当天零点历史数量)
昨日同步数量字面意思
环比昨日同步数量相对前日同步数量的增长量
系统启动时间同步系统中,运行时间最长的 service 启动时间
同步延迟系统中最大的 applyLatency 应用延迟
错误告警发生错误的列表
同步表排行步的表数据量排行
同步趋势过去 15 天同步数据柱状图

22. Q: 如何跳过错误数据?
7.2. 常见问题及处理方式 243
Kingbase FlySync 安装部署手册, Release V1R6
A: flysync 中,当目标端出现错误后,经过排查,出现错误的数据是用不不想要的数据(比如主键冲
突,已经存在等),可以跳过当前数据。
fsrepctl -service 服务名 online -skip-seqno 序号
23. Q: 初始配置好后, heartbeat 表报违反唯一约束如何处理?
A: 源端和目标端在安装好后,都会生成 HEARTBEAT 表初始信息,有时源端 INSERT 到 HEARTBEAT 表
的数据会被解析出来(其他元信息表也存在此问题),而目标端已经存在此数据,会报违反主键约束。
解决办法: 参见上一条,在目标端跳过当前记录即可。
24. Q: static 文件是什么?
A: flysync 中,同步服务的行为由自动生成的 static 文件控制(在 fspm install 命令执行过程中,根据
flysync.ini 配置文件内容生成)每个服务( service)会生成一个对应的 static 文件。
25. Q: 在卸载源端数据库后重新安装,并导入之前数据后再进行同步源端不生成 kufl,如何处理?
A: 旧的 kufl 中存有断点信息,当换数据库后,旧的断点信息在新的数据库中是没有意义的,所以就会
一直等待该断点,导致数据解析不出增量数据。
解决办法: 清除旧的断点信息,即删除复制槽。
26. Q: 无法更新?
A: 在配置.ini 文件时,在节点的机器名中不可带有”-“和”_”字符不然会导致无法更新。
27. Q: 端口问题
A: 在配置完 ini 文件之后,请检查设置 kufl 端口和 jmx 检测是否被防火墙拦截,如被拦截需要设置防
火墙开放相应端口。
28. Q: 服务卸载问题
A: 在卸载服务之后,需要手动在控制台的’节点管理’中删除卸载的节点,不然再次安装可能会出现信
息错乱等问题。
29. Q: 开启 Kingbase 兼容模式后安装成功,启动 KFS 失败
A: 数据库限制,需要手动创建元信息的库 (模式),模式 (库) 名为服务名。
30. Q: 安装完成后找不到命令
A: 在完成安装之后,需要使用 source .bash_profile (即 profile-script 所配置文件) 来读取环境变量。
31. Q: 如何设置开机自启?
A: 设置开机自启后只能以服务形式启动和关闭 FS,具体方式为:
• 基于 init 的系统(比如 centos 5)
244 第 7 章 FAQ
Kingbase FlySync 安装部署手册, Release V1R6
service replicator start
service replicator status
service replicator stop
• 基于 upStart 的系统(比如 ubuntu、 centos 6)
initctl start replicator
initctl status replicator
initctl stop replicator
• 基于 systemd 的系统 (比如 centos 7)
systemctl start replicator.service
systemctl status replicator.service
systemctl stop replicator.service
32. Q: replicator 自动停止,启动后不久又会停止,查看日志报错信息中有如下信息
2020/01/18 18:15:51.376 | JVM appears hung: Timed out waiting for signal from JVM.
Restarting JVM.
2020/01/18 18:15:51.740 | JVM received a signal SIGKILL (9).
2020/01/18 18:15:51.741 | JVM process is gone.
2020/01/18 18:15:51.741 | JVM exited after being requested to terminate.
2020/01/18 18:16:12.596 | JVM process is gone.
A: 该问题是由于 flysync 自带的高可用特性会定时检测 jvm 是否还在活动,若一端时间内没有回馈,
会认为进程不在,进行重启。该问题一般出现在:
1. CPU 使用率长时间达到 100%
2. 等待系统 I/O
3. 持续时间 30s
如需修改超时配置,涉及两个调整参数
wrapper.ping.timeout = 30 # (默认,超时时间 30 秒)
wrapper.ping.interval = 5 # (默认,间隔 5 秒)
33. Q: 同步带有中文的表信息时,同步程序报错如何处理?
A: 执行 locale 命令,检查操作系统的语言环境,检查 LC_ALL,LC_CTYPE,LANG 是否一致,确认此环境
下是否可以执行带有中文的 SQL 语句。
34. Q: 过滤器有哪些该如何配置?
A: 常用的过滤器包括: casetransform, rename, dropcolumn 等。
• casetransform
7.2. 常见问题及处理方式 245
Kingbase FlySync 安装部署手册, Release V1R6
大小写转换,可以在 svc-remote-filters 阶段,将模式名、表名、字段名转换为特定的大小写模式。
由 replicator.filter.casetransform.to_upper_case 控制。

含义
true转换为大写
false转换为小写

• rename
控制名称映射,默认的配置文件路径
安装目录/filters-config/rename.csv
rename 文件的格式为
原模式, 原表, 原列, 新模式, 新表, 新列
其中
– * 表示所有
– - 表示保持不变

S1,T1,*,S2,T2,-
S1,*,*,S2,-,-
将 S1 模式下的 T1 表映射到 S2 模式下的 T2 表
将 S1 模式下的所有表映射到 S2 模式下

• dropcolumn
列级过滤,配置在目标端过滤器中,通过配置过滤掉源端不需要同步的列。
配置方法:开启列过滤,并配置相应的 json 文件路径
svc-remote-filters=dropcolumn
property=replicator.filter.dropcolumn.definitionsFile=/home/flysync/dropcolumn.json
dropcolumn.json 格式为:
[
{
"schema": "test",
"table": "*",
"columns": [
"column_a",
"column_b",
]
},
...
(continues on next page)
246 第 7 章 FAQ
Kingbase FlySync 安装部署手册, Release V1R6
(continued from previous page)
]
其中 * 带表所有。上面的配置为将 test 模式下所有的表的 column_a 列和 column_b 列过滤。
35. Q: 在结构或数据初始搬迁中, casetransform 与 rename 同时配置时,为什么 rename 过滤器没有生效
A: 在 static 配置文件中,过滤器配置的顺序影响执行顺序,即先配先执行。若先配置的 casetransform,
则 rename 中应该配置转换后的名称。
36. Q: 初始搬迁出现内存相关异常或断开的连接
查看搬迁结果报错有如下信息:
There is insufficient memory for the Java Runtime Environment to continue.
Native memory allocation (mmap) failed to map 55574528 bytes for committing
reserved memory.
或出现 OOM 异常或断开连接的异常
该问题由于机器内存不足导致
解决办法:
• 调整物理内存,扩大 swap 内存空间
• 手动指定 jvm 堆内存大小,调小堆内存最大堆内存: -Xmx1024m(当前指定 1G)
• 调整搬迁表的个数或写线程数
37. Q: 源端 MySQL 搬迁大数据量长时间无响应
查看数据库日志如下
2020-06-03T08:15:56.067606Z 8 [ERROR] /usr/sbin/mysqld: The table '/tmp/#sql_
,→xxx'
is full
问题原因:表数据容量达到系统上限
解决办法:
修改 my.cnf 修改配置信息:
tmp_table_size = 256M //临时表大小
max_heap_table_size = 256M //内存表大小
以上配置信息需结合实际环境中表的 ibd 文件最大值进行配置修改,系统默认 16M, 修改后
重启 mysql 生效
38. Q: 搬迁结果出现 java.rmi.UnmarshalException 异常信息
7.2. 常见问题及处理方式 247
Kingbase FlySync 安装部署手册, Release V1R6
replicator 服务日志异常信息如下:
2020/06/22 14:54:25.756 | OpenJDK 64-Bit Server VM warning: INFO: os::commit_
,→memory(
0x00007f9a6faff000, 12288, 0) failed; error='Cannot
allocate memory' (errno=12)
2020/06/22 14:54:25.756 | #
2020/06/22 14:54:25.756 | # There is insufficient memory for the Java Runtime
Environment to continue.
2020/06/22 14:54:25.756 | # Native memory allocation (mmap) failed to map␣
,→12288 bytes
for committing reserved memory.
2020/06/22 14:54:25.756 | # An error report file with more information is␣
,→saved as:
2020/06/22 14:54:25.756 | # /home/hes/flysync_test/releases/KingbaseFlySync
-V001R002B20200604-replicator_pid2941/cluster-home/
bin/hs_err_pid10739.log
2020/06/22 14:54:25.766 | JVM exited while starting the application.
2020/06/22 14:54:25.970 | There were 5 failed launches in a row, each lasting␣
,→less
than 300 seconds. Giving up.

2020/06/22 14:54:25.970 |
,→the
There may be a configuration problem: please check␣

logs.
2020/06/22 14:54:26.071 | <-- Wrapper Stopped
可手动进行复现,当正在搬迁时,手动 replicator stop 后搬迁结果会出现此异常
抛出异常原因: jvm 申请内存,内存不足导致
分析
查看 overcommit_memory 参数:
cat /proc/sys/vm/overcommit_memory
三个值
• 0 默认设置,估算内存量可用量,不足则拒绝请求
• 1 内存执行无内存过量处理
• 2 系统会分配给每个程序内存需求的最大值,就算没有实际用到,无法再分配
给其他程序
虽然 free -h 看到的可用内存充足,但被其他程序已经占用,不足以让 jvm 使用导致
解决办法:
修改 overcommit_memory 值为 0 或 1。 :
248 第 7 章 FAQ
Kingbase FlySync 安装部署手册, Release V1R6
vim /etc/sysctl.conf 修改 vm.overcommit_memory = 0
sysctl -p 使配置文件生效
39. Q: 同步带有中文的表信息时, 同步程序报错
A: 执行 locale 命令,检查操作系统的语言环境,检查 LC_ALL,LC_CTYPE,LANG 是否一致,确认此环境
下是否可以执行带有中文的 SQL 语句。
40. Q: oracle 12c、 19c 在 redo 模式下解析 xml 类型报错
问题原因:存储为 CLOB 的 XMLType 数据在 Oracle 数据库从 12c 版本开始被舍弃
解决办法: 需要在建表时,设置 XML 类型为 CLOB,如下
create table T1
(
X VARCHAR2(32),
XML XMLTYPE
)
XMLTYPE XML STORE AS BASICFILE CLOB
41. Q: 同步带有中文的表信息时, 同步程序报错
A: 执行 locale 命令,检查操作系统的语言环境,检查 LC_ALL,LC_CTYPE,LANG 是否一致,确认此环境
下是否可以执行带有中文的 SQL 语句。
42. Q: 添加节点失败
A: 添加节点过程中会校验节点是否能访问。因此需检查 IP,安装用户是否存在,安装用户密码是否正
确, SSH 端口是否正确
43. Q: 启动失败问题
A: 安装路径下的授权文件没有或者过期。在【节点管理】中选择节点,点击【上传 license】,上传正
常合法的授权文件。
44. Q: 卸载失败
A: 检查是否注册了开机自启服务,先卸载开机自启服务,再执行卸载
45. Q: kadb 开启死锁检测开启
A: 执行命令: gpconfig -c gp_enable_global_deadlock_detector -v on
46. Q: 凝思平台管控平台和比对服务配置开机自启后,无法启动,并且会报错
7.2. 常见问题及处理方式 249
Kingbase FlySync 安装部署手册, Release V1R6
A: 凝思系统自带的 JDK 版本过低导致,处理方式:修改 fscompare、 fsconsole、 fsmanager 三个脚本:
#RUN_AS_USER=
改为
RUN_AS_USER=当前 OS 用户
47. Q: 在执行无缝比对时,若比对出错,且日志中出现 ORA-08177 的异常
问题原因:这种情况通常发生在,刚对 A 表进行过结果搬迁后立刻对其执行无缝比对,触
发 Oracle 自身的锁保护机制,导致比对失败
A: 再次执行比对任务即可
48. Q: 同步的数据较大时,有时会出现 KFS 挂掉,日志中出现 java.lang.OutOfMemoryError: Java heap
space
问题原因:一批次同步的数据量过大,导致 JVM 内存溢出。
A: 编辑安装目录下 flysync/flysync-replicator/conf/wrapper.conf 文件,调大 wrapper.java.maxmemory
参数。
49. Q: Oracle 数据库 DDL 同步时出错,日志中显示错误号: ORA-01843
问题原因:由于 DDL 语句中的月份为英文,而目标端的获取 oracle 连接的默认 session 是
nls_data_language 是 simplified chinese,导致不认识英文月份。
解决办法:
• 保证源端和目标端的环境一致,统一设置为英文环境或者中文环境。
• 可以通过设置系统环境变量, export NLS_LANG=xxx 进行设置。
50. Q: FlySync 日志文件存储方式修改
A:
FlySync 日志存储方式可分为:
• 按照日志文件大小方式存储(默认);
• 按照日期方式存储;
可通过修改 wrapper.conf 文件进行调整。
wrapper.conf 文件路径,在 flysync.ini 中 install-directory 参数所指定路径下的 flysync/
flysync-replicator/conf 目录中。
修改方式:
250 第 7 章 FAQ
Kingbase FlySync 安装部署手册, Release V1R6
• 按照日志文件大小方式存储(默认)
编辑 wrapper.conf 文件,修改内容如下:
# Log file to use for wrapper output logging.
wrapper.logfile=../../flysync-replicator/log/fsrepsvc.log
# Log roll mode for log file output. (See docs for log roll mode)
wrapper.logfile.rollmode=NONE
• 按照日期方式存储
编辑 wrapper.conf 文件,修改内容如下:
# Log file to use for wrapper output logging.
wrapper.logfile=../../flysync-replicator/log/fsrepsvc.log.YYYYMMDD
# Log roll mode for log file output. (See docs for log roll mode)
wrapper.logfile.rollmode=DATE
51. Q: FlySync 同步软件 JVM 内存大小调整
A:
FlySync 同步软件运行依赖 Java 运行环境,当同步过程中数据量较大的情况下,为避免程序
出现 OutOfMemory 的错误导致同步软件停止工作,可根据实际情况调整 JVM 内存大小。
控制 JVM 大小参数名为: java-mem-size 或 repl_java_mem_size ,单位 M,默认: 2048;
可通过在 flysync.ini 中指定其大小的方式并通过 fspm install 或 fspm update 命令使其生效。
修改方式:
编 辑 flysync.ini 配 置 文 件, 在 [defaults] 配 置 内 容 中 增 加 java-mem-size = 4096 或
repl_java_mem_size = 4096 方式修改;
内容如下:
[defaults]
install-directory = ~/replicator
profile-script = ~/.bash_profile
rmi-port = 11000
# 设置 Java heap 内存大小为 4096M
java-mem-size = 4096
52. Q: oracle 多服务 replicator.datasource.global.catalogPrefix 参数说明
A:
针对 oracle 数据库,系统表建立在 oracle 用户下,而 oracle 相同用户多服务中,系统表会
出现冲突。
7.2. 常见问题及处理方式 251
Kingbase FlySync 安装部署手册, Release V1R6
此参数就是解决这种冲突,设置为 true 时, kfs 系统表会以服务名加下划线为前缀加系统表
名,如:oracleMaster_hearbeat。
replicate 和 casetransform 不会对系统表进行生效,但是表名修改后,就会导致这些过滤器
对系统表生效
如 源 端 oracle 服 务 名 为 master, oracle 用 户 为 FLYSYNC, replicator.datasource.global.catalogPrefix 为 true,配置 rename
修改方式:
FLYSYNC,master_hearbeat,*,-,heartbeat,-
53. Q: 源端 V8 或 PG 创建扩展 CREATE EXTENSION 的 DDL, 会有其他关于系统表的 DML 被解析出来
A:
数据库机制导致,可以通过在目标端跳过此 SEQ 处理
修改方式:
fsrepctl -service name online -skip-seqno (seqno)
54. Q: 源端 Oracle(ZHS16GBK 编码), 目标端 Oracle(AL32UTF8 编码), 含有中文时数据搬迁报错
A:
由于数据库编码不一致, 中文存储字节数不一致导致
解决办法:
修改源端/目标端数据库编码, 使两端数据库编码保持一致
55. Q: 在凝思系统上安装报 Unable to find any host configuration for data service specified. Check the list
of configured data services by running ‘tool/fspm query dataservices’.
A: flysync.ini 文件中 master 和 slave 配置了 ip 地址
解决办法: 该问题主要是因为凝思系统内核升级为 Linx 4.9.130-2linx5(2020-10013) x86_64 GUN/
Linux 导致,需要通过以下步骤来处理安装报错的问题:
• 将 flysync.ini 文件中源端和目标端都改成机器主机名
252 第 7 章 FAQ
Kingbase FlySync 安装部署手册, Release V1R6
• 执行如下命令:
1. touch /usr/local/bin/systemctl
2. chmod +x /usr/local/bin/systemctl
• 通过 fspm install 命令执行安装
56. Q: 使用源端为 V7,且字段类型含有 blob 类型时,进行数据搬迁报 Fatal ERROR:com/kingbase8/util/
KBbytea.Please check the results manually.
A: 同步服务安装目录下的 lib 目录下缺少 Kingbase V8 的驱动包
解决办法: 该问题主要是因为缺少 Kingbase V8 的驱动包所导致,需要通过以下步骤进行解决:
• 将同步服务安装目录下/extensions/jdbc/kingbase8-8.6.0.jar 的驱动包复制到同步服务所
在/flysync/flysync-replicator/lib 的目录下
• 通过 replicator restart 重启服务生效
57. Q: 安 装 管 控 平 台 时, 在 安 装 过 程 中 报 比 对 服 务 元 数 据 库 初 始 化 失 败, 报 错 信 息 为
Cause:com.kingbase8.util.KSQLException:Unterminated dollar quote started at position 18 in SQL SET
search_path=kfs_compare, pg_catalog.
A: 这个是因为比对服务的元数据库是 KingbaseV8R6 pg 模式, 而安装时选择了 kingbase,而不是
postgresql 导致
解决办法: 在安装比对服务元息库时,数据库类型选择 postgresql 即可解决该问题。
58. Q: rabbitMQ 某些未知情况下存在未 ack 的数据,会导致 MQ 连接超时以及 reset 之后重复解析.
A: 和 rabbitmq 本身 ack 机制以及环境有关
解决办法:
• 在 MQ 没有业务并且现有队列的数据全部解析完的情况下,在 rabbitmq 的 Queues 页面有个
purge Message 的按钮,将数据 purge 掉即可
• 在 MQ 有业务的情况下,通过 replicator restart 重启服务,在目标端处理跳过重复解析
的数据
59. Q: 当用 yum 安装 java 后,执行 fspm install 时报 Communications link failure The last packet sent
successfully to the server
A: 这是因为 yum 安装的 jdk 和我们 kfs 提供的 jdk 配置有区别
解决办法 i:
• 强制使用 kfs 自带的 jdk 安装包
#. Q: 当用户配置 replicator.filter.replicate.do 和 replicator.filter.replicate.ignore 中带有特殊字符时,
导致同步报错
解决办法:
• 这是因为特殊字符暂时只是限制在 ~,!,%, 后面会进行扩展
7.2. 常见问题及处理方式 253
Kingbase FlySync 安装部署手册, Release V1R6
60. Q: 当用户配置 replicator.filter.replicate.do 和 replicator.filter.replicate.ignore 中带有特殊字符时,导致
同步报错
解决办法:
• 这是因为特殊字符暂时只是限制在 ~,!,%, 后面会进行扩展
61. Q: kes 作为比对的元息库时, sys_hba 配置为 scram-sha-256 时,启动比对服务时日志报“致命错误:
用户“system”Password 认证失败”
A: 这个是因为 sys_hba 密码算法和比对服务密码算法匹配不一致导致
解决方法:
• 将 scram-sha-256 算法改成 md5 即可
62. Q: 源端 mysql5.7.12,生成的心跳消息少列
A:
flysync.ini 文件中有参数 binlog-row-image=minimal 导致
解决办法:
注释该参数或设置 full 后可正常解析
63. Q: 在管控台的向导模式中部署 KFS,部署时设置资源限制并没有生效
A: 这是因为管控台的向导模式目前暂不支持设置资源限制,待后续版本中提供支持
解决方法:
• 手动安装,并修改 services.properties 文件
64. Q: 把 replicator 安装到的解压目录下,导致更新失败
A:
更新时会对目录以及文件进行检查
解决办法:
在 flysync.ini 文件中 install-directory 指定一个新的目录作为安装目录
65. Q: 在 flysync.ini 中将 master 或者 members 配置成 127.0.0.1 后更新报错
A:
因为网络检查对 127.0.0.1 有限制导致
解决办法:
在 flysync.ini 中指定具体的 ip 地址即可安装和更新成功
254 第 7 章 FAQ
Kingbase FlySync 安装部署手册, Release V1R6
7.3 多服务的配置和测试建议
1. flysync 使用 kufl 作为数据交换的格式,因此,在测试多种源端和目标端相互搭配时,就不需要每次都
重新搭建源端和目标端,只需要
• 针对每种源端,安装一套数据库(比如 Oracle 11g、 MySQL 5.7、 SQL Server2017)
• 针对每个目标端,安装一套数据库(比如 Oracle 12c、 MySQL 8.0、 Kingbase)
按照以下逻辑逐个增加
• 源端 flysync.ini 文件中,加入 Oracle 11g 信息,执行 fspm install。插入数据,使用 kufl list 确认
数据能够解析后,即标志测试完成
• 源端 flysync.ini 文件中,加入 MySQL 5.7 信息,执行 fspm update。插入数据,使用 kufl list 确
认数据能够解析后,即标志测试完成
• 同样,搭建 SQL Server 2017,只要数据插入后能正常解析,即标志测试完成
• 目标端 flysync.ini 文件中,加入 Oracle 12c 信息,源端写 Oracle 11g 相关的 kufl 端口信息,启
动后,本地 kufl 能够同步,并且 fsrepctl 无报错,即表示测试完成
• 同上,逐渐在 flysync.ini 中丰富其他源端信息,每增加一个源端,都确认 kufl 能够正确同步,并
且 fsrepctl 无报错,则表示所有的组合测试完成
2. preferred-path 参数配置说明
多服务配置时, flysync.in 中可存在多个不同种类的数据源,由于 preferred-path 配置参数用于增加附
加路径到系统 PATH 环境变量中,因此需要注意要将 preferred-path 配置参数的位置放置在 [defaults]
中。
[defaults]
install-directory = ~/replicator
profile-script = ~/.bash_profile
rmi-port = 11000
# 增加附加路径到系统 PATH 环境变量中
preferred-path = /home/flysync/mysql-8.0.16-linux-glibc2.12-x86_64/bin
3. skip-validation-check 参数配置说明
由于多服务配置时, flysync.in 中可存在多个不同种类的数据源,跳过 Check 验证检查参数 skipvalidation-check 同时作用于操作环境检查及数据库检查,因此需要注意要将 skip-validation-check 配
置参数的位置放置在 [defaults] 中。配置时仅需将该主机上所有需要跳过的检查项以英文逗号分隔逐
个添加即可。
[defaults]
install-directory = ~/replicator
profile-script = ~/.bash_profile
rmi-port = 11000
(continues on next page)
7.3. 多服务的配置和测试建议 255
Kingbase FlySync 安装部署手册, Release V1R6
(continued from previous page)
# 设置需要跳过的检查项
skip-validation-check = MySQLDumpCheck,MySQLPermissionsCheck
7.4 预检测异常修复介绍
1. flysync 拓扑安装易用性,数据库校验。是在拓扑安装的过程中对配置的数据库的一种预检测机制。检
查数据库配置是否满足拓扑安装,方便用户去整改数据库相关配置。目前只支持以下五种数据库类型。
• KingbaseESV7,KingbaseESV8
• Oracle
• SQLserver
• PostgreSQL
• MySQL
2. KingbaseESV7,KingbaseESV8 相关检测项以及检测方式与期待值。
• 检测项:数据库版本检查
SELECT VERSION();
# 期待值: V7: 包含 Kingbase 7.1.2 V8:包含 Kingbase V008 或 KingbaseES V008
• 检测项:数据库依赖组件检查仅源端使用
SHOW MAX_WAL_SENDERS;
# 期待值:查询返回值 >=4
SHOW WAL_KEEP_SEGMENTS;
# 期待值:查询返回值 >=4
SHOW MAX_REPLICATION_SLOTS;
# 期待值:查询返回值 >=4
SHOW WAL_LEVEL
# 期待值:查询返回值 == logical
3. Oracle 相关检测项以及检测方式与期待值。
• 检测项:数据库登录检查
SELECT 1 FROM ALL_USERS WHERE ROWNUM = 1;
# 期待值:有返回值 ==1
• 检测项:数据版本检查
256 第 7 章 FAQ
Kingbase FlySync 安装部署手册, Release V1R6
SELECT * FROM V$VERSION WHERE BANNER LIKE 'Oracle%';
# 期待值:返回值获取版本号: 11.2.0.1.0, 取第一个点之前的 11 是否在下列支持中 redo 10, 11,␣
,→12, 19 ; logminer 10, 11, 12
• 检测项:数据权限检查
SELECT COUNT(*) AS CNT FROM USER_TAB_PRIVS WHERE GRANTEE = UPPER(' 用户名') AND␣
,→TABLE_NAME = 'DBMS_FLASHBACK' AND PRIVILEGE = 'EXECUTE';
# 期待值:有返回值 >0
# 修复方法:将数据库换成期待的版本
4. SQLserver 相关检测项以及检测方式与期待值。
• 检测项:数据库登录检查
SELECT TOP 1 1 AS CNT FROM sys.sysusers;
# 期待值:有返回值 ==1
• 检测项:数据版本检查
SELECT CAST(SERVERPROPERTY('ProductVersion') AS VARCHAR(32)) AS PRODUCTVERSION;
# 期待值:返回值获取版本号: 11.0.2100.60, 取第一个点之前的 11 是否在下列支持中 10, 11, 12,
,→ 13, 14, 15
• 检测项:数据权限检查
SELECT count(0) FROM sys.server_principals p JOIN sys.syslogins s ON p.sid = s.sid␣
,→WHERE p.name = ' 用户名' AND s.sysadmin = 1 AND p.is_disabled = 0;
# 期待值:有返回值 >0
# 修复方法:将数据库换成期待的版本
5. PostgreSQL 相关检测项以及检测方式与期待值。
• 检测项:数据版本检查
SELECT (string_to_array(version(), ' '))[2] as version;
# 期待值:有返回值>= 9.6
• 检测项:数据库依赖组件检查仅源端使用
SHOW MAX_WAL_SENDERS;
# 期待值:查询返回值 >=4
SHOW WAL_KEEP_SEGMENTS;
# 期待值:查询返回值 >=4
SHOW MAX_REPLICATION_SLOTS;
# 期待值:查询返回值 >=4
(continues on next page)
7.4. 预检测异常修复介绍 257
Kingbase FlySync 安装部署手册, Release V1R6
(continued from previous page)
SHOW WAL_LEVEL
# 期待值:查询返回值 == logical
6. MySQL 相关检测项以及检测方式与期待值。
• 检测项:数据库登录检查
select 'ALIVE' as 'Return Value';
# 期待值:返回值 ==ALIVE
• 检测项:数据权限检查
SELECT Super_priv FROM mysql.user WHERE user() LIKE concat(user, '@', host);
# 期待值:返回值 ==Y
• 检测项:数据库参数配置检查
select IF(SUPPORT, 'DEFAULT', 'YES') as Value from information_schema.engines␣
,→where engine='InnoDB';
# 期待值:返回值 ==YES
show variables like 'autocommit';
# 期待值:当 Value=NULL||Value=0||Value=OFF||Value=false 时验证不通过
SHOW MASTER STATUS;
# 期待值:当 Binlog_Do_DB!=""||Binlog_Do_DB!=null 时验证不通过
• 检测项: log_bin 参数配置检查仅源端检测
show variables like 'log_bin';
# 期待值:返回值 ==ON
258 第 7 章 FAQ
第 8 章
附录: 安装目录文件说明
• console :管控平台程序目录。
• jre : java 运行环境。
259
Kingbase FlySync 安装部署手册, Release V1R6
• Logs : 安装程序执行日志。
• manager : 服务中心程序目录。
• scripts : 程序启停控制及服务注册、注销脚本。
• Uninstall : 程序卸载文件目录。
• url : 程序入口快捷方式。
• license.dat : 授权文件。
• LICENSE_en_US : 英文许可协议。
• LICENSE_zh_CN_UTF-8 : 中文许可协议。
注意: : Linux 安装后目录结构与 Windows 一致。
260 第 8 章 附录: 安装目录文件说明

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值