我试图在我的postgresql环境(2个postgresql服务器+ 1个pgpool)中对pgpool进行压缩以执行HA,而repmgr负责复制。
我在日志中收到了下一条消息:
017-12-03 19:27:07: pid 19033: DEBUG: pool_flush_it: flush size: 0
2017-12-03 19:27:07: pid 19033: DEBUG: pool_read: read 103 bytes from backend 1
2017-12-03 19:27:07: pid 19033: ERROR: failed to authenticate
2017-12-03 19:27:07: pid 19033: DETAIL: password authentication failed for user "nobody"
2017-12-03 19:27:07: pid 19033: DEBUG: find_primary_node: no primary node found
2017-12-03 19:27:08: pid 19033: LOG: find_primary_node: checking backend no 0
2017-12-03 19:27:08: pid 19033: DEBUG: SSL is requested but SSL support is not available
2017-12-03 19:34:27: pid 22132: ERROR: unable to read data from DB node 1
2017-12-03 19:34:27: pid 22132: DETAIL: EOF encountered with backend
2017-12-03 19:28:27: pid 19033: DEBUG: find_primary_node: no primary node found
pool_hba.conf:
TYPE DATABASE USER CIDR-ADDRESS METHOD
local all all trust
host all all 127.0.0.1/32 trust
host all all ::1/128 trust
在postgresql pg_hba.conf中我启用了pgpool服务器的连接:
####pgpool####
host all all 172.22.13.170/32 trust
1.问题是什么?
2.如果repmgr负责复制,我应该将参数backend_flag设置为' DISALLOW_TO_FAILOVER'?
感谢。
答案 0 :(得分:0)
我只是要了解repmgr和pgpool,但我认为这里存在多个问题:
1)您的pgpool.conf具有一些默认设置,可以进行实时检查,并且该用户的用户名是“ nobody”,因此要使其正常工作,您需要创建一个具有该名称的pgsql用户,以便pgpool可以查询所有主机查找当前的母版。
2)pgpool执行脚本来更改哪个是主服务器等,并且该脚本通常只在故障转移时运行repmgr命令来提升新的主服务器,因此我认为不需要DISALLOW_TO_FAILOVER。
如果repmgr将进行故障转移,那么您的问题1将使pgpool仍然找到哪个新的主服务器,但是在那种情况下,我将把repmgr配置为不自动进行故障转移(因为他们可以为谁应该做什么而斗争。)