Резервные копии баз данных MS SQL Server могут быть нескольких видов: полные, дифференциальные и копии журналов транзакций (их содержимое меняется в зависимости от модели восстановления, в которой работает БД [7]). Выбор модели восстановления и стратегии резервного копирования зависит от предъявляемых к базе требований и является слишком объемной темой для обсуждения в рамках этой статьи. Поэтому в описываемом далее решении рассматривается только создание полных копий баз данных, чего достаточно в большинстве случаев.
Базовая логика сценария аналогична предыдущим решениям для резервного копирования виртуальных машин Hyper-V и работы с Windows Backup, поэтому в статье рассматривают только подробности, касающиеся работы с MS SQL Server с помощью PowerShell. Описываемый далее скрипт для автоматического резервного копирования баз данных MS SQL Server поддерживает полноценные и экспресс-редакции MS SQL Server 2005 и выше на любых ОС, где доступны PowerShell 2.0 и SQL Server Management Objects.
Список основных возможностей:
> создание на локальных или сетевых дисках резервных копий БД и управление их ротацией с настраиваемыми параметрами;
> ведение подробного журнала операций;
> отправка отчетов по электронной почте;
> легкая настройка и переносимость.
Поддерживаются следующие варианты резервного копирования:
> все базы данных;
> только системные БД;
> только пользовательские БД;
> базы данных из файла-списка.
Резервные копии сжимаются одним из алгоритмов на выбор (zip64, bzip2, gzip) с поддержкой указания степени компрессии.
Полную версию скрипта, снабженную подробными комментариями, вы можете скачать в дополнительных материалах к номеру на сайте журнала [8].