В продолжении опубликованной заметки где я для себя показал, как осуществлять обслуживание баз (ы) данных теперь я хочу научиться, как настроить оповещение/уведомление о результатах работы каждого этапа входящего в план обслуживания.
Необходимые действия:
- Развернут сервер базы данных ms sql server 2008 r2
- Развернута база данных из бекапа или создана
- Настроен план обслуживания
- Создан почтовый ящик от имени кого будет происходить рассылка о результатах работы:
E-mail: mssql-plan@nemdom.ru
Pass: 712mbddr@
Приступаю к воплощению данной задачи:
Подключаюсь к серверу MSSQL и запускаю оснастку Microsoft SQL Server Management Studio:
Start — All Programs — Microsoft SQL Server 2008 R2 — SQL Server Management Studio, авторизуюсь: (local)(SQL Server 10.50.1600 — NEMDOMB\aollo) — после обозначаю оператора (т. е. Контактное лицо или почтовая группа) на имя которого будут приходить все уведомления от MS SQL
Перехожу элемент управления : SQL Server Agent — Operators и через правый клик вызываю меню New Operator…
Name: (Имя) указываю имя хоста текущей системы srv-host
Enabled: ставлю галочку
E-mail name: указываю имя для электронной почты (уведомление на кого) alexander.ollo@nemdom.ru
Pager on duty schedule (Расписание) ничего не отмечаю.
В результате получается созданный оператор:
Теперь в созданный ранее план LocalPlan по аналогии с другими задачами добавлю еще одну:
(local) (SQL Server 10.50.1600 — NEMDOMB\aollo) — Management — Maintenance Plans — LocalPlan (щелкаю по нему два раза левой кнопкой мыши чтобы открыть)
именуется данная задача, как Notify Operator Task (Уведомление оператора) а после настраиваю связь с задачами History Cleanup Task & Maintenance Cleanup Task, т. е. Когда данные задачи отработают в случае успеха запускается задача по уведомлению оператора (зеленая стрелка соединения). Открываем свойства задания Notify Operator Task и приводим настройки к виду:
В итоге связь между заданиями выглядит так:
Но так можно было заметить что данное задание отработает в случае успешного завершения ранее отработавших, а что делать если это будет не так.
Для этого открываем свойства задания:
(local) (SQL Server 10.50.1600 — NEMDOMB\aollo) — SQL Server Agent — Jobs — нахожу свое задание (именуется также как и созданный ранее план обслуживания), т. е. LocalPlan.Subplan_1 — после перехожу на Notifications (Уведомления)
Сейчас уведомление настроено, что если задание отрабатывает с ошибкой, то запись об этом фиксируется в Windows Журнале приложения (Windows Application)
Write to the Windows Applications event log: When the job fails
дополняю:
E-mail: выбираю оператора srv-host и свойства When the job fails в конечном результате должно получиться вот так:
А чтобы добавить уведомление и об успешном завершении просто изменяю на :
- When the job fails — отправлять предупреждение только тогда, когда при выполнении задания возникла ошибка. Этот вариант выбирается по умолчанию;
- When the job succeeds — предупреждение будет отправляться только при успешном выполнении задания;
- When the job completes — предупреждение будет отправляться в любом случае;
Либо же создать еще одно задание, по аналогии с уже имеющимся, но уведомление будет приходить и в случае положительного исполнения. Данное рассмотрение можно и не настраивать, как я убедился в этом позже.
SQL Server Agent — Jobs — New Job — именую его LocalPlan.Subplan_2
General:
Name: LocalPlan.Subplan_2
Owner: NEMDOMB\aollo
Category: Database Maintenance
Steps: – New –
Step name: Subplan_2
Type: SQL Server Integration Services Package
Run as: SQL Server Agent Service Account
Package source: SQL Server
Server: (local)
Log on to the server: Use Windows Authentication
Package: \Maintenance Plans\LocalPlan
Schedules — New
Name: LocalPlan.Subplan_2
а все остальные поля по аналогии с планом 1
Notifications:
Email: srv-host : When the job completes
Далее нужно научить SQL агент работать в роли MTA агента, а то как будет происходить аутентификация на почтовом сервере:
(local) (SQL Server 10.50.1600 — NEMDOMB\aollo) — Management (Управление) — Database Mail и через правый клик мышью вызываем Configure Database Mail (Настроить компонент Database Mail), Next – выбираю: Set up Database Mail by performing the following tasks, Next — на запрос:
The Database Mail feature is not available. Would you like to enable this feature? Отвечаю Yes и следом запускаем мастер настройки профиля:
Profile name: srv-host
Description: MSSQL Server for srv-host
Настраиваю SMTP account — Add
Нажимаю OK, после меня перебрасывает в настройки профиля, где также нажимаю Next
В следующем окне установим профиль по умолчанию и сделаем его открытым.
На следующем окне (Configure System Parameters) настроен можно ничего не изменять, а оставить все по дефолту и далее на окне результирующих настроек нажимаем Finish
После того, как профиль настроен его надо проверить. Для этого переходим в SQL Management в Database Mail и через правый клик вызываем меню: Send Test E-mail…
и через некоторое малое время на почту приходит тестового сообщение:
Отлично теперь переходим в свойства SQL Server Agent оснастки SQL Server Management для активации почтового профиля созданного выше.
(local) (SQL Server 10.50.1600 — NEMDOMB\aollo) — SQL Server Agent — Properties — Alert System
На этом можно завершить настройку оповещений на email. Теперь после выполнения регламентного задания на почту будут приходить письма с результатами выполнения планов обслуживания.
Проверяю что в ходе работы план обслуживания LocalPlan придет уведомление, запустив предварительно вручную план LocalPlan:
(local) (SQL Server 10.50.1600 — NEMDOMB\aollo) — Management — Maintenance Plans — LocalPlan через правый клик Execute и ожидаем завершения или ошибки:
Но вот стандартного сообщения что бекап завершен мне явно не достаточно
Мне нужно чтобы все выполняемые действия (т. е. Отчет) были отправлены на почту, для этого открываем/переходим в оснастке SQL Server Management Studio:
(local) (SQL Server 10.50.1600 — NEMDOMB\aollo) — Management — Maintenance Plans — выбираю свой план LocalPlan и нажимаю вот здесь для вызова настроек Reporting and Logging
По умолчанию отчет о работе плана сохраняется в каталог:
C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Log
изменяю дефолтные значения:
Generate a text file report: отмечаю галочкой
Create a new file: Оставляю данный путь каким он и был
Send report to an email recipient: отмечаю галочкой
Agent operator: указываю srv-host
Logging: (Что включать в лог)
Log extended information: отмечаю галочкой
Отлично, а теперь снова запускаю в ручном режиме план обслуживания и уже теперь на почту приходит более полный информативный отчет
и отчет точно такой же как и ранее что задача отработала.
Для уменьшения выводимой информации в лог советую снять галочку расширенное логирование (Log extended information:), тогда отчет будет конкретным и по существу с указанием каждого отработанного задания в плане.
Microsoft(R) Server Maintenance Utility (Unicode) Version 10.50.1600 Report was generated on "SRV-HOST". Maintenance Plan: LocalPlan Duration: 00:13:19 Status: Succeeded. Details: Execute T-SQL Statement Task (SRV-HOST) Task start: 2015-11-24T14:47:16. Task end: 2015-11-24T14:47:16. Success Check Database Integrity Task (SRV-HOST) Task start: 2015-11-24T14:47:17. Task end: 2015-11-24T14:49:22. Success Rebuild Index Task (SRV-HOST) Task start: 2015-11-24T14:52:31. Task end: 2015-11-24T14:55:50. Success Update Statistics Task (SRV-HOST) Task start: 2015-11-24T14:56:09. Task end: 2015-11-24T14:59:11. Success Back Up Database Task (SRV-HOST) Task start: 2015-11-24T14:59:11. Task end: 2015-11-24T15:00:35. Success History Cleanup Task (SRV-HOST) Task start: 2015-11-24T15:00:35. Task end: 2015-11-24T15:00:35. Success Maintenance Cleanup Task (SRV-HOST) Task start: 2015-11-24T15:00:35. Task end: 2015-11-24T15:00:35. Success Notify Operator Task (SRV-HOST) Task start: 2015-11-24T15:00:35. Task end: 2015-11-24T15:00:36. Success
Отлично это мне и нужно было, но вот допустим в тело письма не помещается весь вывод, как быть, можно обратиться к свойствам SQL Server Agent и переопределить количество строк формируемых на лог:
SQL Server Agent — Properties — History, параметр по умолчанию:
- Maximum job history log size (in rows) = 1000
Теперь когда я для себя уяснил как настроить уведомление о работе запланированного плана обслуживания будь то положительный или отрицательный исход могу смело завершить данную заметку. Все что меня интересовало и все что я не знал до этого момента теперь запечатлено в виде пошаговой заметки и пригодится мне в дальнейшем. На этом я прощаюсь, до встречи с уважением автор блога — ekzorchik.