repmgr整体架构简介
关键字: 人大金仓、KingbaseES、repmgr
- 整体架构
简介:流复制集群管理工具,负责监控流复制读写分离集群的监控,保障业务的高可用性。
主要功能:
-
- 处理各种节点故障,包括:计划外停机、网络故障、数据库停库时的主备切换;
- 对失效节点的自动恢复;
- 管理主备节点的同步异步;
- VIP管理;
- 监控网关的连通性;
- 提供部署、管理、查看集群的接口。
组件主要包括:
- repmgr
- repmgrd
- kbha
- repmgr.so
辅助脚本:sys_monitor.sh、repmgr.sh、cluster_install.sh(在10节中对该脚本进行了详细的分析,后续技术文档会不断推出相关内容)
如图所示,repmgrd守护进程之间是没有通信的,所有的repmgr均通过conninfo连接到数据库,读取、修改数据库中对应表的信息记录集群节点的状态信息。
repmgrd :流复制的守护进程,根据本地数据库角色不同,其功能也不同:
- 主库:repmgrd仅监控本地数据库,负责自动恢复、同异步切换;
- 备库:repmgrd监控本地数据库和主数据库,负责自动切换、复制槽删除。
kbha:第三方守护进程
- 检测和信任网关的连接状态;
- 负责拉起repmgrd;
- 如果连接信任网关失败,关闭repmgrd、数据库。
启动命令放入定时服务/etc/cron.d/KINGBASECRON,由定时任务拉起第三方守护进程
sys_monitor.sh:一键启停脚本,读取 etc/repmgr.conf 配置文件获取基本信息:
(1)启动:
-
-
- 启动本地数据库,获取集群所有节点信息;
- 启动其它节点的数据库,并判断主机个数,只有一个主机,在主机上加载VIP;没有主机或者主机数量超过一个,中断启动;
- 启动所有节点上的repmgrd;
- 启动所有节点上的kbha,并写入对应定时任务。
-
(2)停止:
-
-
- 连接本地数据库获取集群所有节点信息,连接失败则中断停止;
- 停止所有节点上的kbha,并注释对应定时任务;
- 停止所有节点上的repmgrd;
- 停止所有数据库,并卸载可能存在的VIP。
-
由启动和停止集群的步骤可知,启动和停止操作的执行顺序刚好相反,启动集群的时候,先启动本地和其它节点的数据库,然后再启动流复制的守护进程repmgrd,最后启动第三方的守护进程kbha,而停止的顺序刚好相反。 更多信息,参见https://help.kingbase.com.cn/v8/index.html