【发布时间】:2020-05-28 07:54:57
【问题描述】:
我正在尝试设置两个节点(主节点和备用节点)的 postgres 集群。为了激活自动故障转移,我使用了 pgpool-II。
我关注了以下文章:https://www.pgpool.net/docs/41/en/html/example-cluster.html 我所做的唯一不同是安装 postgresql 版本 12 而不是版本 11。
知道我正在尝试在 VMware 上使用两个 centos7 映像。我遇到了以下问题:
当我在两个节点上运行 systemctl status pgpool.service 时,它返回了成功。 我也可以使用看门狗代理 IP 访问 postgresql。
但是什么测试故障转移,一切都出错了。
场景 1:
我使用看门狗委托 Ip 访问了我的数据库。
我断开了备用服务器。
结果:我与 postgresql 的会话继续工作了不到一分钟,然后就失败了。并且我无法再次连接,直到我重新连接备用节点并重新启动 pgpool 服务。
场景 2:
我使用看门狗委托 Ip 访问了我的数据库。
我断开主服务器。
结果:我的会话直接停止了。并且备用服务器没有提升为主服务器。
我注意到一些事情(可能与上述问题有关):当我尝试运行以下命令时 psql 192.168.220.146 -p 9999 -U postgres -c "show pool_nodes"
它无法工作并返回以下内容:
psql:错误:无法连接到服务器:无法连接到服务器:没有这样的文件或目录 服务器是否在本地运行并接受 Unix 域套接字“/var/run/postgresql/.s.PGSQL.9999”上的连接
但是,如果我运行: psql 192.168.220.160 -p 5432 -U postgres 它工作正常,我可以访问 postgres shell。
我的 pool_hba 文件:
# "local" is for Unix domain socket connections only
local all all trust
# IPv4 local connections:
host all all 127.0.0.1/32 trust
host all all ::1/128 trust
host all pgpool 0.0.0.0/0 scram-sha-256
host all postgres 0.0.0.0/0 scram-sha-256
任何帮助将不胜感激。
【问题讨论】:
-
你能分享一下你的 pool_hba.conf 吗?
-
@richyen 我编辑了我的帖子,我已经修复了 pool_hba.conf 问题,因为我使用了错误的 IP 而不是 (0.0.0.0/0),现在旧错误消失了,但我得到另一个! psql:错误:无法连接到服务器:无法连接到服务器:没有这样的文件或目录服务器是否在本地运行并接受Unix域套接字“/var/run/postgresql/.s.PGSQL.9999”上的连接跨度>
-
你能确认你的listen_addresses对于Postgres和pgpool都设置为
'*'吗? -
是的,两者都设置为'*'
-
我有一个非常相似的问题。 (stackoverflow.com/questions/61739146/…) 你找到解决办法了吗?
标签: postgresql high-availability failover pgpool failovercluster