В данной заметке кратко опишем процесс организации бэкапа баз данных средствами MS SQL и последующее удаление бэкапов с истекшим сроком хранения.
Для начала посмотрим, как организовать суточное\недельное\ежемесячное резевное копирование средствами самого MS SQL.
Запускаем Management Studio и создаем maintenance plan для каждого типа бэкапа(ежедневный, еженедельный и тп) следующим образом:
Выбираем имя и нажимем на Chenge для выбора плана выполнения процедуры
в данном случае пусть будет ежедневное:
Обратите внимание, чтобы Shedule type был типа Recurring и стояла галочка Enable.
Далее нажимаем OK, Next и выбираем тип резервного копирования(пусть будет Full в данном случае) :
Жмем Next, далее выбираем какие базы данных хотим подвергать резервному копированию
И обязательно переходим во вкладку Destination для указания места хранения наших бэкапов(я рекомендую разделить конечные каталоги для каждого типа, т.е. создать структуру вида .../Backup/Daily, .../Backup/Weekly и тд) . Также обратите внимание, чтобы расширение файлов было написано без точки, т.е. просто как bak :
Дальнейший процесс трудностей не вызывает и заключается в согласии или отказе в логировании, уведомлении по почте и тп, в простейшем случае просто жмем "Next" и завершаем создание Maintenance Plan. В результате выполнения этого плана в каталоге .../Backup/Daily будут созданы подкаталоги по имени каждой БД и в них файлы вида BaseName_backup_2021_02_16_000005_8640903.bak. Имея такой формат имени файла, очень легко ориентироватся по дате создания каждого из них.
Аналогичным образом можно настроить резервное копирование с недельным, месячным и годичным интервалом, задавая соответственные настройки шедулинга.
Теперь перейдем к созданию планов очистки.
Первые шаги будут аналогичными, создаем новый Maintenance Plan, называем его например CleanUpDaily и настраиваем шедулинг. Обратите внимание, что ежедневный план очистки должен выполнятся после завершения ежедневного же бэкапа и тд.
В примере снизу указан путь к каталогу G:\Backups, однако для каждого из созданных планов резервного копирования надо прописать путь до конечного хранения файлов, например, .../Backup/Daily(подкаталоги первого уровня с именами баз будут учтены также, если стоит соответствующая галочка, см ниже).
Тут же настраиваем глубину хранения бэкапа, указав максимальный срок давности для файлов(в данном случае - 7 дней для ежедневного бэкапа):
Остальные шаги также не вызывают сложностей, завершаете создание плана обслуживания и переходите к созданию следующего, аналогично.
В следующей статье рассмотрим, как можно организовать резервное копирование MS SQL с помощью Bacula, если нет возможности использовать Enterprise-версию.