http://selfkleptomaniac.org/archives/630
「手元の環境でまず引っかかったのが3の「接続がすべて切断されるまで待機」のところ。というのも、pgpool-IIにpgpoolを経由して接続するという変な環境だったのだが、child_life_timeを0に設定していたために接続がいつまで経っても切れずにここで失敗してしまったのだ。」
⇒30回ループで無理やり解決するとは...凄い
http://pgpool.projects.postgresql.org/pgpool-ja.html
『オンラインリカバリを実施するためには、ノードが切り離されていると pgpool が検知している必要があります。また、リカバリするノードの PostgreSQL がすでに動作中であれば、あら かじめ PostgreSQL をシャットダウンさせておいてください。 』
http://www.sraoss.jp/pipermail/pgpool-general-jp/2008-December/000517.html
>> オンラインリカバリをpgpoolAdmin経由で使用しようとしていますが、エラー終了して >> しまいます。 >> > アプリケーションで接続プーリングを行なっていると,pgpoolから見ていつま > でたっても接続が終了しないので,オンラインリカバリは失敗します.
> > 接続を終了していないクライアントのアイドル時間によるタイムアウトを設定
> > したい場合は,client_idle_limitを使用してください.その際は,
> > client_idle_limit < recovery_timeout http://www.sraoss.jp/pipermail/pgpool-general-jp/2008-November.txt
BackendErrorは「何かエラーが発生したよ」というメッセージなので、一体何が
起こっているのかまでは解りません。
1stステージ用のスクリプトなどに、リダイレクト文を挿入してどの時点までスクリプトが
実行されているかチェックするというのも一つの手だと思います。
2点確認なのですが、以下はどうなっているでしょうか?
1.backend_data_directoryX」は各DBノード毎に問題なく設定されているか。
2.各DBノード間で、パスフレーズ無しでSSH接続できるように設定されているか。
上記の2点が問題無く、最初に実行されるべき1stスクリプトが実行されないとなると、
下記を疑うべきかもしれません。
1.各DBノードの$PGDATA内にリカバリスクリプトが全て揃っているのか。
2.各リカバリスクリプトのオーナーとグループ、及びパーミッションは
pgpool.confに指定されているrecovery_userが実行できる権限になっているか
PR