Ms sql сообщение о выполнении задания
Обновлено: 30.06.2024
Часто возникает потребность каким-либо способом сообщать администраторам о проблемах, возникших на сервере. Причем уведомления в большинстве своем делятся на 2 типа:
1) реального времени, т. е. те, которые должны приходить сразу при возникновении проблемы
2) отложенного времени, т. е. те, которые приходят через достаточно продолжительное время (более 1 часа) после возникновения проблемы.
В моей работе было необходимо расширить функционал обычного Database Mail.
В данной статье будет рассмотрен пример того, как формировать уведомления в HTML-таблицы с последующей отправкой по почте администраторам.
Решение
1. Настроим Database Mail
2. Создадим таблицу для получателей:
3. Создадим таблицу для адресов получателей:
Эта информация нужна для истории. Но также данную таблицу нужно чистить от очень старых данных (например, старее месяца).
7. Создадим хранимую процедуру, которая возвращает строку из адресов по коду или основному почтовому адресу получателя:
8. Создадим необходимые функции для работы с датой и временем:
11. Создадим два задания в Агенте (первое-для уведомлений реального времени (расписание-1 раз в минуту), второе-для простых уведомлений (расписание-1 раз в час)). В код задания нужно добавить следующее:
Приведем пример регистрации ошибки:
Здесь используется хранимая процедура srv.KillFullOldConnect
Результат
В данной статье был рассмотрен пример расширения функционала обычного Database Mail, а также разобран пример как формировать уведомления в HTML-таблицы с последующей отправкой по почте администраторам. Данный подход позволяет уведомлять администраторов о разных проблемах в реальном времени или через какое-то определенное время. Таким образом, данный подход позволяет минимизировать в будущем наступления критической проблемы и остановки работы СУБД и сервера, что в свою очередь защищает производство от остановки рабочих процессов.
В Управляемом экземпляре Azure SQL в настоящее время поддерживается большинство функций агента SQL Server (но не все). Подробные сведения см. в статье Различия в T-SQL между Управляемым экземпляром SQL Azure и SQL Server.
В этой статье описывается, как настроить параметры уведомления в SQL Server с помощью среды SQL Server Management Studio, Transact-SQL или управляющих объектов SQL Server, чтобы агент Microsoft SQL Server мог отправлять операторам уведомления о заданиях.
Перед началом
безопасность
Использование среды SQL Server Management Studio
Уведомление оператора о состоянии задания
В обозревателе объектов подключитесь к экземпляру компонента Компонент SQL Server Database Engineи разверните его.
Разверните узел Агент SQL Server, выберите раздел Задания, щелкните правой кнопкой мыши задание, которое нужно изменить, и затем выберите Свойства.
В окне Свойства задания перейдите на страницу Уведомления .
Если нужно оповещать оператора по электронной почте, установите флажок Электронная почта, выберите из списка оператора, а затем выберите одно из следующих значений:
При успешном завершении задания известить оператора о том, что задание удачно завершено.
При ошибке задания известить оператора о неуспешном завершении задания.
При завершении задания известить оператора независимо от состояния выполнения.
Если необходимо оповещать оператора по пейджеру, отметьте Пейджер, выберите из списка оператора, а затем выберите один из следующих вариантов:
При успешном завершении задания известить оператора о том, что задание удачно завершено.
При ошибке задания известить оператора о неуспешном завершении задания.
При завершении задания известить оператора независимо от состояния выполнения.
Если нужно оповещать оператора через net send, установите флажок Команда net send, выберите из списка оператора, а затем выберите один из следующих вариантов:
При успешном завершении задания известить оператора о том, что задание удачно завершено.
При ошибке задания известить оператора о неуспешном завершении задания.
При завершении задания известить оператора независимо от состояния выполнения.
Использование Transact-SQL
Уведомление оператора о состоянии задания
В обозревателе объектов подключитесь к экземпляру компонента Компонент Database Engine.
На стандартной панели выберите пункт Создать запрос.
Скопируйте следующий пример в окно запроса и нажмите кнопку Выполнить.
Использование управляющих объектов SQL Server
Уведомление оператора о состоянии задания
Для оперативного реагирования необходимо своевременно получать информацию об ошибках выполнения заданий. Для этого в SQL Server существует специальный механизм оповещений. В этой статье мы рассмотрим как его настроить.
Механизм оповещений
Настройку оповещений можно разделить на 4 этапа:
- Настройка профиля компонента Database Mail
- Создание оператора оповещений и настройка почты агента SQL Server
- Включение триггеров и задач оповещений
- Проверка работоспособности
Настройка профиля компоненты Database Mail
Компонент DatabaseMail в обозревателе объектов
Мастер настройки компонента Database Mail Создание нового профиля компонента Database Mail
Настройка безопасности профиля Database Mail
Отправка тестового письма при помощи компоненты Database Mail
Если все сделано правильно, тогда в ближайшее время на почту будет доставлено тестовое письмо.
Добавление оператора оповещений
Операторы в дереве обозревателя объектов
Установка свойств оператора
На этом настройка оператора завершена, перейдем к следующему шагу.
Настройка почты агента SQL Server
Агент SQL Server в дереве обозревателя объектов
Система предупреждений агента SQL Server
Включение триггеров и задач оповещения
Настройка свойств Задания
Проверка работоспособности оповещений
Уведомления компонента Database Mail
Если не пришло ни одного письма тогда, возможно:
Если не пришло только письмо с результатом выполнения задания: проверьте что почта SQL Server’а настроена в соответствии с вышеизложенным.
MS SQL SERVER настройка уведомлений по почте
После настройки и введения в эксплуатацию MS SQL сервера обязательно потребуется настроить ряд регламентных заданий. Эти задания требуются для автоматического обслуживания развёрнутых баз (проверка баз данных, их резервное копирование, обслуживание индексов и т.д.). При долгосрочном использовании баз могут возникнуть ситуации, когда регламентные задачи могут отрабатываться с ошибками (нехватка места для резервных копий, критические ошибки в базах данных и другие).
Для оперативного оповещения об ошибках выполнения регламентных заданий MS SQL можно настроить специальный компонент оповещения Database Mail.
Настройка Компоненты Database Mail
Вначале необходимо настроить профиль Database Mail. Для этого нужно запустить мастер настройки.
Далее нужно задать имя профиля и добавить учётную запись SMTP (адрес и настройки сервера отправки писем).
Следующий шаг мастера изменений не требует.
После создания профиля желательно выполнить проверку, отправив тестовое письмо.
Добавление оператора оповещений
Теперь требуется создать Операторов (пользователей, которым будут высылаться оповещения).
Для оператора достаточно указать Имя и адрес почты (куда будут высылаться оповещения)
Теперь нужно активировать профиль компонента Database Mail в настройках агента SQL.
Создание задач оповещения
Читайте также: