Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
БД_ресторан_5семестр.doc
Скачиваний:
0
Добавлен:
23.01.2026
Размер:
1.76 Mб
Скачать
  1. Автоматизация через sql server agent

  1. Задание для полного бэкапа, которое будет выполняться один раз в сутки:

USE msdb;

GO

PRINT 'Создание заданий автоматического резервного копирования...';

PRINT '';

BEGIN TRY

EXEC dbo.sp_add_job

@job_name = N'Restaurant_System_FULL_0200',

@description = N'Системный полный бэкап Restaurant (из master)',

@category_name = N'Database Maintenance';

EXEC sp_add_jobstep

@job_name = N'Restaurant_System_FULL_0200',

@step_name = N'Выполнить полный бэкап',

@command = N'EXEC master.dbo.sp_Restaurant_BackupFull;',

@database_name = N'master';

EXEC sp_add_schedule

@schedule_name = N'Schedule_FULL_0200_System',

@freq_type = 4,

@freq_interval = 1,

@active_start_time = 20000;

EXEC sp_attach_schedule

@job_name = N'Restaurant_System_FULL_0200',

@schedule_name = N'Schedule_FULL_0200_System';

EXEC sp_add_jobserver @job_name = N'Restaurant_System_FULL_0200';

PRINT 'Задание полного бэкапа создано';

END TRY

BEGIN CATCH

PRINT 'Ошибка: ' + ERROR_MESSAGE();

END CATCH

  1. Задание для дифференциального бэкапа, который будет выполняться каждые 6 часов

BEGIN TRY

EXEC dbo.sp_add_job

@job_name = N'Restaurant_System_DIFF_6H',

@description = N'Системный дифференциальный бэкап Restaurant';

EXEC sp_add_jobstep

@job_name = N'Restaurant_System_DIFF_6H',

@step_name = N'Выполнить дифференциальный бэкап',

@command = N'EXEC master.dbo.sp_Restaurant_BackupDiff;',

@database_name = N'master';

EXEC sp_add_schedule

@schedule_name = N'Schedule_DIFF_6H_System',

@freq_type = 4,

@freq_interval = 1,

@freq_subday_type = 8,

@freq_subday_interval = 6,

@active_start_time = 80000;

EXEC sp_attach_schedule

@job_name = N'Restaurant_System_DIFF_6H',

@schedule_name = N'Schedule_DIFF_6H_System';

EXEC sp_add_jobserver @job_name = N'Restaurant_System_DIFF_6H';

PRINT 'Задание дифференциального бэкапа создано';

END TRY

BEGIN CATCH

PRINT 'Ошибка: ' + ERROR_MESSAGE();

END CATCH

  1. Задание для копирования журнала транзакций каждые 30 минут:

USE msdb;

GO

BEGIN TRY

EXEC dbo.sp_add_job

@job_name = N'Restaurant_System_LOG_30M',

@description = N'Системный бэкап логов Restaurant (из master)',

@category_name = N'Database Maintenance';

EXEC sp_add_jobstep

@job_name = N'Restaurant_System_LOG_30M',

@step_name = N'Выполнить бэкап логов',

@command = N'EXEC master.dbo.sp_Restaurant_BackupLog;',

@database_name = N'master';

EXEC sp_add_schedule

@schedule_name = N'Schedule_LOG_30M_System',

@freq_type = 4,

@freq_interval = 1,

@freq_subday_type = 4,

@freq_subday_interval = 30,

@active_start_time = 0;

EXEC sp_attach_schedule

@job_name = N'Restaurant_System_LOG_30M',

@schedule_name = N'Schedule_LOG_30M_System';

EXEC sp_add_jobserver @job_name = N'Restaurant_System_LOG_30M';

PRINT 'Задание бэкапа логов создано (каждые 30 мин)';

END TRY

BEGIN CATCH

PRINT 'Ошибка: ' + ERROR_MESSAGE();

END CATCH