Задание агента SQL Server Уведомить несколько операторов о сбое - PullRequest
29 голосов
/ 15 сентября 2011

У меня есть настройка задания в SQL Server 2008, которая отправляет уведомление по электронной почте одному оператору при сбое задания.

Вопрос: Можно ли настроить уведомление по электронной почте, отправляемое нескольким операторам для этой конкретной работы?

Я полагаю, что возможный обходной путь для этого заключается в создании большого количества предупреждений для базы данных для каждой данной серьезности, но я надеялся, что для этого был более краткий способ. Если бы я пошел по этому пути, какие ошибки серьезности могли бы быть вызваны неудачной работой? (Я не думаю, что мне потребуются все 25 для чего-то подобного)

Можно ли это сделать с помощью команды sql, чтобы добавить больше операторов для уведомления о сбое? Похоже, что через пользовательский интерфейс вы можете выбрать только одного оператора.

Ответы [ 6 ]

31 голосов
/ 15 сентября 2011

Вопрос. Можно ли настроить уведомление по электронной почте, отправляемое нескольким операторам для этой конкретной работы?

Не думаю, что это возможно.

Конечно, рассматривая структуру [msdb].[dbo].[sysjobs], различные столбцы operator_id находятся в самой этой таблице, что подтверждает идею, что 1 для многих невозможна.

Но некоторыеальтернативы

  1. Вы можете создать нового оператора со списком адресов электронной почты, разделенным точкой с запятой.Глядя на определение sysoperators, это хорошо для строк, которые могут вписаться в nvarchar(100)
  2. , если вам нужно превысить это, вы, вероятно, могли бы создать группу рассылки электронной почты при обмене или что-то в этом роде.
27 голосов
/ 20 сентября 2012

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

Я предполагаю, что ваш уведомленный оператор называется JobWatcher:

EXECUTE msdb.dbo.sp_update_operator
  @name = N'JobWatcher',
  @email_address = N'person1@company.org;person2@company.org';

Теперь person1@company.org и person2@company.org будут получать почту при сбое задания.

22 голосов
/ 16 декабря 2013

Самый простой метод, который я использую для уведомления нескольких "OPERATORS" на "JOB FAILURE", заключается в следующем:

В SSMS>SQL Server Agent>Operators создайте новый OPERATOR или EDIT существующий и добавьте дополнительные адреса электронной почты, разделенные ; в "E-mail name:" поле.

11 голосов
/ 11 сентября 2013

Лучше всего создать группу на своем почтовом сервере, отправить уведомления группе и затем контролировать количество получателей с почтового сервера.

4 голосов
/ 10 июля 2016

Так что это то, что я предложил в качестве обходного пути, если намерение состоит в том, чтобы несколько человек в вашей организации были уведомлены о сбое в работе, а другая группа из нескольких человек - об успехах.

Вы заметите, что Шаги 1-3 являются обычными задачами, для которых используется задание по расписанию, как и для вашей задачи. Перед этим может быть столько шагов, сколько необходимо, но последний шаг (Шаг 3) процесса должен быть разбит на «В случае успеха» и «В случае отказа», чтобы перейти к отдельным электронным письмам. Кроме того, все сообщения «О сбоях» должны быть направлены на ваш «Email о сбое», как указано ниже. Таким образом, группа Failure получает туда электронные письма, и задание для исторических записей все равно не будет выполнено.

1.1

На вкладке «Дополнительно» шагов «Задание» вы увидите вариант изменения направления «При успешном действии» и «При неудачном действии».

2

Сбой Email Step - Общее свойство

3

Сбой Email Step -Advance Property

4

Успешный шаг электронной почты - Общее свойство

5

Успешный шаг по электронной почте - предварительное свойство

6

Для других нуждающихся в помощи. Уведомление нескольких операторов о различиях

1 голос
/ 02 июня 2018

Пожалуйста, используйте скрипт ниже, чтобы увеличить длину символа адреса электронной почты. USE mdsdb GO ALTER TABLE sysoperators ALTER column email_address NVARCHAR(2000);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...