news 2026/4/16 13:29:28

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/14 2:02:08

从零开始:使用TensorFlow镜像训练第一个神经网络

从零开始:使用TensorFlow镜像训练第一个神经网络 在一台刚装好系统的电脑前,你准备开启深度学习之旅。但还没写一行代码,就卡在了环境配置上:Python 版本不对、CUDA 安装失败、TensorFlow 报错找不到 GPU……这几乎是每个初学者都…

作者头像 李华
网站建设 2026/4/15 14:51:26

云美广告公司管理系统的设计与实现任务书

本科毕业设计任务书云美广告公司管理系统的设计与实现 学生姓名: xx 学 号: xx 专 业: 计算机科学与技术 指导教师: 尤菲菲 讲师 题 目云美广告公司管理系统的设计与实现选题…

作者头像 李华
网站建设 2026/4/16 6:16:00

悦读电子书城微信小程序的设计与实现开题报告

兰州工业学院毕业设计开题报告题 目学 院专业班级学生姓名学 号一、研究背景及意义研究背景随着移动互联网技术的飞速发展和智能手机的普及,人们的阅读习惯逐渐从传统的纸质书籍转向电子书籍。微信小程序作为一种轻量级的应用形态,因其无需下载…

作者头像 李华
网站建设 2026/4/16 3:32:17

还有哪些类似Open-AutoGLM的智能体?这5大高潜力平台你必须了解

第一章:还有哪些类似Open-AutoGLM的智能体产品在当前大模型驱动的智能体生态中,除了 Open-AutoGLM 外,已有多个具备自主任务分解、工具调用与持续学习能力的智能体平台相继涌现。这些产品在架构设计、应用场景和扩展性方面各具特色&#xff0…

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

5分钟搞定Open-AutoGLM本地部署(基于ModelScope的高效下载实践)

第一章:Open-AutoGLM本地部署概述Open-AutoGLM 是一个基于 AutoGLM 架构的开源自动化语言模型推理框架,支持在本地环境中高效部署与运行大语言模型。其设计目标是降低大模型在企业或个人开发场景中的使用门槛,提供模块化、可扩展的本地推理能…

作者头像 李华
网站建设 2026/4/12 2:46:02

TensorFlow模型压缩技术:剪枝与量化实战

TensorFlow模型压缩技术:剪枝与量化实战 在智能手机、可穿戴设备和工业物联网终端日益普及的今天,将复杂的深度学习模型部署到资源受限的边缘设备上,已经成为AI落地的核心挑战。一个在云端GPU上表现优异的ResNet或BERT模型,一旦搬…

作者头像 李华