Отправка автоматических уведомлений о заданиях по электронной почте на SQL Server по SMTP
Когда у вас есть автоматизированные задания резервного копирования, запущенные на сервере базы данных, иногда вы забываете, что они даже выполняются. Затем вы забыли проверить, успешно ли они работают, и не понимаете, пока ваша база данных не выйдет из строя, и вы не сможете восстановить ее, так как у вас нет текущей резервной копии..
Здесь приходят уведомления по электронной почте, поэтому вы можете видеть статус работы каждое утро, когда вы потягиваете свой кофе и притворяетесь, что работаете.
SQL Server предоставляет встроенный метод отправки электронной почты, но, к сожалению, он требует, чтобы на сервере был установлен Outlook и профиль, что не обязательно является идеальным способом отправки электронной почты. К счастью, есть еще один метод, который включает в себя установку хранимой процедуры на вашем сервере, которая позволит вам отправлять электронную почту через SMTP.
Загрузите хранимую процедуру sp_SQLNotify здесь.
Вы захотите отредактировать одну строку в хранимой процедуре, чтобы указать IP-адрес вашего SMTP-сервера:
EXEC @hr = sp_OASetProperty @iMsg, 'Configuration.fields (“http://schemas.microsoft.com/cdo/configuration/smtpserver”). Значение', '10 .1.1.10 '
Установите хранимую процедуру в основную базу данных, чтобы ее можно было легко использовать везде, где это необходимо.
Откройте список SQL Server Agent \ Jobs и выберите свойства для задания, для которого вы пытаетесь создать уведомление:
Нажмите на вкладку Шаги, и вы должны увидеть экран, который выглядит следующим образом:
Нажмите кнопку «Создать», чтобы создать новый шаг задания. Мы будем использовать этот шаг, чтобы отправить уведомление по электронной почте об успехе.
Имя шага: Успешное уведомление по электронной почте
Введите этот SQL в окно команд, как показано ниже. Вы хотите настроить адреса электронной почты и тему сообщения в соответствии с вашей средой:
exec master.dbo.sp_SQLNotify '[email protected]', '[email protected]', 'Задание резервного копирования успешно', 'Задание резервного копирования успешно выполнено'
Нажмите OK, а затем снова нажмите кнопку New, чтобы создать еще один шаг. Это будет шаг уведомления об ошибке.
Имя шага: Ошибка уведомления по электронной почте
SQL:
exec master.dbo.sp_SQLNotify '[email protected]', '[email protected]', 'Ошибка задания резервного копирования,' Ошибка задания резервного копирования '
Теперь идея состоит в том, чтобы заставить элементы следовать определенному рабочему процессу. Сначала нажмите Edit на шаге 1 и установите свойства, как показано здесь:
Мы говорим, что в случае успеха перейдите к шагу успеха, а в случае неудачи перейдите к шагу неудачи. Довольно простые вещи.
Теперь отредактируйте второй шаг, помеченный как «Успешное уведомление по электронной почте», и установите свойства, как показано здесь:
Мы говорим, что если задание на уведомление выполнено успешно, просто выйдите из задания, не выполняя шаг 3. Если мы не укажем это, мы получим два электронных письма, одно с успехом, а другое с ошибкой.
Теперь отредактируйте третий шаг, помеченный «Ошибка уведомления по электронной почте», и установите свойства, как показано здесь:
Теперь ваши рабочие шаги должны выглядеть так:
Теперь вы должны иметь уведомления по электронной почте в папке «Входящие» для успеха или неудачи.
Примечание. Хранимая процедура, использованная в этой статье, была найдена здесь, хотя это может быть и не первоисточник.
Загрузите хранимую процедуру sp_SQLNotify здесь.