J F*_*ird 6 postgresql pgpool pgadmin
我正在使用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)
Run Code Online (Sandbox Code Playgroud)
我以前连接到它没有问题,但不知何故pgpool死了,我重新启动它,然后这个错误弹出了没有位置.
pgpool和postgreSQL服务器运行良好.我可以用它来访问它们psql -h hostname database user.应用服务器也可以连接到它,并且Web应用程序通常正在运行.我只是无法从pgAdmin访问它.
http://www.sraoss.jp/pipermail/pgpool-general/2012-March/000297.html
简而言之:max_connections在 postgres 集群上超出了范围。
我假设已经发生了 - 你重新启动了 pgpool 并且它打开了到 postgres 的新连接,而旧的连接留在了idleor idle in transaction(取决于超时)。因此,重新启动 pgpool 后,它消耗了双倍量并 num_init_children达到了实际允许的最大值。
杀死旧的(重新启动之前)pgpool 连接应该可以修复它。尝试pg_terminate_backend(pid)在 postgres 上运行来做到这一点。还要小心杀死正确的连接。至少检查一下
select pid,query, client_address
from pg_stat_activity where now()-query_start > '1 day'::interval
Run Code Online (Sandbox Code Playgroud)
或类似的方法只捕捉僵尸
| 归档时间: |
|
| 查看次数: |
1683 次 |
| 最近记录: |