Тип: | integer |
По умолчанию: | 0 |
Минимальный: | 0 |
Максимальный: | 1000000 |
Контекст: | sighup |
Перезапуск: | false |
Устаревшие: | 15 |
Задаёт число транзакций, на которое будет отложена очистка старых версий строк при VACUUM и изменениях HOT. По умолчанию это число равно нулю, то есть старые версии строк могут удаляться сразу, как только перестанут быть видимыми в открытых транзакциях. Это значение можно сделать ненулевым на ведущем сервере, работающим с серверами горячего резерва, как описано в 6. В результате увеличится время, в течение которого будут успешно выполняться запросы на ведомом сервере без конфликтов из-за ранней очистки строк. Однако ввиду того, что эта отсрочка определяется числом записывающих транзакций, выполняющихся на ведущем сервере, сложно предсказать, каким будет дополнительное время отсрочки на ведомом сервере. Задать этот параметр можно только в postgresql.conf или в командной строке при запуске сервера.
В качестве альтернативы этому параметру можно также рассмотреть hot_standby_feedback на ведомом сервере.
Этот параметр не предотвращает очистку старых строк, которые достигли возраста, заданного параметром old_snapshot_threshold.
Рекомендации [EN]
На StackOverflow
На pgsql-hackers
- Re: pgsql: Track last_inactive_time in pg_replication_slots.
- Re: BUG: Postgres 14 + vacuum_defer_cleanup_age + FOR UPDATE + UPDATE
- RE: Conflict detection for update_deleted in logical replication
- Re: Conflict detection for update_deleted in logical replication
- Re: Introduce XID age and inactive timeout based replication slot invalidation