タイプ: enum
デフォルト: fdatasync
コンテキスト: sighup
再起動: false
値: [fsync, fdatasync, open_sync, open_datasync]

WALの更新をディスクへ強制するのに使用される方法です。fsyncがオフの場合この設定は役に立ちません。と言うのはWALファイルの更新が全く強制されないからです。取り得る値は以下のものです。

  • open_datasyncopen()のオプションO_DSYNCでWALファイルに書き込む)

  • fdatasync(コミット毎にfdatasync()を呼び出す)

  • fsync(コミット毎にfsync()を呼び出す)

  • fsync_writethrough(すべてのディスク書き込みキャッシュをライトスルーさせるため、コミット毎にfsync()を呼び出す)

  • open_syncopen()のオプションO_SYNCでWALファイルに書き込む)

可能ならopen_*オプションもO_DIRECTを使用します。全てのプラットフォームでこれら全ての選択肢が使えるわけではありません。デフォルトは、上のリストのプラットフォームでサポートされるものの最初に列挙されているものです。ただしLinuxではfdatasyncがデフォルトです。デフォルトは必ずしも理想的なものではありません。クラッシュに適応した構成にする、あるいはアーカイブの最適性能を導くためには、この設定あるいはシステム構成の他の部分を変更することが必要かもしれません。これらの側面は wal-reliabilityで解説されます。このパラメータはpostgresql.confファイル、または、サーバのコマンドラインでのみ設定可能です。

推奨事項 [EN]

On install, PostgreSQL figures out the best method for your OS. It's pretty good at this point; don't change the default. Note that the value of "fsync" shown in your postgresql.conf file is not necessarily the setting the server is using; try SHOW instead.

件のコメント