[pgpool-general-jp: 614] オンラインリカバリ時のBackendErrorについて
Ryoichi TANABE
r-tanabe @ nsat.co.jp
2009年 8月 21日 (金) 15:08:34 JST
初めまして。田辺と申します。
掲題の件に関し質問させていただきたくメールしました。
オンラインリカバリの 2ndステージに入ったところで、クライアントプログラム
が、DB接続完了待ちになり、リカバリタイムアウト(recovery_timeout)まで処理
が戻りません。オンラインリカバリは、タイムアウトしたところでBackendError
エラーで失敗します。
PGPool側での2nd ステージ開始時のクライアント接続の終了待ち と
クライアントプログラムでのDB接続完了待ち とが
互いに待ち続けているように見えています。
v2.2.2ではこのように互いに待ち続けているようなことはありませんでした。
対処法などございましたらご回答の程よろしくお願いします。
※PGPoolのログより抜粋
2009-08-20 14:08:22 LOG: pid 27568: starting 2nd stage
2009-08-20 14:14:25 ERROR: pid 27568: wait_connection_closed: existing
connections did not close in 360 sec.
2009-08-20 14:14:25 ERROR: pid 27568: start_recovery: timeover for
waiting connection closed
※pgpool.confより抜粋
recovery_timeout = 360
client_idle_limit_in_recovery = 240
※クライアントプログラムはPythonで作成しいます
※クライアントプログラムは、常駐プロセスで、
pgdb.connect() -> cursor.executemany() -> db.commit() -> db.close()
を繰り返しています。pgdb.connect()で処理が止まっている状態になります
※システム構成情報
PGPool-II : v2.2.3
PostgreSQLl: 8.3.7
OS : CentOS5
Python : 2.5.1
DB-API : PyGreSQL-4.0
2ノードのレプリケーションモード
以上
-----------
田辺亮一
pgpool-general-jp メーリングリストの案内