19.14. エラー処理

exit_on_error (boolean)

onなら、全てのエラーは現在のセッションを中止させます。 デフォルトではこれはoffに設定されているので、 FATALエラーのみがセッションを中止させます。

restart_after_crash (boolean)

デフォルトであるonの場合、PostgreSQLはバックエンドのクラッシュの後、自動的に再初期化を行います。 この値を真のままにしておくことが、通常データベースの可用性を最大化する最適の方法です。 しかし、 PostgreSQLがクラスタウェアにより起動された時のような状況では、クラスタウェアが制御を獲得して、適切とみなすいかなる振る舞いをも行えるように再起動を無効にすることが有益かもしれません。

data_sync_retry (boolean)

デフォルトであるoffに設定すると、PostgreSQLは変更されたデータファイルのファイルシステムへの吐き出しの失敗に対してPANICレベルのエラーを発生させます。 これによりデータベースサーバのクラッシュが引き起こされます。 このパラメータはサーバ起動時のみ設定可能です。

オペレーティングシステムによっては、カーネルキャッシュのページ内のデータの状態は、書き戻しの失敗の後は不明です。 このような状況では、データロスを避ける唯一の方法は、失敗が報告された後、可能ならば失敗の根本原因を調査して故障したハードウェアを交換したのち、WALからの回復することだけです。

onに設定すると、代わりにPostgreSQLはエラーを報告して実行を継続し、後のチェックポイントでデータの吐き出しをリトライします。 書き戻しの失敗が起きたときのオペレーティングシステムのバッファデータの扱いを調査した後でのみonに設定してください。