news 2026/6/10 16:08:36

PostgreSQL高可用集群实战:repmgr完整配置指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
PostgreSQL高可用集群实战:repmgr完整配置指南

PostgreSQL高可用集群实战:repmgr完整配置指南

【免费下载链接】repmgrA lightweight replication manager for PostgreSQL (Postgres)项目地址: https://gitcode.com/gh_mirrors/re/repmgr

项目概述

repmgr是PostgreSQL生态系统中备受推崇的复制管理工具,专门为构建高可用数据库集群而生。作为一款轻量级的复制管理器,repmgr能够有效管理PostgreSQL服务器集群中的复制和故障转移。它通过提供一系列实用程序来增强PostgreSQL的内置复制功能,包括设置备用服务器、监控复制状态以及执行故障转移或切换操作等管理任务。

最新版本的repmgr(5.5.x)支持PostgreSQL 13到17的所有版本。该工具采用GNU GPL 3许可证发布,由EnterpriseDB维护和支持。

环境准备与安装

系统要求

在开始部署repmgr之前,请确保系统中已安装PostgreSQL。repmgr支持在多种Linux发行版上运行,包括CentOS、Ubuntu、Debian等。

源码编译安装

通过以下步骤完成repmgr的源码编译安装:

# 克隆项目仓库 git clone https://gitcode.com/gh_mirrors/re/repmgr # 进入项目目录 cd repmgr # 配置编译环境 ./configure # 编译源码 make # 安装到系统 sudo make install

安装完成后,repmgr命令行工具将可用于后续的集群管理操作。

核心配置详解

PostgreSQL配置要求

在主服务器上,PostgreSQL实例必须已初始化并正在运行。需要调整以下复制相关配置参数:

# 启用复制连接,设置此值至少比将连接到此服务器的备用服务器数量多一个 max_wal_senders = 10 # 如果使用复制槽,设置此值至少比将连接到此服务器的备用服务器数量多一个 max_replication_slots = 10 # WAL级别设置 wal_level = 'hot_standby' # 在备用服务器上启用只读查询 hot_standby = on # 启用WAL文件归档 archive_mode = on archive_command = '/bin/true'

创建repmgr用户和数据库

在主服务器上创建专用的PostgreSQL超级用户账户和用于存储repmgr元数据的数据库:

CREATE USER repmgr WITH SUPERUSER LOGIN PASSWORD 'repmgr_password'; CREATE DATABASE repmgr OWNER repmgr;

认证配置

在pg_hba.conf文件中确保repmgr用户具有适当的权限:

local replication repmgr trust host replication repmgr 127.0.0.1/32 trust host replication repmgr 192.168.1.0/24 trust local repmgr repmgr trust host repmgr repmgr 127.0.0.1/32 trust host repmgr repmgr 192.168.1.0/24 trust

集群初始化流程

主节点配置

在主服务器上创建repmgr.conf配置文件,必须包含以下参数:

node_id=1 node_name='node1' conninfo='host=node1 user=repmgr dbname=repmgr connect_timeout=2' data_directory='/var/lib/postgresql/data'

注册主服务器

要启用repmgr支持复制集群,必须将主节点注册到repmgr中:

repmgr -f /etc/repmgr.conf primary register

注册过程将安装repmgr扩展和元数据对象,并为主服务器添加元数据记录。

备用节点配置

在备用服务器上创建repmgr.conf文件,必须包含与主节点相同的参数,但需要调整必要的值:

node_id=2 node_name='node2' conninfo='host=node2 user=repmgr dbname=repmgr connect_timeout=2' data_directory='/var/lib/postgresql/data'

克隆备用服务器

使用--dry-run选项检查备用服务器是否可以被克隆:

repmgr -h node1 -U repmgr -d repmgr -f /etc/repmgr.conf standby clone --dry-run

如果没有报告问题,则可以克隆备用服务器:

repmgr -h node1 -U repmgr -d repmgr -f /etc/repmgr.conf standby clone

注册备用服务器

注册备用服务器:

repmgr -f /etc/repmgr.conf standby register

集群状态验证

复制状态检查

连接到主服务器并执行以下查询来验证复制状态:

SELECT * FROM pg_stat_replication;

从PostgreSQL 9.6开始,还可以使用pg_stat_wal_receiver视图从备用服务器检查复制状态。

集群显示

执行集群显示命令来查看所有节点的状态:

repmgr -f /etc/repmgr.conf cluster show

该命令将显示集群中所有节点的详细信息,包括节点ID、名称、角色、状态、上游节点等。

高级配置选项

自动故障转移配置

要启用自动故障转移,需要在repmgr.conf中设置:

failover='automatic'

监控设置

配置监控相关参数:

monitoring_history=yes monitor_interval_secs=2

服务控制命令

对于使用systemd等初始化系统的环境,可以配置服务控制命令:

service_start_command = 'sudo systemctl start postgresql-16' service_stop_command = 'sudo systemctl stop postgresql-16' service_restart_command = 'sudo systemctl restart postgresql-16'

故障排除与维护

常见问题处理

  • 网络连接问题:确保主备服务器之间的网络连接正常
  • 认证配置:检查pg_hba.conf文件中的认证规则
  • 权限问题:确保repmgr用户具有足够的权限

集群健康检查

定期执行节点检查来确保集群健康:

repmgr -f /etc/repmgr.conf node check

最佳实践建议

生产环境部署

  • 使用专用网络进行复制通信
  • 配置适当的监控和告警
  • 定期进行故障转移测试

性能优化

  • 合理配置WAL相关参数
  • 使用复制槽避免WAL积累
  • 监控复制延迟并及时处理

通过本指南的详细步骤,您可以成功构建和管理基于repmgr的PostgreSQL高可用集群。repmgr提供了强大的复制管理功能,能够有效保障数据库服务的连续性和数据的安全性。

【免费下载链接】repmgrA lightweight replication manager for PostgreSQL (Postgres)项目地址: https://gitcode.com/gh_mirrors/re/repmgr

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 1:50:36

一句话引爆用户互动,Open-AutoGLM你真的会用吗?

第一章:一句话引爆用户互动,你真的懂Open-AutoGLM吗在自然语言处理的前沿领域,Open-AutoGLM 正以惊人的交互能力重新定义人机对话的边界。它不仅仅是一个语言模型,更是一个可编程的智能代理引擎,能够通过一句简单指令触…

作者头像 李华
网站建设 2026/6/10 9:53:48

MissionControl终极配置指南:5分钟解锁完整控制器支持

MissionControl是一款革命性的开源项目,专为Nintendo Switch用户提供全面的蓝牙控制器兼容方案。通过这款强大的软件,你可以轻松连接来自其他游戏主机的控制器,无需任何转接器或额外硬件设备,即可享受原生级别的游戏体验。无论你是…

作者头像 李华
网站建设 2026/6/6 7:46:56

0基础如何转行学习网络安全?保姆级指南

0基础如何转行学习网络安全?怎么开始? 前言 最近看到很多小伙伴问我关于网络安全转行的问题,今天做了一些总结,其中最多的是,觉得目前的工作不稳定、没前途、工资低又事多,还有一些就是目前工作稳定但还是…

作者头像 李华
网站建设 2026/6/10 2:05:57

Go 语言实现智能家居设备的通信

Go 语言实现智能家居设备通信的核心是对接物联网主流协议(以 MQTT 为主,轻量级、低功耗、发布订阅模式适配智能家居场景),同时兼顾蓝牙、ZigBee 等近距离通信协议。下面从「核心协议选择」「完整实现步骤」「可运行代码」「扩展场…

作者头像 李华
网站建设 2026/6/10 15:38:53

OSV.dev 完整指南:如何利用开源漏洞数据库保护你的软件供应链

在当今快速发展的软件开发生态系统中,安全漏洞管理已成为每个开发团队必须面对的挑战。OSV.dev 作为一个开源漏洞数据库和分类服务,为开发者提供了简单高效的解决方案来识别和修复依赖项中的安全漏洞。这个免费的工具能够帮助你在几分钟内完成复杂的漏洞…

作者头像 李华
网站建设 2026/6/10 11:30:10

PCL SAC-IA + ICP实现点云配准

目录 一、算法概述 二、代码实现 三、结果展示 一、算法概述 本代码实现了基于采样一致性初始配准(SAC-IA) 和迭代最近点(ICP) 的两阶段点云配准算法。该算法组合在实践中被证明是点云配准的经典解决方案,具有良好的鲁棒性和实用性。 二、代码实现 #include <pcl/io/…

作者头像 李华