Как-то возникла идея контролировать резервные копии баз в автоматическом режиме.
В нашей организации был принят регламент, чтобы хранить резервные копии минимум пол года, для возможности восстановления и анализирования данных на любой день, в случае изменения, подмены данных или сбоях.
Как понимаете для такого количества резервных копий дисков не напасешься, учитывая то, что база весит больше 100гб. Данные резервные копии создаются штатными средствами MS SQL в автоматическом режиме. Резервные копии также дублируются на 2 разных сервера.
Схема создания резервных копий на MS SQL (как выглядит у меня):
- резервная копия каждый день (храним минимум 6 копий)
- резервная копия каждую неделю (храним минимум 6)
- резервная копия каждый месяц (храним минимум 2)
- резервная копия ежеквартально (храним минимум 2)
Далее, чтобы для данных копий хватало места, данная обработка автоматически выполняется в определенный момент времени, перед созданием резервных копий, анализируя место на диске серверов, и очищая если его не хватает (для добавления данной формы в фоновые задания, читайте мою публикацию //infostart.ru/public/153090/)
Логика контроля места такая:
Автоматически создается vbs скрипт, который высчитывает свободные объемы дисков указанных серверов (важно запускать данную обработку от имени администратора) Откуда взят данный скрипт уже не вспомню, очень давно это было. Но важно то, что он работает! Создастся файл указанный в настройке: Файл хранения остатка места на диске, откуда вытягивается остаток места на диске компьютера. Для того чтобы выбрать именно тот диск, на котором размещены резервные копии, нужно указать диск в поле: Диск. В поле Сервер указать имя компьютера на котором лежат резервная копия, именно имя! В поле База вбиваем имя базы (тут без разницы какое имя, просто идет группировка по данному полю, если проверяется несколько).
Обработка собирает все резервные копии по указанным папкам, сортирует по Времени изменения файла, замеряет размер последнего, и уже пляшет от него. В настройке задается еще параметр: Добавить байт к максимальному размеру BackUp, это сколько нужно прибавить размеру свободного пространства для очистки файлов. Также есть параметр: Максимальный размер BackUp (если не найден ни один файл) - нужен в случае, если нет или не найден файл BackUp.. это на всякий случай.
В результате обработка опирается на текущие параметры, анализируя оставшееся место на дисках, количество хранимых резервных копий. Если определяется нехватка места на диске, и в какой-то группе превышено количество хранимых файлов, самые старые будут удаляться пока остаток места на диске не будет достаточным. Если определяется нехватка места на диске, и отсутствует минимальное количество файлов, будет удален самый старый файл, и т.д.
В макете ФайлНастройки указываем путь хранения настройки. Это нужно сделать через конфигуратор.
Как видим по скрину, данная форма работает как в обычных формах, так и в управляемых.
Данная обработка должна работать в любой конфигурации и любых релизах.
Тестировалась на конфигурациях: УПП 1.3.115.2; БП 3.0.64.54; БП 2.0.66.64.