HighGo Database集群版数据库是经过高可用管理工具REPMGR 对数据库集群进行管理。REPMGR 管理工具包括repmgr,repmgrd 两个命令,其中repmgr命令主要用来对节点注册repmgr服务,执行克隆基础备份,提高备节点为主节点,Follow备节点到新主节点等,repmgrd命令主要用来启动守护进程对集群状态进行监控,本文主要介绍hg_repmgr主备切换方式。node
1、自动切换数据库
Repmgr可能是经过repmgrd守护进程对集群状态进行监控来自动完成相应的管理。在如下几个场景中,repmgr集群系统会完成主备节点的自动切换。服务器
①主节点断网网络
当主节点断网后(网线被拔掉或者网卡坏掉),备节点在尝试N(经过 hg_repmgr 配置文件reconnect_attempts参数决定)次链接主服务器后若是仍是没有链接上,则会有一次failover的过程,此时Repmgr集群管理系统会选举一个备节点提高为主节点服务器(虚拟IP也会随着漂移到该新主节点上),随后其余备节点会Follow到该新主节点上,此时再把原主节点网络恢复以后,原主节点会降级为备节点从新rejoin到新的集群系统中。工具
②主节点断电url
当主节点断电时,若是不能及时从新启动,则其余备节点会提高为新主节点,该原主节点会自动降级为备节点rejoin到新集群里。spa
③手动中止主节点.net
当手动中止主节点时,节点在尝试N(经过hg_repmgr配置文件reconnect_attempts参数决定)次链接主服务器后若是仍是没有链接上,则会有一次failover的过程,此时Repmgr集群管理系统会选举一个备节点提高为主节点服务器(虚拟IP也会随着漂移到该新主节点上),随后其余备节点会Follow到该新主节点上,此时再把原主节点网络恢复以后,原主节点会降级为备节点从新rejoin到新的集群系统中。3d
2、手动切换blog
若是集群有人工干预或人工误操做致使的停库等行为,此时Repmgr集群管理系统可能就不能进行自动的管理工做,如今将可能发生的状况做出说明,能够在关闭repmgrd守护进程的基础上进行手动切换。
一、promote-follow-rejoin
当主节点故障后,可以使用 repmgr standby promote命令将当前服务器上的某个备节点提高为主节点。
①停掉主节点数据库模拟主节点故障:
pg_ctl stop
②因为主节点的数据库已经故障,没法查询集群状态。在备节点查看集群当前状态:
repmgr cluster show
③将 node2 提高为主节点:
repmgr standby promote
④查看当前集群状态:
此时node1故障,node2提高为primary,node3仍为 standby,可是其upstream 为 node1,须要手动执行 follow 命令使其跟随新主 node2。
⑤在 node3 上执行 follow
命令: repmgr standby follow
⑥查看集群状态:
repmgr cluster show
⑦在原主 node1 上执行:
repmgr node rejoin -d 'host=node2 user=hgrepmgr dbname=hgrepmgr' --force-rewind --verbose
更多详细信息请登陆【瀚高技术支持平台】查看https://support.highgo.com/#/index/docContentHighgo/a6aca66c03c83400