2010年7月 7日

[pgsql-jp: 40321] Re:サービス起動時に「startup process recovering」というプロセスで待たされる

板垣です。

2010年7月7日9:38 Norio Suzuki <suzuki@xxxxx>:
>> ? ? pg_ctl stop -D '$PGDATA' -s -m fast -w
>
> あまり自信は無いのですが、fast で停止するとクライアント接続の強制切断を
> 行うので、その辺りが問題でリカバリモードに入ってしまうのかも知れないなぁ
> などと思いました。

>
> 私がこの状況になったとしたら、fast モードを避け、デフォルトの smart モー
> ドでの停止処理をする方法を試してみます。

いちおう仕様上は、smart でも fast でも全く同じように正常停止できるはずです。
(強制停止するのは immediate モードですね)
smart の場合、先にセッションを全て切断しておかないといけないので、
fast の代わりには使えないかもしれません。

時間がかかっても良いから起動を待ちたいということであれば、-w オプションに加えて
-t <秒数> オプションも使うことをお奨めします。-w だけだと60秒しか待たないので、
しまうので、停止や起動に時間がかかると、けっこうタイムアウトすることがあります。
今回は 3) で -t <長い時間> とすれば、時間はかかるかもしれませんが、エラーは
避けられると思われます。

リカバリが走ってしまう = 正常停止できていない のはまた別の問題ですが…
もしかすると 1) もタイムアウトしており、正常停止の前に rsync を始めて
しまっていることの影響かもしれません。停止前に CHECKPOINT を打ち、
かつこちらも fast -w -t <たくさん> するとどうでしょう?

投稿者 xml-rpc : 2010年7月 7日 12:12
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/96907
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。