You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

pgpool-II搭建PostgreSQL流复制集群备库连接主库异常排查

故障根因
  1. 操作路由错误:所有备节点本地操作通过未完成集群配置的pgpool执行,此时pgpool后端仅识别主库pg-0,删除数据目录、启动数据库等操作被错误路由到主库,造成主库WAL文件损坏、进程反复收到SIGQUIT信号崩溃,和你观察到的主库循环重启日志完全吻合。
  2. 命令笔误导致配置不生效:备库启动命令中配置文件路径拼写错误,/etc/postgresl/postgresql.conf少写了字母q,正确路径应为/etc/postgresql/postgresql.conf,导致你通过include引入的自定义恢复配置完全未被加载,备库无法获取主库连接信息。
  3. 配置格式错误:手动编写的myrecovery.conf中passfile参数存在多余的嵌套单引号,会导致备库无法正确读取.pgpass密码文件,复制连接认证失败。
  4. 流程不规范:执行pg_basebackup时未加-R参数,手动创建恢复配置和standby.signal容易遗漏参数或出现权限问题,额外增加故障点。
修复方案

第一步:恢复主库服务

  1. 先停止pgpool服务,阻断错误路由继续操作数据库节点。
  2. 登录主库pg-0节点,停止所有PostgreSQL进程,检查数据目录完整性:
    • 如果数据目录存在文件缺失、WAL损坏的情况,使用最近的全量备份恢复主库
    • 恢复完成后正常启动主库,验证主库可正常接受连接、无循环重启现象
  3. 校验主库pg_hba.conf配置,确认已允许replicator用户从pg-1地址发起replication连接。

第二步:重新部署备库(所有操作直接SSH到pg-1节点执行,严禁通过pgpool执行本地shell命令)

  1. 执行hostname确认当前登录节点为pg-1,停止节点上所有PostgreSQL进程,清空数据目录与归档目录:
    rm -rf /var/lib/postgresql/data/* /var/lib/postgresql/archivedir/*
    
  2. 配置postgres用户从pg-1到pg-0的SSH免密登录,验证scp pg-0:/var/lib/postgresql/archivedir/任意测试文件 /tmp/可无需密码执行成功。
  3. 执行带自动备库配置参数的pg_basebackup,无需手动创建恢复配置文件:
    pg_basebackup -h pg-0 -U replicator -p 5432 -D /var/lib/postgresql/data -X stream -R -S pg_1
    
    该命令会自动创建standby.signal文件,同时将主库连接信息、复制槽名配置写入postgresql.auto.conf,避免手动配置错误。
  4. 修正数据目录与密码文件权限:
    chown -R postgres:postgres /var/lib/postgresql/data/
    chmod 600 /var/lib/postgresql/.pgpass
    
  5. 修正启动命令的路径笔误,启动备库,不要将日志输出到/dev/null:
    pg_ctl -l /var/log/postgresql/standby_startup.log -w -D /var/lib/postgresql/data -o '--config-file=/etc/postgresql/postgresql.conf' start
    

第三步:集群校验

  1. 主库执行SELECT * FROM pg_stat_replication;,可看到application_name为pg-1的walsender连接即为复制正常。
  2. 备库执行SELECT pg_is_in_recovery();,返回t表示备库处于正常恢复状态。
  3. 主备复制验证通过后,更新pgpool的后端节点配置,添加pg-1为备节点,配置正确的健康检查、故障切换规则后再启动pgpool服务。
  4. 后续所有节点本地运维操作直接SSH到对应节点执行,禁止通过pgpool执行shell类操作,避免路由错误损坏集群。

内容的提问来源于stack exchange,提问作者chronos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.02 05:24:53