Тип: enum
По умолчанию: fdatasync
Контекст: sighup
Перезапуск: false
Значения: [fsync, fdatasync, open_sync, open_datasync]

Метод, применяемый для принудительного сохранения изменений WAL на диске. Если режим fsync отключён, данный параметр не действует, так как принудительное сохранение изменений WAL не производится вовсе. Возможные значения этого параметра:

  • open_datasync (для сохранения файлов WAL открывать их функцией open() с параметром O_DSYNC)

  • fdatasync (вызывать fdatasync() при каждом фиксировании)

  • fsync (вызывать fsync() при каждом фиксировании)

  • fsync_writethrough (вызывать fsync() при каждом фиксировании, форсируя сквозную запись кеша)

  • open_sync (для сохранения файлов WAL открывать их функцией open() с параметром O_SYNC)

Варианты open_* также применяют флаг O_DIRECT, если он доступен. Не все эти методы поддерживается в разных системах. По умолчанию выбирается первый из этих методов, который поддерживается текущей системой, с одним исключением — в Linux по умолчанию выбирается fdatasync. Выбираемый по умолчанию вариант не обязательно будет идеальным; в зависимости от требований к отказоустойчивости или производительности может потребоваться скорректировать выбранное значение или внести другие изменения в конфигурацию вашей системы. Соответствующие аспекты конфигурации рассматриваются в 6. Этот параметр можно задать только в файле 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.

Комментарии