gifts2017

Bash-скрипт очистки устаревших временных таблиц PostgreSQL

Опубликовал zhilchenko в раздел Администрирование - Сервисные утилиты

Скрипт ищет и удаляет устаревшие временные таблицы, позволяя минимизировать распухание логов. Только для GNU/Linux.

Если вы видите в логах PostgreSQL сообщения

автоочистка: найдена устаревшая врем. таблица "pg_temp_X"."ttXX" в базе "database"
или
autovacuum: found orphan temp table "pg_temp_XX"."ttXX" in database "database"

это значит, что 1С не убрала за собой временную таблицу. PostgreSQL автоматически чистит такие таблицы автовакумом, но пока он доберется до проблемы может пройти много времени. Были случаи, когда лог-файлы забивали диск, вызывая падение СУБД.

Полностью подавить запись в лог подобных сообщений можно с помощью директивы в конфигурационном файле:

log_min_messages = fatal
но тогда есть шанс пропустить важные сообщения. Данный скрипт парсит лог и дропает проблемные таблицы.

Перед запуском сделайте бэкап и остановите 1C сервер!

Как пользоваться:

# git clone https://github.com/zhilchenko/pg_purgeorphan.git
# cd pg_purgeorphan
# sudo -u postgres `pwd`/pg_purgeorphan /var/log/postgresql/postgresql-9.2-main.log

Для использования в cron есть ключ -q, подавляющий вывод сообщений и запрос подтверждения.

Скачать файлы

Наименование Файл Версия Размер Кол. Скачив.
pg_purgeorphan
.pg_purgeorphan 1,19Kb
18.05.14
6
.pg_purgeorphan 1,19Kb 6 Скачать

См. также

PowerTools от 1 000
Подписаться Добавить вознаграждение
В этой теме еще нет сообщений.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа