HPUNIX Сайт о ОС и не только!

Database Mail в MS SQL Две тыщи 5 уведомления об ошибках на email

15 июля 2008 - unix
Database Mail в MS SQL Две тысячи пять извещения об ошибках на email

#image.jpgНеплохого времени, читатели блога Любителя тестов! В продолжении статьи о Maintenance Plans для MS SQL Две тыщи 5 дополняю статьей о том, как настроить уведомление об ошибках Maintenance Plan MS SQL Две тыщи 5 по электронной почте. Это дозволит сберечь время и силы ) на ежедневный ручной контроль выполнения регламентных заданий.

Введение в Database Mail в MS SQL Server 2005

Database Mail появился в SQL Server 2005, заменив собой компонент SQLMail. Данный компонент употребляется для отправки сообщений электронной почты компонентом сервера  - Database Engine.

Database Mail не просит установленного почтового клиента и сам говорит с почтовым сервером по протоколу SMTP. Для того, чтобы все корректно заработало, необходимо несколько вещей: 1. Практически, сам Microsoft SQL Server;  2. почтовый сервер, доступный с машины с SQL Server'ом; 3. членство в роли sysadmin у вашей учетной записи в SQL Server, потому что настройку могут создавать только члены этой роли.

Настройка Database Mail в MS SQL Server 2005

Шаг 1. Настройка Database Mail


Поначалу, подключимся к нашему SQL Server'у с помощью SQL Server Management Studio. Раскрываем ветку Management, выбираем пункт Database Mail, жмахаем по нему правой кнопкой мыши и выбираем «Configure Database Mail»:

#image.jpg

В показавшемся мастере нажимаем Далее (Next). На данный момент мы можем: настроить Database Mail, поменять профили и аккаунты Database Mail, поменять безопасность профилей и, в конце концов, поменять конфигурацию системы.

Потому что Database Mail мы ранее не использовали — изменять нам пока нечего, выбираем 1-ый пункт «Set up Database Mail» и нажимаем «Next». Если ранее Database Mail не был настроен, то показаться сообщение о необходимости включить данную функцию - соглашаемся.

#image.jpg Создадим новый профиль, например с именованием "Алярмер" — непосредственно он будет употребляться для отправки почты о невыполненных заданиях (job'ах) и добавим в него одну учетную запись (Account) — для чего нажмем кнопку «Add»:

Database Mail в MS SQL Две тысячи пять извещения об ошибках на email

#image.jpg

Database Mail в MS SQL Две тысячи пять извещения об ошибках на email
Поля в окне мастера Database Mail Configuration Wizard необходимо настроить под свои свойства и нажать несколько раз Next:

#image.jpg

На данном шаге можно добавить дополнительные учетные записи на тот случай, если одна из записей "откажет". После нажатия Next мы попадаем в следующее окно:

#image.jpg

В данном окне мастера на вкладке Private Profiles мы можем сделать несколько профилей, другими словами каждому юзеру msdb, включенному в роль DatabaseMailUserRole, можно назначить свой почтовый профиль. Или даже несколько почтовых профилей.

Для этого необходимо установить галку «Access». Default Profile — если стоит «Yes», при использовании хранимой процедуры sp_send_dbmail, имя профиля по-умолчанию можно не указывать, туда будет подставлено имя профиля, отмеченного Default для этого пользователя.

На закладке Public Profiles можно установить для свежесозданного профиля признаки Default = «Yes» и Public = «Yes». На данный момент этот профиль смогут использовать все пользователи msdb включенные в роль DatabaseMailUserRole (и пользователи серверной роли sysadmin). После нажатия «Next» мы попадаем на предпоследний экран мастера функции.

#image.jpg Здесь мы можем настроить:

  • Account Retry Attempts — количество попыток отправки письма с внедрением определенной учетной записи (помните, что мы можем добавить в профиль несколько учетных записей? Вот, сначала SQL Server попробует выслать письмо от имени учетной записи с ценностью Один столько раз, сколько мы укажем, а позднее, если письмо так и не уйдет — будет перебирать менее приоритетные учетные записи)
  • Database Mail в MS SQL Две тысячи пять извещения об ошибках на email
  • Account Retry Delay (seconds) — непосредственно столько секунд SQL Server будет ждать до того как повторить попытку выслать письмо
  • Maximum File Size (Bytes) — SQL Server может добавлять файлы-вложения в письмо. Этим параметром можно ограничить размер такого вложения
  • Prohibited Attachment File Extensions — незаконные разрешения для вложений, чтобы пользователь не мог сгененерировать и выслать файл .vbs, например
  • Database Mail Executable Minimum Lifetime (seconds) — Database Mail представляет из себя отдельный файл DatabaseMail(90-110).exe — этот параметр определяет через какой просвет времени SQL Server «прибьет» запущенный процесс при отсутствии активности
  • Logging Level — этот параметр определяет как много инфы будет писаться в лог, при работе Database Mail.

На последнем экране мы увидим какие учетные записи и профили будут изготовлены, а так же каким пользователям будет добавлена возможность использовать изготовленный профиль. Жмахаем «Finish». Настройку профиля и учетной записи почты можно считать завершенной.

Шаг 2. Отправка тестового письма

Для проверки корректности опций можно выслать тестовое письмо. Для этого:

#image.jpg

Database Mail в MS SQL Две тысячи пять извещения об ошибках на email

После ввода адреса получаетля и нажатия «Send Test E-Mail» - тестовое сообщение будет отправлено и при успешном стечении событий - будет получено получателем. Если сообщение до получателя не дошло, то бегом глядеть логи и отыскивать ошибки.

Во-первых, посмотрите журнал Database Mail. В SSMS зайдите в Management, ткните в Database Mail правой кнопкой мыши и выберите там Database Mail Log.

Может быть вы просто неправильно указали свойства подключения к серверу — это, как ни умопомрачительно, довольно-таки распространенная ошибка. 2-ое, что нужно проверить — это то, что в базе данных msdb включен Service Broker. Непосредственно он употребляется для отправки сообщений. Для проверки, сделайте новый запрос и сделайте там:

SELECT is_broker_enabled FROM sys.databases WHERE name = 'msdb'

Если возвращаемое значение отличается от единицы, Service Broker выключен. Вы можете включить его так:

ALTER DATABASE msdb SET ENABLE_BROKER

Будем считать, что на данный момент Database Mail у нас настроена и тестовое письмо пришло.

Шаг 3. Создание оператора (получателя писем)

Для сотворения учетной записи лица, которое будет получать письма, необходимо:

#image.jpg

Заполнить обозначенные поля. Задать случайное имя, поставить чекбокс "Enable" и задать адрес получателя. Нажать ОК.

Database Mail в MS SQL Две тысячи пять извещения об ошибках на email

Шаг 4. Настройка агента (SQL Server Agent)

Для функции Ms SQL Server Agent необходимо:

#image.jpg

Как видно, необходимо задать систему, используемую для отправки сообщений и изготовленный нами профиль. Далее нажать ОК и перезапустить SQL Server Agent.

Шаг 5. Настройка Maintenance Plan и Jobs

Для всех заданий, по которым необходимо уведомление, необходимо:

#image.jpg

Database Mail в MS SQL Две тысячи пять извещения об ошибках на email

Зайти в свойства задания на вкладку Notifications и поставить чекбокс E-mail. Выбрать недавносозданного оператора и при каком условии посылать уведомление. "When the job fails", т.е. уведомления посылать только если задание завершится с ошибкой,  "When the job succeeds" — когда задание завершится успешно, "When the job completes" - когда задание завершится вообще как-то — с ошибкой, либо без ошибок.

В случае ошибок выполнения заданий будет послано сообщение, примерно следующего содержания:

From: [email protected] Sent: Friday, December 16, Две тыщи одиннадцать 9:30 PM To: [email protected] Subject: SQL Server Job System: 'название_невыполненной_задачи' completed on \\SQL
JOB RUN:    'название_невыполненной_задачи' was run on 16 Декабря 2011 at 21:30:00 DURATION:   Нуль hours, Нуль minutes, Один seconds STATUS:     Failed MESSAGES:   The job failed.

  The Job was invoked by Schedule Семнадцать (название_невыполненной_задачи).  The last step to run was step Один (название_невыполненной_задачи).

В этом сообщении можно разобрать следующее:

  1. Когда и какое задание выполнялось (JOB RUN: 'название_невыполненной_задачи'was run on 16 Декабря 2011 at 21:30:00)
  2. Сколько времени выполнялось задание до того как нашлась ошибка (DURATION: Нуль hours, Нуль minutes, Один seconds)
  3. Итог выполнения (STATUS: Failed)
  4. Сообщение из журнала событий этого задания (MESSAGES:   The job failed.  The Job was invoked by Schedule Семнадцать (название_невыполненной_задачи).  The last step to run was step Один (название_невыполненной_задачи)), включающее в себя куцее описание ошибки

Резюме

Большая часть материала была скопирована со статьи (http://habrahabr.ru/blogs/mssql/132902/), за что создателю спасибо. Хотя планировал все сделать сам #image.jpg Более подробную информацию можно получить в документации по Database Mail от разработчиков в ссылках ниже.

Данная функция очень помогает в своевременном разрешении заморочек с обслуживанием, НО не избавляет от необходимости периодически читать логи сервера! Удачных для вас бэкапов!

Что еще почитать

Включение Database Mail в MS SQL Express - http://weblogs.sqlteam.com/mladenp/archive/1 Июля 2007/60245.aspx
Документация по Database Mail от разработчика - http://msdn.microsoft.com/ru-ru/library/ms175887.aspx

Похожие статьи

  • Настройка MS SQL Две тыщи 5 для 1С Предприятия

    Неплохого времени, гости и читатели блога k-max.name. На данный момент публикую небольшую мемори-записку о настройке Microsoft SQL Две тыщи 5 для 1С Предприятия. Думаю для других нужд использования MS SQL данная с...

  • Платформа групповой работы OBM

    V3.01 --> Платформа групповой работы OBM способна поменять разрозненные приложения используемые в организации. Это функциональное и обыденное решение, основанное на OpenSource продуктах.Программное о...

  • Защита электронной почты при помощи MailScanner

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

  • Установка AstBill

    V3.01 --> Часть статьи «Звездные счета» размещенной в февральском номере журнала ВзломщикВ AsteriskNOW функции учета и тарификации звонков развиты еще недостаточно, поэтому если требуется такая...

  • Система групповой работы Tine 2

    V3.01 --> На данный момент многие организации задумываются о необходимости внедрения системы групповой работы. Здесь особо интересны OpenSource решения. Далее рассмотрим Tine 2.0.

    Системы групповой работы позво...

Теги:
Рейтинг: +8 Голосов: 271 2618 просмотров
Комментарии (0)

Нет комментариев. Ваш будет первым!

Windows 7

Среда Windows 7 на первых порах кажется весьма непривычной для многих.

Windows 8

Если резюмировать все выступления Microsoft на конференции Build 2013.

Windows XP

Если Windows не может корректно завершить работу, в большинстве случаев это

Windows Vista

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