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

Pgpool无法连接PostgreSQL Standby服务器问题求助

分析与解决思路

首先,从你给出的日志和配置来看,核心问题分为两部分:Pgpool无法连接Standby备库的认证问题,以及故障切换脚本的参数缺失问题。咱们一步步拆解解决:

一、解决Standby备库的连接认证问题

日志里的ERROR: 认证失败和无效的认证消息响应类型,期望接收'R',实际收到'E'是关键——这说明Pgpool作为客户端连接备库时,备库直接返回了错误响应,拒绝了连接。

1. 先手动验证基础连通性

在Pgpool所在服务器上,直接用psql尝试连接备库,确认备库本身是否允许外部连接:

psql -h 192.168.2.104 -U postgres -p 5432

输入密码P0stgres,如果连不上,问题出在PostgreSQL备库的配置,而非Pgpool:

  • 检查备库的pg_hba.conf:必须添加允许Pgpool服务器IP连接的规则,比如:
    host    all             postgres        <Pgpool服务器IP>/32        md5
    
    添加后执行pg_ctl -D /var/lib/pgsql/9.4/data reload生效。
  • 检查备库的postgresql.conf:确保listen_addresses = '*'(或包含Pgpool的IP),允许远程连接;同时确认password_encryption = on(9.4默认开启,保证密码是MD5加密格式)。
  • 防火墙/SELinux检查:备库的防火墙要开放5432端口;如果是CentOS/RHEL系统,临时关闭SELinux测试:setenforce 0,如果能连上,再永久配置SELinux规则:setsebool -P postgresql_can_network_connect on。

如果手动psql能连上备库,再看Pgpool的配置:

2. 确认Pgpool的健康检查配置

你的pgpool.conf里health_check_user = 'postgres'和health_check_password = 'P0stgres'是正确的,但要确保备库的postgres用户密码和主库完全一致(流式复制会同步pg_authid表,正常情况下是一致的,但如果主库后来改了密码,备库没同步的话需要手动更新)。

另外,确认master_slave_sub_mode = 'stream'配置正确,这个是适配PostgreSQL内置流式复制的必要设置。

二、修复故障切换脚本的参数缺失问题

日志提到“执行故障切换脚本时因参数缺失而挂起”,你的failover_command已经传递了%d %P %H %R四个参数,需要确保脚本正确接收并使用这些参数:

1. 检查脚本的参数接收逻辑

对应Pgpool 3.4.3的参数定义:

  • %d: 故障节点的ID
  • %P: 旧主节点的ID
  • %H: 新主节点的主机名
  • %R: 新主节点的端口

一个简单的示例脚本可以是这样:

#!/bin/bash
FAILED_NODE=$1
OLD_PRIMARY=$2
NEW_PRIMARY_HOST=$3
NEW_PRIMARY_PORT=$4

# 提升备库为主库
ssh $NEW_PRIMARY_HOST "pg_ctl -D /var/lib/pgsql/9.4/data promote"

# 通知Pgpool重新连接故障节点(如果需要)
pcp_attach_node -h localhost -p 9898 -U postgres $FAILED_NODE

2. 确保脚本权限与依赖

  • 给脚本添加执行权限:chmod +x /var/lib/pgsql/9.4/failover.sh
  • 确保Pgpool运行用户(通常是postgres)能免密SSH登录到备库,否则ssh命令会卡住等待输入密码;或者如果备库和Pgpool在同一机器,直接执行本地命令即可。
  • 确认pcp.conf里配置了postgres用户的密码,因为pcp_attach_node需要认证。

三、验证主备切换后的一致性

你提到切换Master和Standby后,新的Standby仍无法连接,这说明问题不是特定服务器的硬件/系统问题,而是配置层面的通用问题——只要解决了上述认证和脚本问题,这个现象自然会消失。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 06:50:43