SQL Server 2005: почему я получаю оповещения об ошибках / сек, но в журнале нет ошибок? - PullRequest
0 голосов
/ 31 марта 2011

Я только начинаю экспериментировать с оповещениями SQL Server. Я установил оповещение об ошибках / сек с пороговым значением ноль, думая, что я получу электронное письмо каждый раз, когда в журнал будет записана ошибка. Я получил много писем! Я поднял порог, чтобы уведомлять меня, когда он превышал одну в секунду, и время от времени я получаю довольно много писем.

В качестве примера я получаю электронные письма, которые содержат что-то вроде этого:

DESCRIPTION: The SQL Server performance counter 'Errors/sec' (instance '_Total') of object 'MyServerName:SQL Errors' is now above the threshold of 1.00 (the current value is 4.45).

Вот команда для оповещения, которое я использую:

EXEC msdb.dbo.sp_add_alert @name=N'SQL Errors', 
        @message_id=0, 
        @severity=0, 
        @enabled=1, 
        @delay_between_responses=0, 
        @include_event_description_in=1, 
        @notification_message=N'Check the ERRORLOG for details.', 
        @category_name=N'[Uncategorized]', 
        @performance_condition=N'MyServerName:SQL Errors|Errors/sec|_Total|>|0', 
        @job_id=N'00000000-0000-0000-0000-000000000000'

Когда я просматриваю журнал, я не вижу никаких ошибок. Я нахожу информационные сообщения (резервное копирование завершено и т. Д.). Действительно ли это предупреждение "Записи / сек", а не "Ошибки / сек", или я ищу неправильные места ( SSMS | Сервер | Управление | Журналы SQL Server | Текущая ) для фактических ошибок?

Ответы [ 2 ]

2 голосов
/ 31 марта 2011

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

Например, если вы выполните следующее t-sql.

RAISERROR ('This is an error!', 16, 1) WITH LOG

ошибка будет зарегистрирована в журнале ошибок, пропуская WITH LOG просто приведет к возникновению ошибки без регистрации.

У ошибок есть атрибуты, которые вы можете использовать для фильтрации, такие как идентификатор сообщения, серьезность, но вы отслеживаете все по внешнему виду. Серьезность может быть то, что вам нужно.

0 голосов
/ 31 марта 2011

Я читал о, но никогда не использовал оповещения. Исходя из этого, я считаю, что «система оповещений SQL» основана на данных, записанных в журнале событий приложений Windows, например

.
  • Начало
  • Программы
  • Администрирование
  • Просмотр событий

и посмотрите под записью «Приложение». (Посмотрите на остальных, пока вы там, чтобы увидеть все те ошибки и ошибки, о которых вы никогда не знали. Это очень похоже на поиск под скалой в лесу ...)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...