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

Repmgr集群 Witness节点

原创 Halo Tech 2023-11-20
630

一、概述

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

二、repmgr常用命令


三、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进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论