Архивация БД в 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 (Переход к следующему шагу).
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. В случае если архивация прошла успешно, должно появиться следующее окно:
В итоге получается структурированное хранение резервных копий баз данных, создание и удаление которых происходит полностью в автоматическом режиме.
Читайте также:
Вы уже знаете о бесплатной электронной рассылке "Советы экспертов от А до Я"?
Вместо того, чтобы читать сотни статей по интересующим Вас темам или самостоятельно их выискивать по информационным службам, подпишитесь на бесплатную рассылку от наших экспертов о самых важных событиях и трендах » Сейчас подписаться бесплатно! «