[pgsql-jp: 35509] Re: Pgpool経由でのデータベース接続
Kazawa Tsunehisa
digitune @ gmail.com
2005年 6月 17日 (金) 10:30:32 JST
加澤と申します。
// スレッドを切ってしまい申し訳ありません。
どうしてこのような複雑な構成を取られているのか今ひとつ理解できて
いないのですが、私の経験上気が付いたことをいくつか。
・pgpool は failover 時、いったん全ての connection が強制切断されます。
ですので、1度は
psql: server closed the connection unexpectedly
This probably means the server terminated abnormally
before or while processing the request.
が出てしまうのはしょうがないです。ユーザに対して障害を隠蔽したい場合、
クライアント側で必ずリトライを行うようなロジックが必要になると思います。
・「postgres を停止」というのが実際どのような処理をされているのかが
よく分かりませんが、普通に終了処理させている (pg_ctl stop している) よ
うな場合、pgpool では「Result 不一致」と判断され、(たとえセカンダリ側か
らエラーが帰ってきた場合であっても) 強制的にセカンダリ側へ縮退してし
まうことがあります (この仕様はなかなか微妙だと個人的には思います)。
Network 的にダウンさせた場合やバックエンドを KILL シグナルで殺した
ような場合は正常に failover 出来ます。このあたりのテスト条件も確認さ
れると良いかもしれません。
僕が気になったのは以上です。それでは。
--
Tsunehisa KAZAWA
http://www.digitune.org
pgsql-jp メーリングリストの案内