news 2026/4/23 5:01:22

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/4/23 13:59:41

直流无刷电机程序及无刷电机控制原理图合集

直流无刷电机程序和无刷电机原理图 24V FOC DEMO程序 、310V FOC DEMO程序和BLDC_HALL程序 附赠8款无刷电机控制原理图(PDF档),包含无霍尔和有霍尔款图纸。最近搞无刷电机驱动的时候发现,不同电压等级的程序架构差异比想象中大。比…

作者头像 李华
网站建设 2026/4/19 8:42:55

Open-AutoGLM云电脑视频处理全攻略(AI加速+低延迟黑科技)

第一章:Open-AutoGLM云电脑视频处理技术全景Open-AutoGLM 是新一代基于云原生架构的智能视频处理平台,融合了自动推理优化、大规模 GPU 资源调度与 GLM 系列模型的多模态理解能力,专为高并发、低延迟的云端视频处理场景设计。该技术栈通过将视…

作者头像 李华
网站建设 2026/4/16 12:11:59

M3 Pro芯片MacBook运行CosyVoice语音合成的完整解决方案

M3 Pro芯片MacBook运行CosyVoice语音合成的完整解决方案 【免费下载链接】CosyVoice Multi-lingual large voice generation model, providing inference, training and deployment full-stack ability. 项目地址: https://gitcode.com/gh_mirrors/cos/CosyVoice 在M3 P…

作者头像 李华
网站建设 2026/4/18 11:02:44

Kiero终极指南:轻松实现游戏图形钩子的完整解决方案

Kiero终极指南:轻松实现游戏图形钩子的完整解决方案 【免费下载链接】kiero Universal graphical hook for a D3D9-D3D12, OpenGL and Vulkan based games. 项目地址: https://gitcode.com/gh_mirrors/ki/kiero 想要在D3D9到D3D12、OpenGL和Vulkan游戏中实现…

作者头像 李华
网站建设 2026/4/23 2:17:40

PyTorch训练到部署:树莓派5实现人脸追踪安防闭环

PyTorch训练到部署:树莓派5实现人脸追踪安防闭环 从实验室到客厅——当AI模型走进真实世界 你有没有想过,一个在GPU服务器上跑得飞快的人脸识别模型,能不能“下凡”到一块几十美元的开发板上,真正守在家门口? 这不仅是…

作者头像 李华
网站建设 2026/4/21 5:35:31

Open-AutoGLM一句话点赞实战指南(9大应用场景全公开)

第一章:Open-AutoGLM一句话点赞技术概述Open-AutoGLM 是一种基于自然语言理解与生成能力的自动化交互系统,专为实现“一句话触发点赞”这一轻量级社交行为而设计。该技术融合了语义意图识别、上下文感知与动作执行模块,能够在用户输入如“这个…

作者头像 李华