POSTGRESQL 高可用 Patroni VS Repmgr 到底哪家强(1)

2a86ef411bb705227765dff64f721d61.png

在众多postgresql 高可用模式中,主要的参与者有两位, Patroni VS repmgr 基于这二者的功能优点以及缺点相信大部分人都不是太明确,下面将根据两篇翻译的文字合并,来对两个高可用的程序来做一个比较, cons and pros。 

1  Repmgr 是一款开源的基于postgres复制基础上的高可用软件,他基于2ndQuadrant 公司开发而来,提供完整的基于从安装到部署,从设置到管理以及监控的一体化的postgresql 高可用方案,并且支持手动的POSTGRESQL 高可用切换和自动切换的方案,支持看门狗的模式。

通过repmgr 程序来对服务在数据库内进行注册,并且通过repmgrd来进行多点的failover监控,可以在切换的过程中完成选主,与损坏节点再次加入到集群中,作为从库的一体化方案。并且提供延迟的方案,以预防网络不稳定带来的误切换的问题。

在集群中的节点数为偶数的情况下repmgr 本身通过witness见证服务器来解决脑裂的问题,见证服务器是一个节点,只考虑多数投票计数。

2  Patroni 

Patroni 本身起源于一个Governor 的分支,来自于一个compose 项目,在Zalando 中被改进的原来越好用。https://github.com/zalando/patroni,这是一个python 编写的开源工具组件,通过他来进行POSTGRESQL的集群高可用性的支持,通过分布式存储的方式来完成一致性模型,目前一般配合etcd 基于raft 协议的分布式系统来使用。Patroni确保PostgreSQL HA集群的端到端设置,包括流复制。它支持创建备用节点的各种方式,工作方式类似于模板,可以根据您的需要进行定制。通过patroni 可以自动完成postgresql服务失败自动拉起,以及主从节点的切换和失败节点重新加入等功能。同时基于分布式存储的特性可以直接防止脑裂的发生。并且通过分布式存储来获得leader节点,确保在任意时间只有一个主节点进行对外服务。

d6d91bd6e6def758d52484210c31ddbc.png

通过上面的介绍,可以比对出二者不不同点

1  Patroni 本身是一个开源项目目前在Zalando 手里进行维护和发展

    Repmgr 是PG 数据库开发公司2象限的产品,目前开源

2  Patroni 本身通过DCS 来进行数据节点的选主和高可用信息的存储,所以      选择分布式存储对 patroni本身来说是重要的。

    Repmgr 是本身并不使用分布式协议,采用的是传统类比传统数据库的方      式来进行高可用的设置,一般对于双机的高可用是支持的

比对                     Patrnoi                                 repmgr

两节点支持          不建议,起步三节点                 支持                       

版本持续更新       支持                                         支持

需要安装分布式    需要                                        利用POSTGRESQL 存储

存储

支持多种数据节     支持                                         pg_bacebackup

点添加方式

需要各个节点免密   需要                                        需要

有管理命令             有                                            有

手动切换                 可以                                         强

自动切换                 可以                                        启用repmgrd

多次failover           可以                                        不可以

配置文件修改          一般                                         灵活

方便灵活

基于上面的一些点我们可以来详细的说一下

1  如果仅仅是想安装类似 ORACLE  DG ADG 这样的方式,同时想做一个热机主备的方式,repmgr  是一个好的选择,Patrnoi本身对主机的节点的数量没有要求,但一般安装分布式存储如果使用通用的ETCD 则必须包含ETCD 基于raft 协议,必须是三台起步。

2  需要安装分布式存储,Patrnoi 本身是需要安装 etcd 或其他的分布式存储软件的,repmgr本身的一些日志信息以及节点信息是安装在本地节点PG中的repmgr 数据库里面的,所以不需要其他软件的安装

3 手动切换中,由于repmgr是通过repmgrd 来进行监控并自动进行切换的,所以停止repmgrd 程序本身,通过 repmgr命令直接启动切换步骤即可,patrnoi 在此方面可以通过命令来进行切换

4  对于 如果在系统中由于不稳定导致网络丢包或者主机频繁切换,patroni 是可以支持,基于分布式存储来进行主机的选举,repmgr 本身无法接受此方式,一次切换后,需要重置一些配置后,恢复正常工作

5  参数的配置的灵活性,patrnoi 对于参数的修改本身是有要求的,需要通过程序本身进行参数的修改然后加载或者通过patrnoi本身来进行reload, 对于需要重启的情况不十分灵活,要求多, 对于REPMGR,对参数的修改没有特殊要求。

实际上两者的高可用方式都有可圈可点的地方,本期就先到这里,下期会对两个高可用的软件进行更细致功能对比。

38a3fa32c76ba4dde9aa1a4de87406a6.png

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PostgreSQL是一个大的开源数据库管理系统,而repmgr是一个用于实现高可用性的工具,可以帮助用户部署和管理PostgreSQL的复制集群。下面将介绍如何在CentOS 7上安装和部署repmgr实现PostgreSQL高可用性。 首先,需要在CentOS 7上安装PostgreSQLrepmgr。可以通过yum安装PostgreSQL,然后再通过源代码安装repmgr。安装完成后,需要在所有节点上创建用于复制的用户和用户组,并配置SSH免密登录。 接下来,在主节点上初始化repmgr并创建repmgr用户,然后再在备用节点上连接到主节点并完成初始化。 然后,在主节点上进行repmgr的配置,包括指定节点ID、设置连接信息等。同时,在备用节点上也需要进行repmgr的配置,指定备用节点的ID并设置连接信息。配置完成后,在主节点上执行repmgr standby clone命令将主节点据拷贝到备用节点。 最后,在所有节点上启动repmgr守护进程,并在主节点上执行repmgr cluster show命令检查集群状态。如果所有步骤都完成并且状态正常,那么repmgr的安装和部署就顺利完成了。 通过以上步骤,就可以在CentOS 7上安装和部署repmgr实现PostgreSQL高可用性。当主节点发生故障时,repmgr可以自动将备用节点提升为主节点,确保系统的持续可用性。同时,repmgr还提供了监控和管理PostgreSQL复制集群的功能,帮助用户更好地管理数据库系统。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值