2017-08-19 18 views
2

私は4つの不浸透剤システムのセットを持っています。Pgpoolが接続を回復しない

  • web1と(メインDB)(DB web1とから複製)
  • WEB2
  • MGMT(イムから接続するノード)
  • web3(pgpoolのが実行されている)

マイpgpoolは、web1とweb2のデータベース間で負荷分散を行うように設定されています。それはうまく動作し、それらのうちの1つがpgpoolを介してダウンしても、私はデータベースに接続することができます。しかし、両方のデータベースをダウンしたとき(web1とweb2)、私はpgpoolを通して存在していた接続を失います。

ここで、メインのデータベースを再起動すると、pgpoolがその接続を取り戻すはずですが、そうではないと仮定しています。私の前提が間違っていても、pgpoolをweb1とweb2のデータベースに接続するにはどうしたらいいですか?

server closed the connection unexpectedly 
This probably means the server terminated abnormally 
before or while processing the request. 
The connection to the server was lost. Attempting reset: Failed. 

私は再びバックアップデータベースを持ったとき、私はまだこのメッセージを取得 - -

psql: server closed the connection unexpectedly 
This probably means the server terminated abnormally 
before or while processing the request. 

を私がすることができるよ、両方のデータベースがダウンした後

現在、私はメッセージを取得します私はシステムを再起動した場合にのみ接続を取得します。私が行方不明になっているか、または私がその方法を誤解したことがありますか?pgpool作品?

私はpgpoolとpostgresqlのconfファイルをここに追加していませんが、これは関連していないと思われますが、必要に応じて追加します。

答えて

2

ノードに障害が発生した場合にバックエンドノードがフェールオーバーに設定されている場合、Pgpool-IIは、フェールオーバーが実行された後で障害ノードを切り離します。あなたの場合には何が起こっているのですか?しかし、いったん切り離されると、障害が発生したノードは、再び利用可能/到達可能になっても自動的にPgpool-IIに戻されることはありません。その理由は、Pgpool-IIは、ノードの障害によってデータの破損が発生した場合や、ユーザが意図したとおりに適切に複製されている場合は、それ自体では保証できません。 したがって、失敗したノードはPgpool-IIに手動で接続する必要があり、そのためにはpcp_attach_nodeコマンドを使用できます。

+0

あなたは私にこのドキュメントへの参照を教えていただけますか? – leoOrion

+1

Pgpool-IIの公式文書で言及されているかどうかは疑問ですが、これはPgpool-IIの仕組みです。 https://blog.dbi-services.com/vertically-scale-your-postgresql-infrastructure-with-pgpool-2-automatic-failover-and-reconfiguration/ブログ記事を参照してください。ノードからPgpoolへ –