一.什么是repmgr:
repmgr(replication manager)是一款开源的数据库高可用工具套件,用于管理集群中的流复制和故障切换。
repmgr使用工具来增强集群的内置热备份功能,以设置备用服务器、监控复制和执行管理任务,例如故障切换或者手动切换。
repmgr是2010年由2ndQuadrant推出的集群故障切换最流行的工具之一。
repmgr帮助DBA和系统管理员管理数据库集群。
repmgr极大简化了设置和管理具有高可用和可伸缩性要求的数据库的过程。
二.相关概念:
1.复制集群(replication cluster):通过流复制连接的数据库集群。
2.节点(node):复制集群中的单个数据库服务器。
3.上游节点(upstream node):备用服务器连接的节点,数据同步的上游节点(一般是主服务器或在级联复制情况下,是另一个备用服务器的父节点)。
4.故障转移(failover):主库节点发生故障并且将适当的备库节点提升为新主库时发生的操作。
5.切换(switchover):某些情况下,如硬件或者操作系统故障,必须使主节点所在服务器脱机,需要以受控方式(主动)从复制集群中移除现有主节点服务器,并从备用服务器中选择新主,进行提升。
6.隔离(fencing):在故障切换的情况下,新备节点提升为主库后,前一主数据库不会意外的重新上线,否则,会发生脑裂的情况。为防止此情况,将失败的主节点与应用隔离。
7.见证服务器(witness server):主要作用是帮助确定具有多个备用数据库的故障切换情况下的新主服务器,简单来说就是为了确认故障发生(见证服务器本身不是集群的一部分,但包含repmgr元数据的副本)。
三.组件:
1.用于管理任务的命令行工具(repmgr):设置备节点、备节点提升、主备切换、查询集群中各服务器状态。
2.repmgrd进程:守护进程,监控集群中的主备节点并执行以下任务:监控和记录复制性能、通过检测主节点故障并提升最合适的备节点来执行故障切换
repmgrd进程根据本地数据库角色不同,其功能也不同:主库:repmgrd仅监控本地数据库,负责自动恢复、同异步切换;备库:repmgrd监控本地数据库和主节点库,负责自动切换、复制槽删除
四.工具元数据:
1.表:
repmgr.events:记录集群事件。
repmgr.nodes:集群中每个服务器的连接和状态信息。
repmgr.monitoring_history:repmgrd写入的监视信息。
2.视图:
repmgr.show_nodes:基于表repmgr.nodes,此外还显示上游节点的名称。
repmgr.replication_status:启动repmgr监控时,显示每个备库当前的流复制监控状态。
注意:a.repmgr元数据可以存储在当前数据库或者自己的专用数据库;
b.repmgr元数据不能保存在不属于repmgr管理的流复制集群的数据库服务器上;
c.数据库用户必须可供repmgr访问此数据库并执行必要的个别更改;
d.此用户不需要是超级用户,但某些操作(如初始安装repmgr扩展)需要超级用户。
五.官网及使用说明:
1.官网:https://repmgr.org
2.官方文档:https://repmgr.org/docs/5.2/index.html
3.命令及参数索引:https://repmgr.org/docs/5.2/bookindex.html
六.常见架构:
1.一主一备:
主节点发生故障,repmgr自动将备节点提升为主;此时应尽快将故障的主节点恢复,并加入集群,防止所有节点都发生故障。
2.一主两备:
主节点发生故障,repmgr自动在两个备节点中选择最合适的节点提升为新主,切换过程中剩下的节点仍可提供读请求。
3.一主三备+见证节点:
主节点故障,repmgr自动在两个备节点中选择最合适的节点提升为主,即使A区两节点都出故障或因网络不可连接,也可通过witness
节点进行判断,防止脑裂发生。
Kingbase数据库V8R6高可用集群工具repmgr介绍
最新推荐文章于 2024-08-21 10:32:07 发布