В PostgreSQL 18 появился
idle_replication_slot_timeout. Он инвалидирует неактивный слот после заданного срока, чтобы тот не удерживал WAL до заполнения диска. По умолчанию стоит 0: защита выключена.Начните с
3d и оставьте запас дольше планового простоя потребителя. Проверка выполняется при checkpoint, поэтому слот может прожить ещё до checkpoint_timeout. Перезапуск сервера сбрасывает отсчёт.Параметр не удаляет слот: логическую подписку придётся синхронизировать заново, а физической реплике понадобится архив WAL или пересборка. Используйте его вместе с
max_slot_wal_keep_size и настройте алерт на возраст inactive_since. В разборе параметра объяснены исключения и цена инвалидации.
