Работа агента SQL Server Уведомить нескольких операторов о сбое
У меня есть настройка Job в SQL Server 2008, которая отправляет уведомление по электронной почте оператору one при неудачном выполнении задания.
Вопрос: Возможно ли настроить отправку уведомления нескольким операторам для этого конкретного задания?
Я считаю, что возможное обходное решение для этого - создать множество предупреждений для базы данных для каждой конкретной серьезности, но я надеялся, что существует более сжатый способ сделать это. Если бы я шел по этому маршруту, какие ошибки серьезности могли бы быть вызваны неудачной работой? (Я не думаю, что мне понадобится все 25 для чего-то подобного)
Можно ли это сделать с помощью команды sql, чтобы добавить больше операторов для уведомления об отказе? Благодаря пользовательскому интерфейсу вы можете выбрать только один оператор.
Ответы
Ответ 1
Я не считаю, что это возможно.
Конечно, глядя на структуру [msdb].[dbo].[sysjobs]
, в этой таблице находятся различные столбцы operator_id
, которые будут поддерживать идею о том, что 1 для многих невозможно.
Вы можете создать новый оператор с ограниченным списком адресов электронной почты, разделенным запятыми. Рассматривая определение sysoperators
, это полезно для строк, которые могут поместиться в nvarchar(100)
, если вам нужно превысить то, что вы, вероятно, могли бы настроить группу электронной почты на обмен или что-то еще.
Ответ 2
Если предполагается, что несколько человек в вашей организации должны быть уведомлены о неудачном выполнении задания, вы можете изменить адрес электронной почты оператора, чтобы включить несколько почтовых ящиков, разделив каждый почтовый ящик точкой с запятой.
Я предполагаю, что ваш уведомленный оператор называется JobWatcher:
EXECUTE msdb.dbo.sp_update_operator
@name = N'JobWatcher',
@email_address = N'[email protected];[email protected]';
Теперь [email protected] и [email protected] получат почту при неудачном выполнении задания.
Ответ 3
Простейший метод, используемый для уведомления нескольких "OPERATORS"
на "JOB FAILURE"
, заключается в следующем:
В SSMS>SQL Server Agent>Operators
создайте новый OPERATOR
или EDIT
существующий и добавьте дополнительные адреса электронной почты, разделенные ;
в "E-mail name:"
.
Ответ 4
Лучшей практикой будет создание группы на вашем почтовом сервере, отправка уведомлений в группу и последующее управление количеством получателей с почтового сервера.
Ответ 5
Итак, это то, с чем я столкнулся с обходным путем, если намерение заключается в том, что несколько человек в вашей организации должны быть уведомлены, если работа не удалась, а другая группа из нескольких человек добилась успехов.
Вы заметите, что этапы 1-3 - это обычные задачи, которые задание расписания использует, как и для вашей задачи. Там может быть столько шагов, сколько необходимо, до этого, но на последнем шаге (этап 3) процесса необходимо сломать "On Success" и "On Failure", чтобы перейти в отдельные электронные письма. Кроме того, все "On Failures" должны продолжить вашу "Отказ электронной почты", как указано ниже. Таким образом, группа Failure получает там электронные письма, и работа по-прежнему не выполняется для исторических записей.
![1.1]()
Появится возможность изменить направление действия "Вкл. действия" и "Включение сбоя" на вкладке "Дополнительно" на шагах задания.
![2]()
Отказ по электронной почте - общее свойство
![3]()
Отказоустойчивость по умолчанию для электронной почты
![4]()
Успех электронной почты Шаг - общее свойство
![5]()
Успешная пошаговая функция перехода по электронной почте
![6]()
Для других, нуждающихся в помощи. Уведомить нескольких операторов с результатами разницы