Самый ценный ресурс в нашей жизни - время, поскольку он не возобновляем. И вот с целью экономии этого ресурса предлагаю быстрое, доступное и безопасное решение проблемы обслуживания информационных баз PostgreSQL на платформе Windows средствами программы 1С-Обновлятор от Владимира Милькина.
Итак, начнем. В соответствии с рекомендациями лучших базоведов обслуживать базы будем по следующей схеме:
ежедневное обслуживание - делаем vacuum analyze перед началом рабочего дня, но после ночного резервного копирования. Так как эта операция безобидная, то блокировать и выгонять пользователей из ИБ не будем, не беда, если кто-то в это время захочет поработать. У меня эта операция начинается в 5:00 утра, кроме воскресенья. Само собой разумеется, что все действия журналируются, и по окончании операции будет сформировано письмо системному администратору.
еженедельное обслуживание в ночь с субботы на воскресенье - делаем vacuum full и reindex. Поскольку эта операция серьезная, перед началом нужно сделать следующее:
завершим все текущие сеансы пользователей;
заблокируем новые сеансы и регламентные задания;
сделаем резервную копию ИБ.
По окончании vacuum full и reindex все разблокируем и отошлем отчет с логом по почте.
Подготовительные настройки
Делаем эти настройки, если еще не сделали ранее:
Устанавливаем 1С Обновлятор
Покупаем и активируем лицензию. В бесплатной версии вы не сможете произвести пакетную обработку больше трех ИБ, не будут работать уведомления и запуск задач по расписанию. Очень рекомендую купить лицензию, она стоит недорого.
Настраиваем уведомления: Настройки программы → Уведомления
Поскольку скрипт vacuum_full_reindex предполагает резервное копирование, для каждой ИБ, которая будет обслуживаться, нужно настроить параметры архивирования. Для этого во вкладке "Базы" нужно сделать следующее:
встаньте на нужную базу, откройте свойства выделенной базы кнопкой "Свойства базы";
в открывшемся окне свойств базы во вкладке ""Настройка" и в подвкладке "Общие" в строке ""СУБД" нажмите на ссылку "<выбрать сервер...>."
при необходимости добавьте сервер, введите его параметры
в окне свойств базы во вкладке "Настройка" и в подвкладке "Архивация" в группе "Куда" настройте путь для архивации этой базы, в группе "Что" поставте галочку "Включить sql архив", параноики могут поставить галочку "Дополнительно делать dt выгрузку"
Параметры архивирования необходимо настроить для каждой ИБ, которую вы будете обслуживать.
Настройки скриптов обслуживания
Переходим во вкладку "Скрипты" и создаем скрипт vacuum_analyze, копируем код. Не забываем прописать в PGBIN - путь до вашего PostgreSQL, а также логин и пароль к БД. Должно получиться примерно так:
Не забываем выбрать базы для запуска и затем сохранится. Для особо ленивых есть кнопочка "Перенести сюда отметки из основного списка". Это просто шедевр, я без иронии, очень удобно, особенно если у вас около полусотни ИБ.
Аналогично создаем и сохраняем скрипт "vacuum_full_reindex". Не забываем поставить галочки "Делать резервную копию" и "Разблокировать"
Настройка запуска по расписанию
Создаем задачу "Очистка баз ежедневная" примерно с такими параметрами. В строке "Операция" в выпадающем списке выбираем "Запуск скрипта" и выбираем нужный скрипт.
Аналогично создаем задачу "Очистка и индексация еженедельная" с такими параметрами.
В конечном итоге будем иметь следующее:
Отчеты и уведомления
Если уведомления настроены, то по окончании работы скрипта будет высылаться письмо примерно вот такого содержания:
я очень уважаю обновлятор. Но продавать то, что можно сделать один раз меньше чем за час (без особых красивостей), и за 4 с особыми красивостями, с помощью рег.задания и потом просто копировать в любой проект, это как минимум странно.
#1, 06 апреля 2021 18:14
я очень уважаю обновлятор. Но продавать то, что можно сделать один раз меньше чем за час (без особых красивостей), и за 4 с особыми красивостями, с помощью рег.задания и потом просто копировать в любой проект, это как минимум странно.