暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

Repmgr集群 Witness节点

贾桂权 2024-07-24
117

一、概述

多个数据库服务器可以一起工作,这样如果主要的服务器故障则允许其它服务器快速接手它的任务(高可用性),或者可以允许多个计算机提供相同的数据(负载均衡)。理想情况下,数据库服务器能够无缝地一起工作。Halo数据库支持物理复制技术和逻辑复制技术来保证数据库系统的可靠性和数据安全性。repmgr是一个开源工具套件,可以用于管理Halo服务器集群中的复制和故障切换。它通过设置备用服务器、监控复制和执行管理任务(如故障切换或手动切换操作)等。

二、repmgr常用命令

命令

   功能

repmgr primary register

注册对应服务器的primary节点为主服务器节点

repmgr primary unregister

注销不活动的主服务器节点

repmgr standby clone

从主节点复制数据到standby节点

repmgr standby register

注册对应节点standby节点为备用服务器节点

repmgr standby unregister

注销备用服务器节点

repmgr standby promote

将备服务器节点提升为主服务器节点

repmgr standby follow

将一主多从架构中,其余的standby被服务器节点重新指向新的primary主服务器节点

repmgr standby switchover

将指定备服务器节点提升为主服务器节点,并将primary主服务器降级为备服务器节点

repmgr witness register

注册指定节点为见证服务器节点

repmgr witness unregister

注销见证服务器节点

repmgr node status

查看各节点的基本信息和复制状态

repmgr node check

高可用集群节点状态信息检查

repmgr node rejoin

重新加入一个失效节点到集群

repmgr cluster show

查看集群中已注册的节点基本信息与状态

repmgr cluster matrix

查看集群中所有节点的matrix信息

repmgr cluster crosscheck

查看集群中所有节点间两两交叉连接检测

repmgr cluster event

查看集群事件记录信息

repmgr cluster cleanup

清理集群监控历史

三、Witness(见证节点)

witness节点是一个普通的数据库实例,并不是流复制的一部分:它的作用是如果发生故障转移的情况,提供见证信息从而证明是主节点本身不可用,而不是不同的物理网络中断导致的脑裂。

在主节点的同一网络创建witness服务,如果主节点不可用,则备节点可以决定是否可以在不脑裂风险的情况下提升为主节点:如果备节点网络上只是和witness或主节点中的一个节点不通,则很可能存在网络中断,它不应该切换为主节点。如果备节点和witness节点想通,但和主节点不通,这证明不是网络中断,而是主节点本身不可用,因此它可以切换为主节点。

四、自动failover验证

启动守护进程:

主节点本身不可用

初始状态:

关闭集群主节点rep1:

查看备节点rep2的repmgr日志可以得知,备节点rep2尝试6次后无法重新连接到节点“rep1”(ID:1)后进行了自动提升。

查看集群状态:

将rep1节点手动加入集群:

查看集群状态:

备节点之间网络中断

初始状态:

在集群主节点rep2限制备节点的网络访问:

iptables -A INPUT -s 192.168.192.203 -j DROP

通过查看备节点rep1的repmgr日志我们可以知道备节点rep1在尝试六次连接后,检查了同级见证节点“node3”(ID:3)的状态信息了解到主节点仍然可见,所以备节点rep1就取消故障切换。

查看集群状态:

重新将rep1加入集群:

查看集群状态:

通过引入wintness 节点,repmgr集群可以更可靠地检测和处理主节点故障,并确保在故障发生时进行正确的故障转移。wintness 节点会提高repmgr集群应对网络故障的能力。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论