[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 メーリングリストの案内