<div dir="ltr"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">> During testing of some of the more intense failure scenario's we sometimes<br>
> end up with a cluster where all backends are down according to pgpool. We<br>
> run in a cluster with 3 nodes, all running a pgpool and a postgresql<br>
> instance. In some situations when the pgpool instances lose connection to<br>
> the postgresql backends, they are all marked as down and the cluster never<br>
> recovers. To make things worse, this state is shared between the pgpool<br>
> nodes, so even restarting the pgpool instances one by one does not help.<br>
> Once you enter this state, the only way out is to stop all pgpool instances<br>
> and then start them again, to clear the cluster and have pgpool start with<br>
> a fresh state. Is there any way to trigger pgpool to re-evaluate the status<br>
> of a backend, even when the cluster think it's down?<br>
<br>
If pgpool detected the failure of PostgreSQL, pgpool will detach the PostgreSQL from cluster<br>
and mark the status as "DOWN".<br>
After you recover the PostgreSQL, you need to use "pcp_attach_node" command to <br>
attach the PostgreSQL to cluster.<br></blockquote><div><br></div><div>This requires a manual action, which we are trying to prevent.<br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
Alternatively, you can turn on "auto_failback" parameter to <br>
automaticly reattach a "healthy" PostgreSQL.<br></blockquote><div><br></div><div> We've got auto_failback enabled. However, this only works if pgpool has an active connection to at least one database. We've also configured a periodic health check. Why can't pgpool use this health check to detect a database is up and automatically reattach it?</div><div><br></div><div>Best regards,</div><div>Emond</div></div></div>