Настройка Database Mail в SQL Server 2008
Компонент Database Mail в SQL Server осуществляет отправку почтовых сообщений. Компонент можно настроить на отправку сообщений на электронную почту об успешном выполнении заданий и уведомлении об ошибках. Крайне полезный инструмент для автоматизации, который избавит вас от ежедневной ручной проверки SQL Сервера.
Мастер настройки Database Mail.
Настройка компонента Database Mail выполняется в Среде Microsoft SQL Server Management Studio. Раскрываем папку «Управление» и находим «Компонент Database Mail». Щелкаем по компоненту правой клавишей мыши и в контекстном меню выбираем пункт «Настроить компонент Database Mail«
Запустится мастер настройки компонента. При первом запуске необходимо выбрать первый пункт мастера «Установить компонент Database Mail…». Второй пунктом будем пользоваться, если необходимо изменить существующие учетные записи и профили.
Создаем новый профиль.
На этапе создания вводим Имя профиля и при необходимости добавляем описание. Нажимаем кнопку «Добавить» для создания учетной записи почтового сервера SMTP.
Добавляем учетную запись SMTP
Заполняем все необходимые поля. Обязательно указываем:
- Имя учетной записи;
- Адрес электронной почты;
- Имя сервера;
- Номер порта;
- Имя пользователя: вводится вместе с адресом домена, как почтовый адрес;
- пароль.
Дополнительные поля, которые не обязательны, но добавляют информативности:
- Описание: комментарий к учетной записи;
- Отображаемое имя: это имя отправителя, которое будет показано в сообщении. Для наглядности можно написать имя сервера, с которого пришло сообщение.
Если планируете использовать учетную запись сервера исходящей почты smtp.mail.ru обратите внимание на несколько важных пунктов:
- номер порта 587
- Для данного сервера требуется безопасное соединение (SSL)
Mail.ru и многие публичные почтовые серверы используют протокол шифрования, поэтому стандартный 25 порт не подходит. На сайте mail.ru в качестве порта для протокола шифрования указан 465, но если вы укажите этот порт, то сообщения отправляться не будут. А в журнале будет фиксироваться сообщение с ошибкой: «Почту не удалось доставить получателям из-за сбоя почтового сервера. (Отправка сообщения через учетную запись 1 (2020-01-11T09:39:07). Сообщение об исключении: Не удается послать сообщения на почтовый сервер. (Время ожидания операции истекло.).
После создания учетной записи почты, в профиль можно добавить еще несколько почтовых адресов и установить приоритет отправки сообщений.
Управление безопасностью профилей.
Следующим шагом настройки будет «Управление безопасностью профилей». Здесь созданный профиль можно указать в качестве открытого по умолчанию.
На вкладке «Личные профили» есть возможность указать отдельные профили для конкретного пользователя. В моем случае в этом нет необходимости.
Установка системных параметров
В установке системных параметров можно настроить файловые вложения к почтовым сообщениям и количество попыток отправки. Я оставлю параметры так как есть.
Завершение мастера настройки
На шаге «Завершения мастера настройке» будут показаны запланировнные действия. Жмем готово, закрываем отчет и переходим к отправке тестового сообщения.
Отправка тестового сообщения
В контекстном меню компонента Database Mail выбираем «Отправка тестового сообщения» указываем свой адрес электронной почты и жмем отправить.
Если сообщения пришло значит все сделано правильно и можно приступить к добавлению операторов, если нет — открываем журнал компонента Database Mail, наливаем чашку крепкого кофе и долго чешем репу.
Для получения на почту уведомления MS SQL Server об ошибке или успешном завершении задания нужно добавить операторов с электронными адресами, на которые будут приходить уведомления.
Добавление оператора MS SQL
Раскрываем объект «Агент SQL Server» и находим папку «Операторы«. Выбираем из меню пункт «Создать оператора«
Указываем имя и адрес почты на которые будут приходить уведомления от SQL Server. Жмем «ОК» и оператор создан.
Приступаем к настройке уведомлений задания.
Настройка уведомлений задания.
Открываем свойства выбранного задания SQL Server.
Переходим на страницу «Уведомления» отмечаем пункт «Электронная почта» и выбираем оператора. Указываем какой тип уведомлений хотим получать по почте.
3.7. Предупреждения MS Sql Server
Предупреждения (Alert или я еще люблю говорить Тревога) позволяют контролировать работу вашего сервера. Вы можете создавать тревоги на определенные события сервера (ошибки данных, ошибки запросов, ошибки или удачные выполнения работ и т.д.) и направлять сообщения определенным операторам. Когда мы создавали работы, то для них автоматически создаются тревоги, если указан оператор, который должен получать информацию об удачном или не удачном выполнении работы.
Благодаря тревогам, администратор может сидеть в нескольких тысячах километров от SQL сервера. Если произойдет внештатная ситуация, то администратор получит e-mail сообщение и сможет подключиться к серверу и исправить ошибку. Без тревоги, администратору пришлось бы постоянно контролировать работу сервера и наблюдать за большим количеством параметров.
Планировщики, как и работы, выполняются сервисом SQL Service Agent, поэтому он должен быть запущен, желательно, чтобы он запускался автоматически после загрузки ОС.
3.7.1. Создание сообщений
Для создания собственных сообщений (message) используется процедура SQL сервера sp_addmessage. В общем виде эта процедура выглядит следующим образом:
Параметров не так уж и много, поэтому давайте рассмотрим их, прежде чем напишем реальный пример:
- Номер (идентификатор) сообщения, который должен начинаться с 500001;
- Уровень критичности. К нему предъявляются такие же правила, как и у функции RAISERROR;
- Текст сообщения, максимальный размер которого 255 символов;
- Язык сообщения. По умолчанию используется нулевое значение и язык, установленный в системе;
- Нужно ли писать о событии в журнал сообщений Windows. Если в этом параметре указано true, то в журнал будет записано сообщение об ошибке. Если false, сообщение не обязательно будет записано в журнал, тут уже все зависит от того, как оно было сгенерировано;
- Если сообщение с указанным номером существует, то в этом параметре можно указать команду REPLACE. Это означает, что существующую ошибку с указанным номером надо заменить.
Давайте создадим свое сообщение:
Чуть позже мы увидим, как воспользоваться сообщениями.
Давайте рассмотрим, как можно удалять сообщения. Для этого используется процедура sp_dropmessage:
Процедуре передается два параметра: номер удаляемого сообщения и язык. Если язык не указан, то будут удалены сообщения для всех национальных языков, существующих в сообщении.
3.7.2. Создание предупреждения
Для создания предупреждения (alert) используется процедура sp_add_alert, которая выглядит следующим образом:
Рассмотрим доступные параметры этой процедуры:
- @name – имя тревоги, которое должно быть уникальным и по нему система будет в дальнейшем идентифицировать тревогу;
- @message_id – номер ошибки, на которую должно реагировать тревога. В MS SQL Server предопределено достаточно много ошибок, на которые вы можете создать тревоги. Чтобы увидеть их, просмотрите таблицу sysmessages в базу данных master:
В разделе 3.7.1 мы увидели, как создавать собственные сообщения ошибок.
- @severity – число от 1 до 25, определяющее уровень критичности торевоги. Если вы указали параметр @message_id, то параметр @severity должен быть равен нулю;
- @enabled – если параметр равен 1, то тревога является активной, иначе (если равно нулю) оно не будет генерироваться и операторы не получат уведомление;
- @delay_between_responses – задержка в секундах между событием и действием на это событие. В качестве действия может быть одно или более уведомлений на E-mail или пейджер оператора или выполнение определенной работы. По умолчанию задержки нет (значение 0) и действие произойдет сразу после генерации тревоги;
- @notification_message – в этом параметре вы можете задать дополнительный текст тревоги, которое будет добавлено к сообщению, отправляемому оператору;
- @include_event_description_in – параметр определяет, куда необходимо добавлять сообщение тревоги. В этом параметре можно указывать одно из следующих значений (или сумму):
- 0 – никуда;
- 1 – к e-mail сообщению;
- 2 – к сообщению на пейджер;
- 4 – к сообщению, отправляемому net send.
Например, если вы хотите, чтобы текст добавлялся к e-mail сообщению и к сообщению NET SEND, то необходимо указать число 5 (сумма чисел 1 и 4);
- @database_name – в этом параметре можно задать базу данных. Если этот параметр не задан, то сообщение будет генерироваться для всех баз данных;
- @job_id – позволяет задать идентификатор работы, которая должна выполняться в ответ на тревогу. Если этот параметр указан, то нельзя указывать @job_name;
- @job_name — позволяет задать имя работы, которая должна выполняться в ответ на тревогу. Если этот параметр указан, то нельзя указывать @job_id;
- @raise_snmp_trap – не используется;
- @performance_condition – тревоги могут создаваться для параметров производительности, например, генерация сообщения в случае превышения сервером загрузки в 90%. Если вы создаете такое сообщение, то в этом параметре вы можете указать параметр, условие и значение. В качестве параметра может использоваться объект производительности, счетчик производительности или имя экземпляра счетчика. В качестве условия могут быть знаки больше, меньше или равно. Значение – это числовое значение счетчика;
- @category_name – имя категории тревоги;
Процедура должна выполняться в базе данных msdb, потому что процедура принадлежит этой базе данных.
Давайте добавим собственное предупреждение или как уже много раз называл эту штуку — тревогу:
В данном примере мы создаем тревогу с названием ‘Тестовая тревога’, которая будет реагировать на сообщение с номером 60001. Сообщение с таким номером было создано нами в разделе 3.7.1.
Теперь посмотрим, как создать тревогу для уже существующих сообщений. В таблице sysmessages базы данных master я нашел сообщение с номером 9002, которое генерируется в случае, если файл журнала полный. Давайте рассмотрим, как с помощью тревоги и работы можно решить классическую задачу с увеличения файла базы данных и очисткой журнала.
Как мы уже знаем, файлы базы данных и файлы журналов могут увеличиваться бесконечно, но это далеко не всегда удобно. Многие администраторы хотят контролировать выделяемое сервером дисковое пространство, поэтому отказываются от автоматического увеличения. Для журнала транзакций можно не увеличивать размер файла, а уменьшать его очисткой. Получается, что наша задача отловить создать тревогу, которая будет реагировать на переполнение журнала и запускать работу очистки журнала. Это можно сделать следующим образом:
Теперь создадим работу, которая будет очищать журнал. Да, мы еще не рассматривали резервное копирование, которое необходимо для решения данной задачи и данная тема будет рассмотрена в 4-й главе. Если вы не знакомы с этими командами, то не обращайте внимания на операторы Transact-SQL. Вернитесь к ним после прочтения 4-й главы. Сейчас наша задача создать работу, а заодно лишний раз потренироваться и закрепить пройденный материал на практике. Итак, работу и два шага выполняющих резервирование и обрезание журнала вы можете увидеть в листинге 3.9.
Листинг 3.9. Создание работы из 2-х шагов резервирования журнала
Сообщение 9002 является критичным и генерируется, когда журнал уже полный и сервер не смог сохранить в нем информацию о транзакции. Если нет автоматического увеличения, то серверу негде будет хранить информацию о транзакции и такая транзакция откатывается, а значит, данные не будут сохранены. Так будет со всеми последующими транзакциями, пока в журнале не появиться свободное пространство, поэтому данный метод увеличения журнала нельзя назвать эффективным, потому что с момента переполнения журнала до момента освобождения пространства в журнале сервер будет доступен только для чтения. Именно поэтому, освобождением должна заниматься работа, которая должна выполняться мгновенно, без задержек и не ждите, пока в работу сервера не вмешается администратор, который в этот момент может спать.
Файл данных просто так обрезать не получиться. Вы же не можете просто так удалить все данные из таблиц и начать их заполнять с нуля. В этом случае, увеличение должно происходить, но все же может быть работа, которая будет делать увеличения с помощью Transact-SQL запроса и выделять пространства там, где прописано в сценарии администратором.
Обновление
Для обновления тревоги используется процедура sp_update_alert. У этой процедуры такие же параметры, как и у процедуры создания тревоги sp_add_alert. Общий вид достаточно большой, потому что содержит достаточно много параметров, и ради экономии места мы не будем рассматривать общий вид.
Для удаления тревоги используется процедура sp_delete_alert, которой нужно передать в качестве параметра только имя удаляемой тревоги, например, так:
Получение информации
Для получения информации о тревогах, используется процедура sp_help_alert, которая выглядит следующим образом:
У этой процедуры четыре параметра и все они являются не обязательными. Давайте рассмотрим каждый параметр:
- @alert_name – имя сообщения, информацию о котором, необходимо получить;
- @order_by – отсортировать список по определенному параметру;
- @alert_id – идентификатор сообщения, информацию которого необходимо определить;
- @category_name – имя категории.
Если выполнить процедуру sp_help_alert без параметров, то результатом будут все тревоги SQL сервера:
Результатом будет таблица, состоящая из полей, которые идентичны по имени и назначению параметрам, которые мы рассматривали у процедуры добавления тревоги sp_add_alert.
Отобразим тот же список, но отсортируем результирующий список по параметру message_id:
3.7.3. Создание уведомления
У нас есть тревога и есть сообщение. Для создания уведомления необходимо связать эти два объекта, чтобы в ответ на тревогу генерировалось сообщение и направлялось оператору. Такую связь можно назвать уведомлением и для его создания используется процедура sp_add_notification, которая выглядит следующим образом:
Здесь у нас три параметра:
- @alert_name – имя тревоги;
- @operator_name – имя оператора, который должен получать уведомление;
- @notification_message – метод, которым оператор будет получать уведомления об ошибке:
- 1 – на e-mail адрес;
- 2 – на пейджер;
- 4 – командой NET SEND.
Может быть несколько методов получения уведомления. Для этого в параметре @notification_message нужно указать сумму значений методов. Например, если нужно информировать оператора по e-mail и на пейджер, то в параметре @notification_message указываем значение 3 (1+2).
Примеры использования
Прежде чем создавать уведомление добавим оператора:
Чтобы наглядно увидеть результат работы, я задал IP адрес своего компьютера, чтобы получать NET SEND сообщение.
Следующий пример показывает, как создать уведомление, которое будет получать администратор для тревоги, созданной в разделе 3.7.2:
Одна тревога может направлять сообщения нескольким операторам. Следующий пример добавляет уведомление еще одного оператора для тревоги с именем ‘Тестовая тревога’:
Вот теперь вы можете увидеть результат работы на примере. Для этого необходимо сгенерировать сообщение с помощью функции RAISERROR (более подробно о RAISERROR мы поговорим в разделе 4.3.2):
В ответ на это, я получил NET SEND сообщение.
Если вы используете NET SEND сообщения, то убедитесь, что в вашей ОС запущен сервис Messenger, без которого отправка сообщения будет невозможной.
Обновление
Для обновления уведомления используется процедура sp_update_notification, которая выглядит следующим образом:
Параметры такие же, как и при создании уведомления sp_add_notification, только параметр @alert_name определяет тревогу, которую надо обновить, а параметр @operator_name определяет оператора. С помощью параметра и @notification_method можно задать новый метод уведомления.
Удаление
Для удаления уведомления используется процедура sp_delete_notification, которая в общем виде выглядит следующим образом:
Параметр @alert_name определяет тревогу, которую надо удалить, а параметр @operator_name определяет удаляемого оператора.
Как настроить и запустить Microsoft SQL Server
Порой так хочется привести свои мысли в порядок, разложить их по полочкам. А еще лучше в алфавитной и тематической последовательности, чтобы, наконец, наступила ясность мышления. Теперь представьте, какой бы хаос творился в « электронных мозгах » любого компьютера без четкой структуризации всех данных и Microsoft SQL Server :
MS SQL Server
Данный программный продукт представляет собой систему управления базами данных ( СУБД ) реляционного типа, разработанную корпорацией Microsoft . Для манипуляции данными используется специально разработанный язык Transact-SQL . Команды языка для выборки и модификации базы данных построены на основе структурированных запросов:
Реляционные базы данных построены на взаимосвязи всех структурных элементов, в том числе и за счет их вложенности. Реляционные базы данных имеют встроенную поддержку наиболее распространенных типов данных. Благодаря этому в SQL Server интегрирована поддержка программного структурирования данных с помощью триггеров и хранимых процедур.
Обзор возможностей MS SQL Server
СУБД является частью длинной цепочки специализированного программного обеспечения, которое корпорация Microsoft создала для разработчиков. А это значит, что все звенья этой цепи ( приложения ) глубоко интегрированы между собой.
То есть их инструментарий легко взаимодействует между собой, что во многом упрощает процесс разработки и написания программного кода. Примером такой взаимосвязи является среда программирования MS Visual Studio . В ее инсталляционный пакет уже входит SQL Server Express Edition .
Конечно, это не единственная популярная СУБД на мировом рынке. Но именно она является более приемлемой для компьютеров, работающих под управлением Windows, за счет своей направленности именно на эту операционную систему. И не только из-за этого.
Преимущества MS SQL Server :
- Обладает высокой степенью производительности и отказоустойчивости;
- Является многопользовательской СУБД и работает по принципу « клиент-сервер »;
Клиентская часть системы поддерживает создание пользовательских запросов и их отправку для обработки на сервер.
Эволюция SQL Server
Особенности этой популярной СУБД легче всего прослеживаются при рассмотрении истории эволюции всех ее версий. Более подробно мы остановимся лишь на тех выпусках, в которые разработчики вносили весомые и кардинальные изменения:
- Microsoft SQL Server 1.0 – вышел еще в 1990 году. Уже тогда эксперты отмечали высокую скорость обработки данных, демонстрируемую даже при максимальной нагрузке в многопользовательском режиме работы;
- SQL Server 6.0 – вышел в 1995 году. В этой версии впервые в мире была реализована поддержка курсоров и репликации данных;
- SQL Server 2000 – в этой версии сервер получил полностью новый движок. Большая часть изменений коснулась лишь пользовательской стороны приложения;
- SQL Server 2005 – увеличилась масштабируемость СУБД , во многом упростился процесс управления и администрирования. Был внедрен новый API для поддержки программной платформы .NET ;
- Последующие выпуски – были направлены на развитие взаимодействия СУБД на уровне облачных технологий и средств бизнес-аналитики.
В базовый комплект системы входит несколько утилит для настройки SQL Server . К ним относятся:
- SQL Server Configuration Manager :
Диспетчер конфигурации. Позволяет управлять всеми сетевыми настройками и службами сервера базы данных. Используется для настройки SQL Server внутри сети.
- SQL Server Error and Usage Reporting :
Утилита служит для настройки отправки отчетов об ошибках в службу поддержки Microsoft .
- SQL Server Surface Area Configuration
Используется для оптимизации работы сервера базы данных. То есть вы можете настроить функционирование SQL Server под свои нужды, включив или отключив определенные возможности и компоненты СУБД .
Набор утилит, входящих в Microsoft SQL Server , может отличаться в зависимости от версии и редакции программного пакета. Например, в версии 2008 года вы не найдете SQL Server Surface Area Configuration .
Запуск Microsoft SQL Server
Для примера будет использована версия сервера баз данных выпуска 2005 года. Запуск сервера можно произвести несколькими способами:
- Через утилиту SQL Server Configuration Manager . В окне приложения слева выбираем « SQL Server 2005 Services », а справа — нужный нам экземпляр сервера БД . Отмечаем его и в подменю правой кнопки мыши выбираем « Start ».
- С помощью среды SQL Server Management Studio Express . Она не входит в инсталляционный пакет редакции Express . Поэтому ее нужно скачивать отдельно с официального сайта Microsoft .
Для запуска сервера баз данных запускаем приложение. В диалоговом окне « Соединение с сервером » в поле « Имя сервера » выбираем нужный нам экземпляр. В поле « Проверка подлинности » оставляем значение « Проверка подлинности Windows ». И нажимаем на кнопку « Соединить »:
Основы администрирования SQL Server
Перед тем, как запустить MS SQL Server , нужно кратко ознакомиться с основными возможностями его настройки и администрирования. Начнем с более детального обзора нескольких утилит из состава СУБД :
- SQL Server Surface Area Configuration – сюда следует обращаться, если нужно включить или отключить какую-либо возможность сервера баз данных. Внизу окна находятся два пункта: первый отвечает за сетевые параметры, а во втором можно активировать выключенную по умолчанию службу или функцию. Например, включить интеграцию с платформой .NET через запросы T-SQL :
- SQL Server Management Studio – является основным средством администрирования. В этой среде реализована возможность настройки сервера и баз данных, как через интерфейс приложения, так и с помощью запросов на языке T-SQL .
Основные настройки можно осуществить через « Обозреватель объектов », отображающий слева в окне приложения все основные элементы сервера в виде древовидного списка. Самой важной является вкладка « Безопасность ». Через нее можно настроить права и роли пользователей и администраторов для основного сервера, или отдельно для каждой базы данных:
Основная часть настроек сервера баз данных доступна в окне « Свойства сервера »:
Как видите, Microsoft SQL Server является настолько мощным средством для структуризации, хранения и модификации данных, что на его изучение потребуется много времени. А в статье мы лишь слегка углубились в основы сервера SQL .
Получение уведомлений ms sql сервера в с builder
В этом разделе описывается настройка в агенте SQL Server использования компонента Database Mail для отправки уведомлений и предупреждений в SQL Server 2020 с помощью среды SQL Server Management Studio. Сведения о включении и настройке компонента Database Mail см. в разделе Настройка компонента Database Mail. Пример использования Transact-SQL см. в разделе Создание профиля компонента Database Mail.
Перед началом работы выполните следующие действия.
Настройка агента SQL Server на использование компонента Database Mail с помощью среды SQL Server Management Studio
Задачи дополнительной работы
Предварительные требования
Создать профиль компонента Database Mail для учетной записи агента SQL Server, чтобы сделать пользователя членом роли DatabaseMailUserRole в базе данных msdb.
Сделать профиль используемым по умолчанию в базе данных msdb .
Безопасность
Разрешения
Пользователь, создающий учетные записи профилей и выполняющий хранимые процедуры, должен быть членом предопределенной роли сервера sysadmin.
Настройка агента SQL Server на использование компонента Database Mail
Разверните экземпляр сервера SQL Server в обозревателе объектов.
Щелкните правой кнопкой мыши агент SQL Server, затем выберите Свойства.
Нажмите Система предупреждений.
Выберите Включить почтовый профиль.
В списке Почтовая система выберите Компонент Database Mail.
В Списке почтовых профилейвыберите почтовый профиль для компонента Database Mail.
Перезапустите агент SQL Server.
Следующие задачи необходимо выполнить для завершения конфигурации агента на отправку предупреждений и уведомлений.
Предупреждения могут быть настроены на уведомление оператора о возникновении в базе данных определенного события или о формировании в операционной системе определенных условий.
Операторы — это псевдонимы для людей или групп, которые могут получать электронные уведомления.
Получение уведомлений ms sql сервера в с builder
Обновлено: November 1, 2012
Применимо к: Microsoft Dynamics AX 2012 R3, Microsoft Dynamics AX 2012 R2, Microsoft Dynamics AX 2012 Feature Pack, Microsoft Dynamics AX 2012
В этом разделе описывается создание пользовательского отчета с OLAP-кубом в качестве источника данных. Для выполнения описанных в этом разделе процедур требуется доступ к Report Builder, являющемуся компонентом Службы Microsoft SQL Server Reporting Services.
Дополнительные сведения о Report Builder и осуществлении доступа к нему см. в документации по Сервер SQL.
Если Службы Reporting Services выполняется в штатном режиме, выполните следующие действия, чтобы открыть Report Builder с веб-сайта диспетчера отчетов.
Перейдите на веб-сайт диспетчера отчетов. По умолчанию URL-адрес имеет следующий вид: http://[SSRSServerName]:80/Reports.
Нажмите кнопку Report Builder .
Открывается Report Builder, в котором отображается мастер «Приступая к работе», с помощью которого можно создать отчет. Сведения о создании отчета с использованием мастера «Приступая к работе» см. в следующем разделе этой темы.
Если Службы Reporting Services выполняется в режиме интеграции с SharePoint, выполните следующие действия, чтобы открыть Report Builder с сайта SharePoint.
Перейдите на веб-сайт SharePoint.
Перейдите к библиотеке документов, которая содержит отчеты Microsoft Dynamics AX.
Перейдите на вкладку Документы .
Щелкните Создать документ > Отчет Report Builder .
Примечание |
---|