我正在使用pgAdmin III从客户端管理我的数据库。我有一个主postgreSQL和一个从and在流复制模式下运行。在他们前面还有另一台pgpool服务器来做连接池和负载均衡。
当我将pgAdmin连接到pgpool时,我得到了:
Error connecting to the server: ERROR: unable to read message kind
DETAIL: kind does not match between master(52) slot[1] (45)我之前连接到它没有问题,但不知何故pgpool死了,我重新启动了它,然后这个错误突然出现。
pgpool和postgreSQL服务器运行良好。我可以用psql -h hostname database user访问它们。应用程序服务器也可以连接到它,web应用程序像往常一样运行。我只是不能从pgAdmin访问它。
发布于 2018-05-08 15:50:58
http://www.sraoss.jp/pipermail/pgpool-general/2012-March/000297.html
简而言之: postgres集群超过了max_connections。
我假设发生了什么-你重新启动了pgpool,它打开了到postgres的新连接,而旧的连接留在了idle或idle in transaction中(取决于超时)。因此,在重新启动pgpool之后,它消耗了双倍数量的of num_init_children,并达到了实际允许的maximum。
杀死旧的(在重启之前) pgpool连接应该可以修复它。尝试在postgres上运行pg_terminate_backend(pid)来实现这一点。也要小心地杀死正确的连接。至少检查一下
select pid,query, client_address
from pg_stat_activity where now()-query_start > '1 day'::interval或者只抓僵尸
https://stackoverflow.com/questions/35464497
复制相似问题