Устали каждую ночь просматривать каждое уведомление SQL Agent, чтобы определить, какие задачи SQL Agent завершились неудачей? Получаете значительное количество уведомлений о задачах SQL Agent, которые требуют много времени для просмотра? В этой статье мы рассмотрим альтернативное решение, которое позволяет получить один отчет по электронной почте о всех сбоях задач.
Почему мы создали отчет о сбоях одной задачи
За последние несколько лет мы реализовали множество задач SQL Agent в SQL Server. Каждая задача использует процесс уведомления SQL Agent для сообщения об успехе или сбоях администраторам баз данных по электронной почте. Однако из-за большого количества задач мы получаем много электронных писем, сообщающих о успехах и сбоях наших ночных задач. Просмотр каждого из этих уведомлений по электронной почте каждое утро для определения успеха или сбоя каждой задачи SQL Agent стало затратным по времени. Было также легко привыкнуть удалять электронные письма, не замечая, успешно ли выполнились задачи или произошел сбой. Поэтому мы решили создать процесс для создания отчета о сбоях одной задачи.
Что мы сделали
Мы решили написать хранимую процедуру с названием “usp_failed_jobs_report” для создания одного отчета. Эта хранимая процедура выполняет простые SQL-запросы для сбора информации из таблиц sysjobhistory и sysjobs, форматирует данные в отчет и затем отправляет отчет нашим администраторам баз данных по электронной почте. Хранимая процедура запланирована на выполнение каждое утро с понедельника по пятницу в 6 утра с помощью задачи SQL Agent. Она определяет, какие задачи и шаги задач завершились неудачей с момента последнего запланированного выполнения хранимой процедуры. Для каждой задачи или шага задачи, завершившихся неудачей, хранимая процедура создает одну строку в отчете, показывающую название задачи и шага, завершившихся неудачей, а также дату и время сбоя.
Пример отчета
Вот пример отчета, созданного этой хранимой процедурой:
| Задача | Название шага | Дата и время сбоя |
|---|---|---|
| ADRN1303 TRIGGER | TRIGGER FILE EXIST | 25 августа 2002 г., 00:15 |
| LOAD EMPLOYEE TABLE | LOAD TABLE | 25 августа 2002 г., 00:58 |
| LOAS EMPLOYEE TABLE | (Результат задачи) | 25 августа 2002 г., 00:58 |
| ADDS load for PROD1 New | FTP VALIDATION 1 | 25 августа 2002 г., 02:16 |
| ADDS load for PROD1 New | FTP VALIDATION 2 | 25 августа 2002 г., 02:16 |
Этот отчет показывает, что задача “ADRN1303 TRIGGER” имела сбой шага, задача “LOAD EMPLOYEE TABLE” имела сбой шага и задачи (название шага “(Результат задачи)” указывает на сбой задачи), а задача “ADDS load for PROD1 New” имела два разных сбоя шагов.
Заключение
Благодаря наличию одного отчета, администраторы баз данных в нашей компании теперь могут просматривать одно электронное письмо, чтобы определить, какие задачи завершились неудачей с момента последнего рабочего дня. Этот один отчет позволяет администраторам быстро определить все сбои задач и шагов за прошедший день. Они больше не должны просматривать каждое отдельное уведомление SQL Agent по электронной почте, чтобы определить, какие задачи завершились неудачей.
Ниже приведен код хранимой процедуры “usp_failed_jobs_report”:
CREATE PROCEDURE usp_failed_jobs_report AS BEGIN -- SQL-код для создания отчета END
Реализуя это решение, вы можете сэкономить время и повысить эффективность управления сбоями задач SQL Agent в вашей среде SQL Server.