首页 > 数据库 >POSTGRESQL 高可用 Patroni VS Repmgr 到底哪家强(1)

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

时间:2023-06-19 17:02:24浏览次数:57  
标签:存储 POSTGRESQL Patroni VS 切换 repmgr 节点 分布式


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

在众多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节点,确保在任意时间只有一个主节点进行对外服务。

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

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

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,对参数的修改没有特殊要求。

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

POSTGRESQL 高可用  Patroni  VS  Repmgr   到底哪家强(1)_分布式_03

标签:存储,POSTGRESQL,Patroni,VS,切换,repmgr,节点,分布式
From: https://blog.51cto.com/u_14150796/6516024

相关文章

  • POSTGRESQL 14 功能有啥吸引人的
    好多人还在用postgresql10 ,12这些版本的时候,POSTGRESQL已经开启了POSTGRESQL14的旅程。那么到底Postgresql14有什么吸引人的,那就需要了解一下。 https://sql-info.de/postgresql/postgresql-14/articles-about-new-features-in-postgresql-14.html想详细了解了可以到这个......
  • POSTGRESQL openGaussDB 体系架构
    Today听了一下墨天轮举办的OpenGaussDB的专题的训练营,下面是此次线上的OpenGaussDB的体系结构的介绍。这里根据介绍快速总结出此次介绍中OpenGaussDB的特点:1 OpenGaussDB针对国产的硬件系统,如鲲鹏等硬件系统有特殊的支持和性能调试,真多国产的硬件系统有优势。2OpenGaussDB主......
  • POSTGRESQL 事务控制(二) 事务开启 (写着费力,看着费劲系列)
    今天接着上回书,事务如果在处理中没有子事务,则实现和控制是十分容易的,但如果有子事务的情况下,子事务通过transactionState结构体来实现,(上次已经提到了),每一个transactionState都指向父事务的结构体的指针.在继续往下说之前,我们的提到clog, 这是理解后面要提到的一些事情的......
  • POSTGRESQL SERVERLESS 是POSTGRESQL 数据库的未来 (译)
    以下为翻译内容多年来,PostgreSQL一直备受瞩目,对于企业来说,POSTGRESQL流行是面临众多竞争后的选择。随着企业试图摆脱昂贵的传统关系型数据库管理系统(RDBMS),但仍希望坚持使用RDBMS,开源PostgreSQL是一种具有吸引力的、更经济实惠的替代方案。曾经有两个托管PostgreSQL服务(Aurora和RDS)......
  • POSTGRESQL NEON - Serverless 式的POSTGRESQL 数据库的独特技能 分支数据
    之前没有关注过SERVERLESS的数据库产品之前,我很少会关注SERVERLESS的东西,因为一直在实体机数据库类型打拼的我,从来不关心什么 云原生什么SERVERLESS,Idon'tcareaboutthat,it'snotmybusiness!!!!但是后来上云了,上的很深,没法了,开始关注什么是云原生,什么是POALRDB 最......
  • MYSQL MHA VS GTID 与 BINLOG SERVER
    勘误,昨天有一位海外friend指出昨天文中postgresql bloom中的第四步截图是并行扫描,而没有用到bloom索引,这里抱歉,经查实截图错误,下面是重新的截图,同时另一幅截图也有问题建立索引时缺少USINGbloom,感谢您。另也希望大家发现可以发现我的错误,并及时指出,让我们大家可以成长的......
  • PostgreSql通过创建外部表而非dblink使访问速度提高,优化sql查询速度
    resourceregister库外部表创建--导入插件createextensionpostgres_fdw;--创建服务名称为operation的服务host为ipport为端口dbname为数据库名称createserveroperationforeigndatawrapperpostgres_fdwoptions(host'localhost',port'5432',dbname'operat......
  • VsCode配置PHP断点调试环境笔记
    PHPStudy_Pro8.1.1.2VsCode1.51.1PHP7.4.3NTSPHP_Xdebug-2.9.8-7.4-vc15-nts-x86_64首先查看当前环境的phpinfo信息根据phpinfo的信息选择对应的XDebug进行下载:https://xdebug.org/download推荐使用:https://xdebug.org/wizard,将phpinfo的信息全选复制到这里进行分析,然后下......
  • vs编译时打印Task中日志。
    https://learn.microsoft.com/en-us/dotnet/core/tools/dotnet-build-v|--verbositySetstheverbositylevelofthecommand.Allowedvaluesareq[uiet],m[inimal],n[ormal],d[etailed],anddiag[nostic].Thedefaultisminimal.Bydefault,MSBuilddisplay......
  • VScode 中利用virtualenv建立 Python 虚拟环境
    !https://zhuanlan.zhihu.com/p/638114885VScode建立Python虚拟环境主要目的:创建一个与默认python版本不同的python虚拟环境0x01建立新环境文件夹建立一个独立文件夹来存储所有虚拟环境,所以可以事先建好文件夹如:'''E:\WorkSpace\Work\chatGLM'''0x02创建虚拟环......