跳至主要內容

Klustron RCR 使用手册

Klustron大约 6 分钟

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.15CentOS7.9 32C 128G 1T*2nvme ssdMeta Node Data Node Computing Node Xpanel
172.16.0.16CentOS7.9 32C 128G 1T*2nvme ssdMeta Node Data Node Computing Node
172.16.0.17CentOS7.9 32C 128G 1T*2nvme ssdMeta Node Data Node Computing Node
集群名字Cluster_B
机器IP机器配置组件
172.16.1.18CentOS7.9 32C 128G 1T*2nvme ssdMeta Node Data Node Computing Node Xpanel
172.16.1.19CentOS7.9 32C 128G 1T*2nvme ssdMeta Node Data Node Computing Node
172.16.1.20CentOS7.9 32C 128G 1T*2nvme ssdMeta Node Data Node Computing Node

04 集群之间数据同步

4.1 本地xpanel下管理的集群之间的数据同步

4.1.1 新增RCR

首先创建两个cluser集群分别为cluser_A和cluser_B,如下图所示:

img

成功创建集群后在集群列表中信息中显示两个集群信息如下图所示:

在集群管理列表中点击“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

img

结果显示,查询数据的MD5值完全一致

4.1.7 启动/停止RCR

停止RCR

img

启动RCR

img

停止和启动属性列表状态会有相应的变化

4.1.8 RCR添加/删除shard

创建RCR关系的时候,主备cluster之间shard数量必须一致,如果在建立RCR关系cluster中任何一个cluster添加/删除shard,系统自动根据RCR关系到对端cluster中添加/删除shard

在主cluster上增加shard,如下图所示:

img

img

主添加shard成功后,备集群也对应添加了相应的shard节点

img

img

删除操作也同样如此,此处不再演示

4.2 非本地xpanel下管理的集群之间的数据同步

前面介绍了本地xpanel管理集群之间的数据同步即(所有集群共享同一个元数据集群),下面介绍不同xpanel管理下集群数据同步即(所有集群不在同一个元数据集群)在同步数据之前,逻辑上没有任何关系。

4.2.1 数据准备

http://192.168.0.125:18080/KunlunXPanel/open in new window 管理1个集群,为Cluster_A

img

http://192.168.0.128:18080/KunlunXPanel/ 管理1个集群,为Cluster_B

img

4.2.2 新增RCR

在集群管理列表中点击“RCR服务”,然后点击“元数据管理“按钮如图所示:

img

在新增元数据列表中添加备集群的元数据信息

img

新增成功后,在元数据列表中显示刚才添加的相应的信息如下图所示:

img

在集群管理列表中点击“RCR服务”,然后点击“+新增RCR“按钮如图所示:

img

分别对应添加Cluseter_A和Cluseter_B元数据节点信息

img

新增RCR成功后,列表信息显示如下:

img

点击“详情”可以查询到相关的同步信息:

img

img

其它功能和本地xpanel集群同步功能一样,不再累述!

END