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集群的端到端设置,包括流复制。它支持创建备用节点的各种方式,工作方式类似于模板,可

<think>好的,我现在要回答用户关于如何使用repmgr部署PostgreSQL高可用集群的问题。首先,我需要回顾用户提供的引用内容,确保回答准确。 根据引用[2],部署过程分为准备工作和主库配置。用户需要先在所有节点安装repmgrPostgreSQL。主库需要修改postgresql.conf,调整max_wal_senders、wal_level等参数。这部分是关键,因为正确的配置是复制的基础。然后创建复制用户和数据库,注册主节点。接下来是备库的安装和配置,同样需要修改配置文件,并从主库克隆数据。注册备库后,集群就初步搭建完成了。 用户提到的引用[3]指出,虽然主从搭建完成,但还存在自动故障转移和节点管理的问题。这里需要补充repmgr的故障检测和切换机制,比如设置repmgrd守护进程,并配置参数如failover=automatic。同时,可能需要结合外部工具如SLB来处理入口分离,而不是使用pgpool,这点需要调。 接下来,用户可能需要知道如何验证集群状态,使用repmgr cluster show命令。此外,监控和日志管理也是重要环节,确保及时发现和处理问题。 生成相关问题时,要考虑用户可能的后续需求,比如如何扩展节点、如何处理网络分区或数据不一致的情况,以及与其他高可用方案的对比。例如,引用[1]提到RepmgrPatroni的对比,可以引导用户进一步了解不同工具的优缺点。 需要确保回答结构清晰,分步骤讲解,并引用正确的来源。同时,注意使用中文,数学公式和代码块的格式正确。最后,检查是否有遗漏的步骤或常见问题,确保用户能够顺利部署并理解后续管理方法。</think>### 使用repmgr部署PostgreSQL高可用集群的步骤 以下流程基于引用内容整理,涵盖主从节点配置、故障转移及注意事项。 #### 1. 准备工作 - **所有节点**安装PostgreSQLrepmgr ```bash # 以CentOS为例 yum install postgresql-server repmgr ``` - 确保所有节点网络互通,SSH免密登录配置完成[^2]。 #### 2. 主库配置 **2.1 修改`postgresql.conf`** ```bash max_wal_senders = 10 max_replication_slots = 10 wal_level = 'hot_standby' hot_standby = on archive_mode = on archive_command = '/bin/true' # 禁用归档(repmgr无需归档) ``` **2.2 创建复制用户与数据库** ```sql CREATE USER repmgr WITH SUPERUSER LOGIN; CREATE DATABASE repmgr OWNER repmgr; ``` **2.3 注册主节点** ```bash repmgr primary register # 注册当前节点为主库 ``` #### 3. 备库配置 **3.1 同步主库数据** ```bash repmgr -h <主库IP> -U repmgr -d repmgr standby clone ``` **3.2 启动并注册备库** ```bash pg_ctl start repmgr standby register # 注册为备库 ``` #### 4. 验证集群状态 ```bash repmgr cluster show # 显示节点角色与状态 ``` 输出示例: ``` ID | Name | Role | Status | Upstream ---+--------+---------+-----------+--------- 1 | node1 | primary | * running | 2 | node2 | standby | running | node1 ``` #### 5. 实现自动故障转移 **5.1 启动守护进程`repmgrd`** ```bash repmgrd -d --verbose # 所有节点启动监控守护进程 ``` **5.2 配置`repmgr.conf`** ```ini failover=automatic # 启用自动切换 promote_command='repmgr standby promote' follow_command='repmgr standby follow' ``` #### 6. 注意事项 - **入口分离**:建议结合云服务商SLB(如AWS ALB或阿里云SLB)实现流量分发,避免使用pgpool增加复杂度[^3]。 - **节点扩容**:新节点需重复步骤3,并通过`repmgr node join`加入集群。 - **监控告警**:配置`repmgr`日志与Prometheus监控,实时检测节点健康状态。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值