Архивация БД в MS SQL Server с заданным временем жизни: Шаги 4 - 11

В этой части мы продолжим архивацию базы данных, которую мы начали в статье "Архивация БД в MS SQL Server с заданным временем жизни: Шаги 1 - 3".

4. На вкладке Advanced (Подробнее) → в ниспадающем списке On failure action (В случае неудачи выполнения) выбрать действие для неудачного завершения данного шага, например, Quit the job reporting failure (Выход из задания с ошибкой) → в ниспадающем списке On success action (В случае удачного выполнения), также выбрать необходимое действие при успешном выполнении шага, например, Go to the next step (Переход к следующему шагу).

Вкладка Advanced

5. Создаем следующий шаг, как указано в пункте 3, в котором будет производиться непосредственно само архивирование БД data_base_1. Так как SQL Server запускается как служба, то выполняется в отдельном сеансе, который не связан с пользовательским сеансом. Из-за этого может возникнуть несогласованность в подключенных сетевых дисках. Поэтому, лучше явно (например, ip-адрес) указывать размещение файла на сетевом хранилище. В поле Command – SQL скрипт, выполняющий архивацию БД:

Здесь задается само архивирование

Use [data_base_1] --переключение на заданную БД

declare @path varchar(200) --путь к архиву

set @path = N'\\192.168.1.50\sql_server_backups\' + CONVERT(varchar, GETDATE(), 104)

exec master.dbo.xp_create_subdir @path --создание каталога с именем в формате даты

set @path = N'\\192.168.1.50\sql_server_backups\' + CONVERT(varchar, GETDATE(), 104) + '\data_base_1' --архивация БД

BACKUP DATABASE [data_base_1] TO  DISK = @path
WITH  RETAINDAYS = 7, NOFORMAT, NOINIT,  NAME = N'data_base_1-Full Database Backup',
SKIP, NOREWIND, NOUNLOAD,  STATS = 10 --верификация архива, в случае неудачи ошибка сервер выдаст ошибку

declare @backupSetId as int
select @backupSetId = position from msdb..backupset
where database_name=N'data_base_1' and backup_set_id=(select max(backup_set_id)
from msdb..backupset where database_name=N'data_base_1')
if @backupSetId is null
begin raiserror(N'Ошибка верификации.', 16, 1)
end
RESTORE VERIFYONLY FROM  DISK = @path
WITH  FILE = @backupSetId,  NOUNLOAD,  NOREWIND
GO

6. Создаем аналогичные шаги для баз data_base_2 и data_base_3. Лучше выполнять архивирование баз в отдельных шагах, так как при неудаче архивирования одной базы, это не повлечет остановку архивирования остальных.

7. Создаем расписание для нашего задания. Вкладка Schedules (Расписание) → New (Новое) → в поле Name (Имя) указать наименование расписания «Schedule_1» → в поле Schedule type выбрать необходимый тип расписания, в нашем случае Recurring (Периодически) → в поле Occurs (Запускаться) выбрать Daily (Ежедневно) → в поле Occurs once at (Запускаться однажды в) выбрать  02:00:00→ OK


Задайте расписание архивации

8. В Schedule list (Список расписаний) должно появиться Schedule_1 → в колонке Description (Описание) должно быть – «Occurs every day at 2:00:00» (Запускаться каждый день в 2:00:00) → OK

Список расписаний

9. Jobs (Шаги) → Refresh (Обновить) → в списке заданий должно появиться наше созданное задание «data_base_back_up»

Обновите шаги

10. Для проверки можно запустить задание принудительно: data_base_back_up → Start Job at Step (Запустить задание с шага) → в появившемся диалоговом окне выбрать первый шаг и нажать Start (Запуск)

Здесь можно запустить задание принудительно

 

11. В случае если архивация прошла успешно, должно появиться следующее окно:

Здесь можно просмотреть успех архивации

В итоге получается структурированное хранение резервных копий баз данных, создание и удаление которых происходит полностью в автоматическом режиме.

Архивы по датам

 

Две базы данных

Оцените статью: 

Читайте также:

Вы уже знаете о бесплатной электронной рассылке "Советы экспертов от А до Я"?
Вместо того, чтобы читать сотни статей по интересующим Вас темам или самостоятельно их выискивать по информационным службам, подпишитесь на бесплатную рассылку от наших экспертов о самых важных событиях и трендах » Сейчас подписаться бесплатно! «