靖州建设局网站塔城建设局网站
【Kingbase FlySync】界面化管控平台:3.配置数据库同步之KES->KES
- 部署KES数据库到KES数据库同步服务
 - 1.登录KFS管理平台
 - 2.开始配置数据节点信息
 - (1)配置node1数据节点
 - (2)配置node2数据节点
 
- 3.KFS拓扑图配置
 - 4.开始部署
 - 5.启动同步程序并查验是否运行正常
 
- 测试同步
 - 1.从node1数据库中导出exam模式并拷贝到node2 /tmp目录下
 - 2.将node1传过来的数据导入到node2数据库中
 - 3.修改拓扑图配置实现增量搬迁同步
 - (1).修改node1节点配置
 - (2).修改node2节点配置
 - (3).更新同步配置
 - (4).启动同步节点
 - (5).更新同步配置
 
- 数据校验
 - 1.准备数据
 - 2.校验配置
 - 3.新建校验任务
 - 4.新建调度任务
 - 5.执行校验
 
- 数据自动修复
 - 1.新建数据自动修复任务
 - 2.再次执行数据校验任务
 - 3.查询修复结果
 
- 配置告警邮件
 - 1.告警邮箱配置
 - 2.配置告警管理
 - 3.错误问题
 - (1).邮件发送提示失败
 - (2).配置告警提示失败
 
- 4.邮件告警展示
 
部署KES数据库到KES数据库同步服务
1.登录KFS管理平台
| 账号 | 密码 | 
|---|---|
| admin | admin | 
| user_0017 | Kfs123#$ | 

 
2.开始配置数据节点信息
- 【部署管理】>【节点管理】>【新建】> 【填入相关信息】 >【保存】
 - 安装目录:/home/flysync/replicator
 
(1)配置node1数据节点

点击保存
(2)配置node2数据节点

 点击保存

3.KFS拓扑图配置
【部署管理】>【拓扑配置】
4.开始部署

 

5.启动同步程序并查验是否运行正常
【部署管理】> 【节点管理】>【启动】。
查看服务状态
【部署管理】> 【服务管理】

测试同步
1.从node1数据库中导出exam模式并拷贝到node2 /tmp目录下
[root@node1 ~]# su - kingbase
上一次登录:五 11月 17 18:13:59 CST 2023pts/1 上
[kingbase@node1 ~]$ cd /KingbaseES/V8/Server/bin/
[kingbase@node1 bin]$ ./sys_dump -U flysync -d test -f /tmp/exam.dmp -Fc -n exam
[kingbase@node1 bin]$ scp /tmp/exam.dmp node2:/tmp
kingbase@node2's password: 
exam.dmp                                                                                                                                                                                                       100%   16KB  16.3KB/s   00:00    
[kingbase@node1 bin]$ 
 
2.将node1传过来的数据导入到node2数据库中
[root@node2 ~]# su - kingbase
上一次登录:五 11月 17 15:54:16 CST 2023
[kingbase@node2 ~]$ cd /KingbaseES/V8/Server/bin/
[kingbase@node2 bin]$ ./ksql -Usystem test -c 'create schema exam0017'
CREATE SCHEMA
[kingbase@node2 bin]$ ./sys_restore -Usystem /tmp/exam.dmp -d test -Fc -g exam -G exam0017
[kingbase@node2 bin]$ ksql -U flysync -d test
ksql (V8.0)
输入 "help" 来获取帮助信息.test=# ALTER TABLE exam01.course RENAME TO course0017;
test=# \d exam0017.*索引 "exam0017.cno_pk"栏位 |     类型     | 键值? | 定义 
------+--------------+-------+------cno  | numeric(2,0) | 是    | cno
主键(PK),btree, 给数据表 "exam0017.course"数据表 "exam0017.course"栏位    |            类型            | 校对规则 |  可空的  | 预设 
-----------+----------------------------+----------+----------+------cno       | numeric(2,0)               |          | not null | cname     | character varying(30 char) |          | not null | clevel    | character varying(13 char) |          |          | pass_mark | numeric(5,0)               |          | not null | 
索引:"cno_pk" PRIMARY KEY, btree (cno)
检查约束限制"pass_mark_ck" CHECK (pass_mark > 0::numeric)
由引用:TABLE "exam0017.score" CONSTRAINT "cno_fk" FOREIGN KEY (cno) REFERENCES exam0017.course(cno)索引 "exam0017.id_no_uk"栏位  |            类型            | 键值? | 定义  
-------+----------------------------+-------+-------id_no | character varying(18 char) | 是    | id_no
唯一的,btree, 给数据表 "exam0017.student"索引 "exam0017.ino_pk"栏位 |     类型     | 键值? | 定义 
------+--------------+-------+------ino  | numeric(3,0) | 是    | ino
主键(PK),btree, 给数据表 "exam0017.instructor"数据表 "exam0017.instructor"栏位  |            类型            | 校对规则 |  可空的  | 预设 
-------+----------------------------+----------+----------+------ino   | numeric(3,0)               |          | not null | iname | character varying(20 char) |          | not null | title | character varying(30 char) |          |          | 
索引:"ino_pk" PRIMARY KEY, btree (ino)
由引用:TABLE "exam0017.score" CONSTRAINT "ino_fk" FOREIGN KEY (ino) REFERENCES exam0017.instructor(ino)数据表 "exam0017.instructor_history"栏位   |            类型            | 校对规则 |  可空的  | 预设 
----------+----------------------------+----------+----------+------ino      | numeric(3,0)               |          |          | iname    | character varying(20 char) |          | not null | title    | character varying(30 char) |          |          | res_date | date                       |          |          | 索引 "exam0017.phone_uk"栏位  |     类型      | 键值? | 定义  
-------+---------------+-------+-------phone | numeric(11,0) | 是    | phone
唯一的,btree, 给数据表 "exam0017.student"数据表 "exam0017.score0017"栏位     |     类型     | 校对规则 |  可空的  | 预设 
-------------+--------------+----------+----------+------sno         | numeric(4,0) |          | not null | cno         | numeric(2,0) |          | not null | ino         | numeric(3,0) |          | not null | exam_date   | date         |          | not null | score       | numeric(5,0) |          |          | certificate | boolean      |          |          | 
索引:"score_pk" PRIMARY KEY, btree (cno, sno, ino, exam_date)
检查约束限制"score_ck" CHECK (score >= 0::numeric)
外部键(FK)限制:"cno_fk" FOREIGN KEY (cno) REFERENCES exam0017.course(cno)"ino_fk" FOREIGN KEY (ino) REFERENCES exam0017.instructor(ino)"sno_fk" FOREIGN KEY (sno) REFERENCES exam0017.student(sno)
触发器:t_update_score AFTER INSERT ON exam0017.score FOR EACH ROW 
BeginUPDATE exam0017.score t SET t.certificate=0 WHERE t.score<70;
END索引 "exam0017.score_pk"栏位    |     类型     | 键值? |   定义    
-----------+--------------+-------+-----------cno       | numeric(2,0) | 是    | cnosno       | numeric(4,0) | 是    | snoino       | numeric(3,0) | 是    | inoexam_date | date         | 是    | exam_date
主键(PK),btree, 给数据表 "exam0017.score"序列数 "exam0017.seq_student_sno"类型  | 起始值 | 最小值 | 最大值 | 增量 | 循环? | 缓存 
--------+--------+--------+--------+------+-------+------bigint |   1001 |      1 |   9999 |    1 | no    |    1索引 "exam0017.sno_cno_pk"栏位 |     类型     | 键值? | 定义 
------+--------------+-------+------sno  | numeric(4,0) | 是    | sno
主键(PK),btree, 给数据表 "exam0017.student"数据表 "exam0017.student"栏位   |            类型            | 校对规则 |  可空的  |                     预设                      
----------+----------------------------+----------+----------+-----------------------------------------------sno      | numeric(4,0)               |          | not null | nextval('exam0017.seq_student_sno'::regclass)sname    | character varying(20 char) |          |          | gender   | character varying(2 char)  |          |          | phone    | numeric(11,0)              |          | not null | id_no    | character varying(18 char) |          |          | city     | character varying(20 char) |          |          | reg_date | date                       |          |          | job      | character varying(30 char) |          |          | company  | character varying(30 char) |          |          | 
索引:"sno_cno_pk" PRIMARY KEY, btree (sno)"id_no_uk" UNIQUE CONSTRAINT, btree (id_no)"phone_uk" UNIQUE CONSTRAINT, btree (phone)
检查约束限制"gender_ck" CHECK (gender::text = 'm'::text OR gender::text = 'f'::text)
由引用:TABLE "exam0017.score" CONSTRAINT "sno_fk" FOREIGN KEY (sno) REFERENCES exam0017.student(sno)视图 "exam0017.v_score_information"栏位  |            类型            | 校对规则 | 可空的 | 预设 
-------+----------------------------+----------+--------+------sname | character varying(20 char) |          |        | iname | character varying(20 char) |          |        | cname | character varying(30 char) |          |        | score | numeric(5,0)               |          |        | test=# SELECT relkind,relname FROM sys_class WHERE relnamespace = (select oid from sys_namespace where nspname='exam0017') ;relkind |       relname       
---------+---------------------r       | courser       | instructor_historyr       | studentS       | seq_student_snov       | v_score_informationi       | cno_pki       | id_no_uki       | ino_pki       | phone_uki       | score_pki       | sno_cno_pkr       | scorer       | instructor
(13 行记录)
test=# 
 
- 现在已将表结构和数据都存到了node2中
 
3.修改拓扑图配置实现增量搬迁同步
(1).修改node1节点配置
【部署管理】>【拓扑管理】 >【双击node1节点】 >【高级属性】>【过滤器】>【新增】 >【replicate】 >【设置】 >【填入相关信息】。

 

(2).修改node2节点配置
【部署管理】>【拓扑管理】 >【双击node2节点】 >【高级属性】>【过滤器】>【新增】 >【replicate】 >【设置】 >【填入相关信息】。

 
 
 
 
(3).更新同步配置
然后点击【安装/更新】按钮,更新配置

 
点击确定

耐心等待直到出现安装完成字样

(4).启动同步节点

点击停止后再次启动启动

 
 

 
(5).更新同步配置
在node1数据库exam模式的course和instructor表下插入数据
[kingbase@node1 bin]$ ./ksql -U flysync -dtest
ksql (V8.0)
输入 "help" 来获取帮助信息.test=# INSERT INTO exam.course VALUES(40,'KFS','middle',80);
INSERT 0 1
test=# INSERT INTO exam.instructor VALUES(108,'fenxiaoyue','Intermediate Instructor');
INSERT 0 1
test=# \q
[kingbase@node1 bin]$ 
 
在node2数据库exam模式下查询course和instructor表新增的数据
[kingbase@node2 bin]$ ksql -U flysync -d test
ksql (V8.0)
输入 "help" 来获取帮助信息.test=# SELECT * FROM exam0017.course0017 WHERE cno=40;    cno | cname | clevel | pass_mark 
-----+-------+--------+-----------40 | KFS   | middle |        80
(1 行记录)test=# SELECT * FROM exam0017.instructor WHERE ino=108;ino |   iname    |          title          
-----+------------+-------------------------108 | fenxiaoyue | Intermediate Instructor
(1 行记录)test=#  
数据校验
1.准备数据
在node2(target端)误操作制造主备两端数据不一致。
[kingbase@node2 bin]$ ksql -U flysync -d test
ksql (V8.0)
输入 "help" 来获取帮助信息.test=# UPDATE exam0017.student SET phone=15723449970 WHERE sno=1008;
UPDATE 1
test=# DELETE FROM exam0017.student WHERE sno=1006;
DELETE 1
test=# INSERT INTO exam0017.student(sno,sname,gender,phone) VALUES('1009','Huang Tao','m',13812447980) ;
INSERT 0 1
test=# \q
[kingbase@node2 bin]$ 
 
2.校验配置
【数据校验】>【校验配置】>【数据校验及数据修复配置】

- 参数配置如下
 
- 任务并行数 2(不要超出物理CPU核数)。
 - 校验核心线程数 5。
 - 校验同步大小 50000。
 - 修复批量大小 10000。
 - 校验同步记录日志 开启。
 - 校验结果自动清除 开启,设置为3天。
 - 是否校验大对象 开启。
 - 大对象校验阈值 5000000
 - 同步跳过超阈值数据 关闭。
 - 刷新分片设置 关闭。
 
3.新建校验任务
【数据校验】 >【任务配置】 >【新建】。

 
 
 
 源配置:
选择exam模式下的所有表

目标配置:
选择exam0017模式下的所有表


 
4.新建调度任务
【调度管理】> 【新建调度】

 
5.执行校验
执行第一次校验

 
 点击查看详情查看校验结果
 
数据自动修复
1.新建数据自动修复任务



 
 
2.再次执行数据校验任务

3.查询修复结果

 
配置告警邮件
1.告警邮箱配置

 
2.配置告警管理

 
 
 
 点击测试
 
 收到邮件点击保存
3.错误问题
(1).邮件发送提示失败
- 检查你的虚拟机是否网络畅通
 - 检查你的邮箱smtp是否开通,授权码填写在密码栏
 
(2).配置告警提示失败
检查你新增加的用户邮箱是否和告警配置的一致
 
4.邮件告警展示

 
 
 



