Linux下怎么部署PostgreSQL的高可用集群

星明酱_5630

星明酱_5630

2026-06-24

517人浏览

原创

中小规模选repmgr,中大型生产环境选patroni+etcd;repmgr报pg_config错误需确保postgres用户下path含pg_config路径并显式指定;patroni卡在waiting需检查etcd健康、postgresql流复制参数及pg_hba认证规则。

linux下怎么部署postgresql的高可用集群

repmgr 和 patroni 是目前 Linux 下最主流的两种 PostgreSQL 高可用方案,选哪个取决于你对运维控制粒度、依赖组件和自动化程度的要求。直接说结论:中小规模、希望轻量可控,用 repmgr;中大型生产环境、追求自动故障闭环和强一致性,用 patroni + etcd。


repmgr 安装失败常见报错:configure: error: could not find pg_config

这不是 repmgr 本身的问题,而是它找不到 PostgreSQL 的构建工具链。关键点在于:pg_config 必须在 $PATH 中,且执行用户(通常是 postgres)要有读取权限。

  • 先确认 PostgreSQL 是否已安装并可执行:which pg_config,如果返回空,说明没装或没加到 PATH
  • 如果是源码安装的 PostgreSQL,pg_config 默认在 $PGHOME/bin/ 下,比如 /opt/module/pgsql16/pgsql/bin/pg_config
  • 编译 repmgr 时必须显式指定路径:./configure PG_CONFIG=/opt/module/pgsql16/pgsql/bin/pg_config
  • 别在 root 下跑 ./configure,切到 postgres 用户再执行,否则即使路径对,也可能因权限拒绝访问 pg_config 或相关头文件

patroni 启动后一直卡在 waiting for primary to become healthy

这是 Patroni 没法连上主库的表现,不是 Patroni 自身故障,而是底层连接或认证断了。重点排查三处:

Obsidian (Linux)
Obsidian (Linux)

操作 Obsidian 库(纯 Markdown 笔记),并通过 notesmd-cli 实现自动化。

下载
  • etcd 是否健康:在任意节点执行 etcdctl cluster-health,返回 cluster is healthy 才算通;如果报 context deadline exceeded,说明 Patroni 配置里的 etcd.host 地址或端口不对,或防火墙拦了 2379
  • postgresql.conf 中是否漏配:wal_level = replica、max_wal_senders = 10、hot_standby = on —— 缺一不可,且改完要重启 PostgreSQL
  • pg_hba.conf 是否允许 Patroni 用户双向访问:主备节点都要有两条规则:host replication patroni 10.197.166.7/32 scram-sha-256 和 host all patroni 10.197.166.7/32 scram-sha-256,IP 换成实际节点地址

repmgr 注册节点时报 ERROR: connection to database failed

这个错误表面是连不上数据库,但根源往往不在网络,而在 repmgr 用户权限或连接参数配置错位。

  • 确保主库上已创建 repmgr 数据库和用户:CREATE DATABASE repmgr OWNER repmgr;,且该用户有 SUPERUSER 权限(repmgr v5+ 要求)
  • repmgr.conf 里 conninfo 的 host 必须写成 IP,不能写 localhost 或主机名——因为从备库发起注册时,localhost 指的是它自己,不是主库
  • 检查 pg_hba.conf 是否只放行了 127.0.0.1,而没放开集群内网段,例如:host repmgr repmgr 10.197.167.0/24 scram-sha-256
  • 如果用了 scram-sha-256 认证,密码必须用 psql -U repmgr -d repmgr -c "ALTER USER repmgr PASSWORD 'xxx';" 重设,明文密码不生效

真正容易被忽略的是:所有高可用组件(repmgr、patroni、etcd)都依赖稳定的底层流复制链路。只要 pg_stat_replication 在主库查不到备库记录,上面任何高可用工具都只是空转。先让 psql -h 备库IP -c "SELECT 1" 能连上、pg_basebackup 能拉下基础备份,再谈高可用。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

postgresql linux

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
postgresql常用命令
postgresql常用命令

postgresql常用命令psql、createdb、dropdb、createuser、dropuser、\l、\c、\dt、\d table_name、\du、\i file_name、\e和\q等。本专题为大家提供postgresql相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.10

233

5

常用的数据库软件
常用的数据库软件

常用的数据库软件有MySQL、Oracle、SQL Server、PostgreSQL、MongoDB、Redis、Cassandra、Hadoop、Spark和Amazon DynamoDB。更多关于数据库软件的内容详情请看本专题下面的文章。php中文网欢迎大家前来学习。

2023.11.02

4569

19

postgresql常用命令有哪些
postgresql常用命令有哪些

postgresql常用命令psql、createdb、dropdb、createuser、dropuser、\l、\c、\dt、\d table_name、\du、\i file_name、\e和\q等。更详细的postgresql常用命令,大家可以访问下面的文章。

2023.11.16

647

3

postgresql常用命令介绍
postgresql常用命令介绍

postgresql常用命令有\l、\d、\d5、\di、\ds、\dv、\df、\dn、\db、\dg、\dp、\c、\pset、show search_path、ALTER TABLE、INSERT INTO、UPDATE、DELETE FROM、SELECT等。想了解更多postgresql的相关内容,可以阅读本专题下面的文章。

2023.11.20

1396

6

PostgreSQL性能优化与索引调优实战
PostgreSQL性能优化与索引调优实战

本专题面向后端开发与数据库工程师,深入讲解 PostgreSQL 查询优化原理与索引机制。内容包括执行计划分析、常见索引类型对比、慢查询优化策略、事务隔离级别以及高并发场景下的性能调优技巧。通过实战案例解析,帮助开发者提升数据库响应速度与系统稳定性。

2026.02.12

480

19

PostgreSQL 性能优化与查询执行计划实战
PostgreSQL 性能优化与查询执行计划实战

本专题深入解析PostgreSQL性能优化核心,聚焦查询执行计划的实战应用。通过EXPLAIN命令精准定位瓶颈,结合索引策略、SQL改写与参数调优,系统提升查询效率。从执行计划解读到性能调优全流程,助你掌握数据库性能诊断与优化实战能力。

2026.05.08

150

10

PostgreSQL 在 Next.js / Go 全栈架构中的工程化实践
PostgreSQL 在 Next.js / Go 全栈架构中的工程化实践

本文详解如何利用Next.js(搭配Drizzle ORM)与Go后端构建高性能应用,充分发挥PG在JSONB非结构化存储与pgvector向量检索上的优势。从数据建模到Docker容器化部署,打造支持AI时代的“One Database”工程化解决方案。

2026.05.08

901

10

PostgreSQL高级特性、内核机制与现代数据架构
PostgreSQL高级特性、内核机制与现代数据架构

本专题从MVCC并发控制与WAL日志等内核机制出发,详解JSONB、PostGIS及pgvector等高级特性。探讨如何利用单一引擎支撑关系型、向量及图数据等现代数据架构需求,助您掌握构建高并发、智能化应用的核心技术。

2026.05.08

244

10

磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

2023.06.21

4170

4

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL vs MySQL
PostgreSQL vs MySQL

共1课时 | 189人学习

PostgreSQL 教程
PostgreSQL 教程

共48课时 | 20.6万人学习

PostgreSQL 手册
PostgreSQL 手册

共0课时 | 1万人学习