KingbaseES集群架构简介

本文详细介绍了KingbaseESV8R6的读写分离集群架构,包括基础架构、工作机制、repmgr工具及其组成部分、配置参数和故障处理机制,重点讲解了repmgr在主备切换和故障恢复中的作用。
摘要由CSDN通过智能技术生成

一、KingbaseESV8R6读写分离集群架构

1、读写分离集群的基础架构是主备流复制


2、通过repmgr工具对主备节点状态维护及主备故障切换等


3、KingbaseES提供后台数据库服务,repmgrd为repmgr后台进程对主备节点状态进行监控,

     KBHA提供repmgrd进程的监控和故障恢复

如图所示

二、KingbaseESV8R6读写分离集群工作机制


1、KingbaseES V8R6读写分离集群,提供了基于日志传输复制技术的读写分离集群管理系统。采

      用日志传输技术的集群方案是通过在多台KingbaseES数据库服务器间进行日志传输来实现数

      据的高可用性,各节点之间的数据在物理上是完全独立的。正常情况下,数据库主服务器(即

      Master)以活动服务器的身份对外提供数据访问服务,同时数据库备份服务器(即Slave)获取主

      服务器上的更新日志与主服务器保持数据同步。如果主服务器发生故障,备份服务器推选出新

      的主服务器并继续对外提供服务。在故障服务器被修复后,原主服务器仍可以备用服务器身份

      继续进行与主服务器进行日志同步工作


2、KingbaseES V8R6读写分离集群系统中的备机是可读的,在此基础上提供了读写分离功能。一

      方面用户可以直接连接备机执行只读查询操作,另一方面也可以通过驱动进行读写分离: 驱动 

      自动对用户执行的SQL语句进行读写分类将写操作发送到主机执行,将只读操作发送到备机执

      行,并且能优化到在一条长事务内,所有写语句之前的读语句可分发到Slave执行,遇到写语

      句之后的所有语句发送Master。同时,驱动按照一定的算法及权重进行负载均衡,以达到提升

      系统整体性能的目的

三、读写分离集群

repmgr 集群架构

1、repmgr: 用于执行管理任务中的命令行工具


2、repmgrd: repmgr守候进程,监控流复制节点及数据库服务状态,并提供故障切换


3、repmgr.conf: repmgr集群管理配置文件,记录集群元数据信息: node、状态、priority、连接等

      信息


4、Witness:见证服务器,故障切换时防止 "脑裂" 

如图所示

Witness节点功能

repmgr提供了“witness server"的功能,以协助在故障转移情况下确定具有多个备用服务器的新主

服务器。witness本身不是复制群集的一部分,尽管它确实包含repmgr 元数据架构的副本。witness

的目的是提供 "casting vote(强制投票)",将复制群集中的服务器拆分到多个位置。如果位置之间的


连接丢失,则witness的存在与否将决定该位置的服务器是否升级为主服务器。这是为了防止出

现'split-brain(裂脑)”的情况,在这种情况下,隔离的位置会将网络中断解释为(远程)主节点的故障

并升级为(本地)备用节点仅当使用 repmgrd 时,才需要创建witness

四、repmgr基本概念

1、repmgr cluster: 是指通过流复制基础上连接的KingbaseES服务器网络


2、node: 是指在repmgr cluster单个KingbaseES服务器


3、upstream node(上游节点):备用服务器连接到此节点接收流复制。一般是主服务器,或者在级

      联复制的架构中,是另一个备用服务器


4、priority: node的优先级,用于多个standby node参与提升主库时的竞选,priority为0的standby

     node永远不能参与主库提升

5、switchover (切换): 集群在计划内进行主备切换,在某些情况下,例如硬件或操作系统维护,进

     行有计划的切换,从而将制定的备库切换为主数据库。repmgr命令行客户端提供了此功能

6、failover(故障转移): 集群无计划的主备切换,主服务器发生故障,选择合适的备用服务器被提升

      为新的主服务器。repmgrd 守护进程支持自动切换到最小化停机时间

7、fencing(隔离): 在故障转移情况下,升级新的备用数据库后,至关重要的是,先前的主数据库不

      要意外地恢复联机、这会导致脑裂的情况。为了防止这种情况,应该将发生故障的主数据库与

      应用程序隔离开,即"fenced of"

8、witness server (witness): witness server用以协助在故障转移情况下,在多个备用服务器中,

      选择新主服务器witness本身不是复制群集的一部分,尽管它确实包含repmgr 元数据架构的副

      本。witness的目的是提供"casting vote(强制投票)",将复制群集中的服务器分到多个位置。如

      果位置之间的连接丢失,则witness的存在与否将决定该位置的服务器是否升级为主服务器。这

      是为了防止出现"split-brain(裂脑)" 的情况。仅当使用 repmgrd 时,才需要创建witness

五、repmgr组成


repmgr cluster主要提供两个工具

1、repmgr

用于执行管理任务中的命令行工具,例如

注册主备服务器


将备用服务器提升为主服务器


切换主备服务器


集群中服务器节点状态查询

2、repmgrd

守候进程,此守候进程复制集群中的服务器数据库服务并执行以下的任务

监视和记录replication状态的性能

通过检测主服务器的故障并提升最合适的备用服务器为主服务器来执行

如图所示,为集群切换过程

过程省略。。。。。。

六、repmgr主要配置参数

repmgr和repmgrd 使用一个公共配置文件,默认情况下称为 repmgr.conf (尽管如果明确指定,则

可以使用任何名称)。repmgr流复制管理工具对集群节点的管理是基于一个分布式的管理系统。每

个节点都有自己的repmgr.conf配置文件,用来记录本节点的ID,节点名称,连接信息,数据库

DATA目录等配置参数。在配置好这些参数后,就可以通过repmgr命令实现对集群节点的 "一键式"

部署

每个 repmgr.conf 文件必须包含以下参数

1、node_id  (int)大于零的唯一整数,用于标识节点。


2、node_name  (string)任意 (但唯一) 字符串、我们建议使用服务器的主机名或与服务器明确相关

      的其他标识符,以避免混淆。避免选择反映节点当前角色的名称,例如 primary 或standby1,

      因为角色可以更改,并且如果您遇到的解决方案是将当前的 primary称为 standby1(例如),那

      么至少可以说令人困感。字符串的最大长度为63个字符,并且只能包含可打印的 ASCII 字符


3、conninfo  (string)数据库连接信息作为 conninfo 字符。群集中的所有服务器必须能够使用此字

      符连接到本地节点。如果正在使用repmgrd,请考虑在 conninfo 字符串中显式设置

      connect_timeout,以确定放弃网络连接尝试之前经过的时间


4、data_directory  (string) 节点的数据目录。在 KingbaseES实例未运行且没有其他方法确定数据

      目录的情况下执行操作时,repmgr 需要此功能
 


 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值