pgAdmin连接错误到pgpool

时间:2016-02-17 18:13:32

标签: postgresql pgadmin pgpool

我正在使用pgAdmin III从客户端管理我的数据库。我有一个在流复制模式下运行的master和slave postgreSQL。在他们面前还有另一个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访问它。

1 个答案:

答案 0 :(得分:0)

http://www.sraoss.jp/pipermail/pgpool-general/2012-March/000297.html

简而言之:在postgres群集中超出max_connections

我假设发生了什么 - 你重新启动了pgpool并且它打开了与postgres的新连接,而旧的连接则留在idleidle 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

或类似只捕捉僵尸