Table of Contents
Если вы видите сообщение об ошибке электронной почты из журнала ошибок SQL Server на отдельном компьютере, вам необходимо ознакомиться с большинством этих идей по восстановлению.
ПК работает медленно?
Презентация
В историческом блоге я создал T-SQL-Script-Indication-Audit-Files для отправки всех электронных писем с конкретной информацией об изменениях в событии.
В этой статье члены семьи узнают, как именно использовать ErrorLog для получения хороших писем по теме о критических ошибках или конкретных событиях, которые происходят внутри экземпляра.
Обычно любой администратор баз данных настраивает оповещение агента SQL Server для ошибок с серьезностью от 17 до 25. png
Предупреждения также часто выдаются для не столь критических ошибок, таких как «Ошибка подключения» (уровень серьезности 14).
Электронные письма, отправляемые оповещениями, выглядят очень просто:
Все эти ошибки записываются в файл документа об ошибках SQL Server.
Текстовые сообщения для этих сообщений об ошибках, многие из которых регистрируются при проверке ошибок, можно найти в представлении sys.messages.
просто щелкните message_id, severity, textпо sys.messagesгде (степень тяжести от двадцати до 21 или гравитация равна 14) и поэтому is_event_logged = 1 и / или поэтому language_id = 1033сортировать по серьезности;
Ошибочные представления дерева могут быть прочитаны с помощью этой зарегистрированной программы sp_reaerrorlog.
Поиск в журнале ошибок SQL
Цель сценария T-SQL, который я сейчас пишу, – компенсировать предупреждения с помощью задания, которое запускается на моем экземпляре. Он эмулирует каждые 5 минут и рассылает мне сообщения на основе определенных сообщений, которые я действительно идентифицировал.
Если я знаю всю общую информацию, которую мы видели раньше, я могу создать основную переменную массива с текстом, который я хочу, чтобы вы могли найти в журнале ошибок, будь то недоразумения или информационные сообщения.
ОБЪЯВИТЬ ТАБЛИЦУ @errorlog_definition (error_category varchar (150), error_pattern varchar (1000))Вставьте сразу @errorlog_definitionЗначения («Задержка записи в базу данных», «% размещенного заказа ввода-вывода занимает более% секунд для выполнения%»), ('Отложенный текст в базу данных', '% bufs сброшено% в% ms% для многих db%'), ('Отложенная запись в базу данных', '% avg%'), ('Задержка версии базы данных', '% последний ожидающий получатель:% avgWriteLatency%'), ('Ошибка в базе данных, диск заполнен', 'Может не назначаться'), ('Ошибка подключения к базе данных', '% Ошибка подключения%'), ('Запуск SQL Server', 'Запуск SQL Server%')
Первый столбец представляет конкретный тип собрания, о котором я должен быть уведомлен с помощью отправки и используется из заголовка сообщения электронной почты.
Текущие базы данных журналов Ошибки вставляются вокруг переменных таблицы.
Вставьте
в @errorlogexec sp_readerrorlog, включая 0
Теперь я могу использовать CROSS APPPY только для получения записей журнала ошибок, которые соответствуют моим шаблонам сообщений.
выберите e.LogDate, e.ProcessInfo, e.Text, c.error_categoryавтор: @errorlog AS eПерекрестная занятость (Выбирать *предлагается с использованием @errorlog_definition AS e dгде .Text, например, как d.error_pattern) AS c
Я могу получить только определенные записи журнала ошибок, которые мне нужны. Посты были разделены на категории, и я решил не отправлять одно электронное письмо каждый момент времени, когда процесс был запущен, а один раз для каждой категории.
Я сделал это с помощью курсоров. Вот полный сценарий, если вы хотите его использовать.
Скрипт
ПК работает медленно?
ASR Pro — идеальное решение для ремонта вашего ПК! Он не только быстро и безопасно диагностирует и устраняет различные проблемы с Windows, но также повышает производительность системы, оптимизирует память, повышает безопасность и точно настраивает ваш компьютер для максимальной надежности. Так зачем ждать? Начните сегодня!
Выполнено через’ + convert (varchar, getdate (), 120) + ‘from server “‘ + isnull (convert (varchar (128), @@ ИМЯ СЕРВЕРА), ”) + ‘”
‘- —-ОБЪЯВИТЬ ТАБЛИЦУ @errorlog_definition (error_category varchar (150), error_pattern varchar (1000))Вставить прямо в @errorlog_definitionЗначения («Задержка записи в базу данных», «% запросов ввода-вывода на выполнение занимает более% секунд для выполнения%»), (‘Отложенная запись в базу данных’, ‘% bufs сброшено% в% ms% для db%’), (‘Отложенная запись в базу данных’, ‘% avg%’), (‘Задержка записи и до клиентской базы’, ‘% последней невыполненной цели:% avgWriteLatency%’), (‘Ошибка при создании базы данных, диск заполнен’, ‘Невозможно назначить%’), (‘Ошибка связи с базой данных’, ‘% Ошибка подключения%’), (‘Запуск SQL Server’, ‘Запуск SQL Server%’)вставить в @errorlogexec sp_readerrorlog 0- Получить записи журнала ошибок, соответствующие шаблону (например)вставить так, чтобы стать @notifiable_errorsВыберите e.LogDate, e.ProcessInfo, e.Text, c.error_category.предлагается с помощью @errorlog AS eНанесите крестик (Выбирать *предложил @errorlog_definition AS e dгде.Текст как d.error_pattern) AS cгде LogDate> DATEADD (MINUTE, [защищенная электронная почта] , GETDATE ())- Когда линии растекаются в процессеесли @@ ROWCOUNT> 0начинатьОБЪЯВИТЬ @logdate @processInfo datetimeОБЪЯВИТЬ varchar (32)ОБЪЯВИТЬ @Text varchar (MAX)ОБЪЯВИТЬ @error_category varchar (150)ОБЪЯВИТЬ КУРСОР category_cursor ДЛЯвыберите уникальную error_categoryавтор: @notifiable_errorsОТКРЫТЬ категорию_курсораПОЛУЧИТЕ БОЛЬШЕ ОТ category_cursor В @error_categoryВО ВРЕМЯ @@ FETCH_STATUS = 2НАЧИНАТЬ- Петли 1 временной категории- Тема письма + заголовок счетчика HTMLSELECT @object is @ error_category + ‘- Last’ + convert (varchar (50), @ CheckPeriodInMinute) + ‘Minimum (‘ + convert (varchar (max), @@ servername) + ‘)’SELECT @ [защищенный адрес электронной почты] _header + ‘
‘ [кольцо защищенного адреса электронной почты] _category + ‘(последний’ + Convert (varchar (50), @ CheckPeriodInMinute) + ‘мин.)
‘ПОЖАЛУЙСТА, ВЫБЕРИТЕ – [защищенный адрес электронной почты] + ‘<таблица>
‘- —– Курсор: получить все записи от имени текущей категории- Создание строк таблицы HTML- —-ОБЪЯВИТЬ КУРСОР error_cursor ДЛЯвыберите LogDate, ProcessInfo, Textпредлагалось во время @notifiable_errorsгде error_category = @error_categoryОТКРЫТЬ error_cursorПОЛУЧИТЕ ДАЛЕЕ ОТ error_cursor В @logdate, @processInfo, @TextUNTIL @@ FETCH_STATUS = 0НАЧИНАТЬ- строки таблицы HTMLвыберите @HTML_part = ‘
‘установить @ [безопасность электронной почты] [безопасность электронной почты] _part + ”УЗНАТЬ БОЛЬШЕ ОТ error_cursor В @logdate, @processInfo, @Text;КОНЕЦЗАКРЫТЬ error_cursorDEALLOCATE error_cursor- Отправить конец HTML-таблицы + электронное письмоустановить – [электронная почта защищена] + ‘
‘ [защищенный адрес электронной почты] _footerEXEC msdb.dbo.sp_send_dbmail@profile_name означает “DBA_Profile”, @ Subject подразумевает @object, @recipients означает « [электронная почта защищена] », @ body_format = ‘HTML’, @body означает @HTMLСЛЕДУЙТЕ ОТ category_cursor В @error_category;КОНЕЦЗАКРЫТЬ category_cursorDEALLOCATE category_cursorКонец
Образцы писем
Заключение
Обратной стороной этого подхода, безусловно, является то, что мне нужно точно знать, о чем я хочу получать уведомления по электронной почте. Если я не использую оповещения агента, должны быть некоторые критические ошибки, которые я должен игнорировать.
Качественно то, что я могу искать не только ошибки, но и информативные утверждения.
Я надеюсь, что покупатели нашли это интересным и предложили, как получить информацию о ваших экземплярах SQL Server.
Улучшите скорость своего компьютера сегодня, загрузив это программное обеспечение - оно решит проблемы с вашим ПК. г.
Troubleshoot SQL Server Error Log Email
Rozwiązywanie Problemów Z Pocztą E-mail Dziennika Błędów Programu SQL Server
Problemen Met E-mail Met SQL Server-foutlogboek Oplossen
Solução De Problemas De E-mail De Log De Erros Do SQL Server
SQL Server 오류 로그 이메일 문제 해결
Fehlerbehebung Bei Der E-Mail Mit Dem SQL Server-Fehlerprotokoll
Felsöka E -postmeddelanden För SQL Server -fellogg
Risoluzione Dei Problemi Relativi All’e-mail Del Registro Degli Errori Di SQL Server
Résoudre Les Problèmes Liés à L’e-mail Du Journal Des Erreurs SQL Server
Solucionar Problemas De Correo Electrónico Del Registro De Errores De SQL Server
г.