Klustron RCR 使用手册
Klustron RCR 使用手册
01 需求背景
此文档目的是为了客户更好的使用klustron数据库,Klustron数据库支持集群与集群之间数据同步(remote cluster replication),以下简称:RCR
klustron分布式数据库为了支持集群跨城实现高可用性,在备城建立集群与主城集群建立RCR 关系,实现数据实时同步。当主城异常时,切换到备城继续对外提供服务。
02 实现原理
2.1 原理
Klustron数据跨城数据同步,包括两个部分数据同步:
- shard之间业务的数据同步,基于mysql binlog主备同步来实现。
- klustron集群的元数据同步,同步数据为计算节点需要库表分布信息,该同步采用binlog_sync工具来完成,binlog_sync通过binlog_dump方式连接主cluster所在元数据集群,捕获到binlog变化后,将binlog记录中shard id信息进行映射后再写入备cluster元数据表中。
2.2 注意事项
1. 主备shard数量必须保持一致
2. 主备cluster_mgr网络必须互通
3. xpanel 到元数据集群网络必须互通
03 Klustron版本&集群机器配置
Klustron版本 | 1.2.1 |
---|
集群名字 | Cluster_A | |
---|---|---|
机器IP | 机器配置 | 组件 |
172.16.0.15 | CentOS7.9 32C 128G 1T*2nvme ssd | Meta Node Data Node Computing Node Xpanel |
172.16.0.16 | CentOS7.9 32C 128G 1T*2nvme ssd | Meta Node Data Node Computing Node |
172.16.0.17 | CentOS7.9 32C 128G 1T*2nvme ssd | Meta Node Data Node Computing Node |
集群名字 | Cluster_B | |
---|---|---|
机器IP | 机器配置 | 组件 |
172.16.1.18 | CentOS7.9 32C 128G 1T*2nvme ssd | Meta Node Data Node Computing Node Xpanel |
172.16.1.19 | CentOS7.9 32C 128G 1T*2nvme ssd | Meta Node Data Node Computing Node |
172.16.1.20 | CentOS7.9 32C 128G 1T*2nvme ssd | Meta Node Data Node Computing Node |
04 集群之间数据同步
4.1 本地xpanel下管理的集群之间的数据同步
4.1.1 新增RCR
首先创建两个cluser集群分别为cluser_A和cluser_B,如下图所示:
成功创建集群后在集群列表中信息中显示两个集群信息如下图所示:
在集群管理列表中点击“RCR服务”,然后点击“+新增RCR“按钮如图所示:
分别对应添加Cluseter_A和Cluseter_B元数据节点信息
元数据信息添加成功
元数据添加成功后,检查RCR服务列表中各属性的值,其中状态值为“运行中“表示新增一组集群之间的数据同步成功
4.1.2 验证数据同步
测试数据同步,集群Cluster_A计算节点写入数据
PGPASSWORD=abc psql -h 127.16.0.16 -U abc -p 47001 -d postgres
在集群Cluster_B计算节点查询,数据已经成功同步过来(注意:此时Cluster_B作为备集群,不允许写入,可以查询相关数据)
PGPASSWORD=abc psql -h 127.16.1.20 -U abc -p 47001 -d postgres
4.1.3 验证数据一致性
为了进一步验证数据的准确性和一致性,使用MySQL协议进入计算节点,校验表中数据中的md5值
mysql -uabc -pabc -h172.16.0.16 -P47002
同样使用MySQL协议登录计算节点校验表中数据中的md5值
mysql -uabc -pabc -h172.16.1.20 -P47002
其结果与主Cluster_A集群对应数据的md5值完全一样
4.1.4 延迟复制设置
延迟复制设置,此功能类似mysql延迟复制,Cluster_A等待多少秒后数据同步到Cluster_B中
4.1.5 删除RCR
集群之间建立RCR关系,集群不允许删除,解绑关系之后才能删除,注意:生产环境中慎重删除集群操作
4.1.6 切换RCR
当主集群由于某种原因出现异常了(Cluser_A)或者由于某种变更需要把业务切换到备集群(Cluser_B),此时需要使用集群手工切换,具体操作如下:
切换之前点击“详情”查询一下主备对应的复制信息
切换后验证数据准确性
主集群上面修改信息Cluster_B(没有切换之前为备,现在为主),登录主集群计算节点
PGPASSWORD=abc psql -h 127.16.1.20 -U abc -p 47001 -d postgres
备集群上面修改信息Cluster_A(没有切换之前为主,现在为备),登录备集群计算节点
PGPASSWORD=abc psql -h 127.16.0.15 -U abc -p 47001 -d postgres
数据查询为一致
进一步验证数据一致性,使用MySQL协议分别登入主备集群计算节点查询
mysql -uabc -pabc -h172.16.1.20 -P47002
mysql -uabc -pabc -h172.16.0.15 -P47002
结果显示,查询数据的MD5值完全一致
4.1.7 启动/停止RCR
停止RCR
启动RCR
停止和启动属性列表状态会有相应的变化
4.1.8 RCR添加/删除shard
创建RCR关系的时候,主备cluster之间shard数量必须一致,如果在建立RCR关系cluster中任何一个cluster添加/删除shard,系统自动根据RCR关系到对端cluster中添加/删除shard
在主cluster上增加shard,如下图所示:
主添加shard成功后,备集群也对应添加了相应的shard节点
删除操作也同样如此,此处不再演示
4.2 非本地xpanel下管理的集群之间的数据同步
前面介绍了本地xpanel管理集群之间的数据同步即(所有集群共享同一个元数据集群),下面介绍不同xpanel管理下集群数据同步即(所有集群不在同一个元数据集群)在同步数据之前,逻辑上没有任何关系。
4.2.1 数据准备
http://192.168.0.125:18080/KunlunXPanel/ 管理1个集群,为Cluster_A
http://192.168.0.128:18080/KunlunXPanel/ 管理1个集群,为Cluster_B
4.2.2 新增RCR
在集群管理列表中点击“RCR服务”,然后点击“元数据管理“按钮如图所示:
在新增元数据列表中添加备集群的元数据信息
新增成功后,在元数据列表中显示刚才添加的相应的信息如下图所示:
在集群管理列表中点击“RCR服务”,然后点击“+新增RCR“按钮如图所示:
分别对应添加Cluseter_A和Cluseter_B元数据节点信息
新增RCR成功后,列表信息显示如下:
点击“详情”可以查询到相关的同步信息:
其它功能和本地xpanel集群同步功能一样,不再累述!