1

我正在尝试在我的 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'吗?

谢谢。

4

1 回答 1

0

我刚刚开始了解 repmgr 和 pgpool,但我认为这里有多个问题:

1)您的 pgpool.conf 有一些用于活动检查的默认设置,并且用户是“nobody”,因此要使其正常工作,您需要创建一个具有该名称的 pgsql 用户,以便 pgpool 可以查询所有主机以找到现在的主人。

2) pgpool 执行脚本来更改哪个是主节点等,并且该脚本通常只会运行 repmgr 命令以在故障转移时提升新的主节点,所以我认为不需要 DISALLOW_TO_FAILOVER。

如果 repmgr 将进行故障转移,那么您的问题的 1 部分将使 pgpool 找到新的主服务器,但在这种情况下,我会将 repmgr 配置为不自动进行故障转移(因为他们可以为谁应该做什么而斗争。

于 2018-07-23T20:35:01.210 回答