作者:瀚高PG实验室 (Highgo PG Lab)

目录

环境

文档用途

详细信息

环境

系统平台:Linux x86-64 Red Hat Enterprise Linux 7

版本:5.6.5


文档用途

HighGo Database集群版数据库是通过高可用管理工具REPMGR 对数据库集群进行管理。REPMGR 管理工具包括repmgr,repmgrd 两个命令,其中repmgr命令主要用来对节点注册repmgr服务,执行克隆基础备份,提升备节点为主节点,Follow备节点到新主节点等,repmgrd命令主要用来启动守护进程对集群状态进行监控,本文主要介绍hg_repmgr主备切换方式。

 

详细信息

一、自动切换

Repmgr多是通过repmgrd守护进程对集群状态进行监控来自动完成相应的管理。在以下几个场景中,repmgr集群系统会完成主备节点的自动切换。

①主节点断网

当主节点断网后(网线被拔掉或者网卡坏掉),备节点在尝试N(通过 hg_repmgr 配置文件reconnect_attempts参数决定)次连接主服务器后如果还是没有连接上,则会有一次failover的过程,此时Repmgr集群管理系统会选举一个备节点提升为主节点服务器(虚拟IP也会随着漂移到该新主节点上),随后其他备节点会Follow到该新主节点上,此时再把原主节点网络恢复之后,原主节点会降级为备节点重新rejoin到新的集群系统中。

②主节点断电

当主节点断电时,如果不能及时重新启动,则其他备节点会提升为新主节点,该原主节点会自动降级为备节点rejoin到新集群里。

③手动停止主节点

当手动停止主节点时,节点在尝试N(通过hg_repmgr配置文件reconnect_attempts参数决定)次连接主服务器后如果还是没有连接上,则会有一次failover的过程,此时Repmgr集群管理系统会选举一个备节点提升为主节点服务器(虚拟IP也会随着漂移到该新主节点上),随后其他备节点会Follow到该新主节点上,此时再把原主节点网络恢复之后,原主节点会降级为备节点重新rejoin到新的集群系统中。

 

二、手动切换

如果集群有人工干预或人工误操作导致的停库等行为,此时Repmgr集群管理系统可能就不能进行自动的管理工作,现在将可能发生的情况作出说明,可以在关闭repmgrd守护进程的基础上进行手动切换。

1、promote-follow-rejoin

当主节点故障后,可使用 repmgr standby promote命令将当前服务器上的某个备节点提升为主节点。

①停掉主节点数据库模拟主节点故障:

pg_ctl stop

主备RR之间需要建BGP吗 bgp主备切换_服务器

②由于主节点的数据库已经故障,无法查询集群状态。在备节点查看集群当前状态:

repmgr cluster show

主备RR之间需要建BGP吗 bgp主备切换_服务器_02

③将 node2 提升为主节点:

repmgr standby promote

主备RR之间需要建BGP吗 bgp主备切换_守护进程_03

④查看当前集群状态:

主备RR之间需要建BGP吗 bgp主备切换_服务器_04

此时node1故障,node2提升为primary,node3仍为 standby,但是其upstream 为 node1,需要手动执行 follow 命令使其跟随新主 node2。