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

NASUNO Isao isao.nasuno @ ctc-g.co.jp
2010年 7月 7日 (水) 13:32:22 JST


みなさま

那須野です。
いろいろと、アドバイスありがとうございます。

-w オプションと、pg_start_backup() と、一通りトライしてみます。

smart/fastの違いについては、私も勘違いしていました...。


Takahiro Itagaki さんは書きました:
> 板垣です。
> 
> 2010年7月7日9:38 Norio Suzuki <suzuki @ tricorn.co.jp>:
>>>     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 <たくさん> するとどうでしょう?


/那須野


pgsql-jp メーリングリストの案内