Назад | Перейти на главную страницу

Как отключить автоочистку в Postgres 8.1.22?

Я нахожусь в процессе миграции старой среды на более современный программный стек и пытаюсь ограничить все, что могу, пока этот процесс продолжается.

Прямо сейчас я пытаюсь не допустить падения сервера базы данных, отключив автоочистку (и вместо этого выполняю полный пылесос один раз за ночь, автоочистка вызывает проблемы в часы пик), и мне почему-то не удается этого сделать. У меня autovacuum = off в postgresql.conf и перезапущен postgres, но, похоже, это не помогает.

Моя временная мера - это цикл while, позволяющий мгновенно отключить автоочистку, но я не могу представить, что это полезно.

По моему опыту, отключение автоочистки в postgresql.conf и сигнализация серверу о перезагрузке конфигурации всегда останавливали автоочистку. Я всегда выключаю автоочистку, например, при большом восстановлении БД.

Где вы меняете конфигурацию? Если вы делаете это в PGAdmin, убедитесь, что вы сохранили изменения, прежде чем сигнализировать серверу о перезагрузке конфигурации.

Каковы ваши доказательства того, что автовакуум не прекратился? Убедитесь, что вы обновили любой экран в pgAdmin, который сообщает вам о запущенных процессах при внесении изменений. Несколько раз меня ловил PGAdmin, который не обновлялся автоматически.

Дважды проверьте фактический файл postgresql.conf. Если вы работаете в среде Windows, попробуйте запустить «перезагрузить конфигурацию» от имени администратора. Попробуйте перезапустить службу.

Прочтите файлы журнала. Когда вы перезапускаете службу или перезагружаете конфигурацию после внесения изменений в конфигурацию, отражается ли это изменение в журнале? Так должно быть.

В более долгосрочной перспективе рассмотрите возможность обновления до более новых версий postgreSQL. В 8.1 автопылесос был очень новым; в версии 8.3 и более поздних версиях внесены заметные улучшения в способ работы автоматического вакуумирования, уменьшающие влияние на вашу базу данных.