Skip to content

Где мои ошибки, SQL Server?

Пересказ статьи Garry Bargsley. Where are my SQL Server Errors?


Вы открывали когда нибудь журнал ошибок SQL Server и задавались вопросом: "А где ошибки?". Копаться в журнале ошибок в поисках того, что вам нужно, может вызвать головную боль. Конечно, вы можете использовать некоторые методы парсинга для поиска нужной информации, но иногда вам хочется взглянуть на журнал ошибок с помощью SSMS.




Новичок вы в SQL Server или опытный ветеран, вы заметите странное поведение в журнале ошибок SQL Server. Когда выполняется создание резервной копии базы данных, запись помещается в журнал ошибок SQL. Команда SQL Server решила журнализировать сообщения об успешном бэкапе в журнал ошибок. Если вы опросите большинство профессионалов в области технологий, то выяснится, что журнализация успешных событий действительно является необычным явлением. Такое поведение раздувает журнал ошибок, что затрудняет поиск нужной информации.

К счастью, та же самая команда SQL Server имеет встроенное решение этой ситуации. Для корректировки этого поведения можно включить флаг трассировки 3226.

Что за флаг трассировки, можете спросить вы? Флаги трассировки являются конфигурационными настройками, которые могут позволить администраторам изменить поведение ядра базы данных. В SQL Server имеются сотни флажков трассировки, некоторые из которых очень хорошо документированы, в то время как остальные недокументированы вовсе.

Имеется пара способов включить флажки трассировки. Ниже будет описано, как узнать, какие флажки трассировки включены на SQL Server, потом как включить флажок трассировки с помощью параметра при запуске SQL Server.

Состояние флажков трассировки


Сначала выполним команду, чтобы узнать, включен ли флажок трассировки сейчас.

DBCC TRACESTATUS;



Результаты запроса показывают, то флаг трассировки 1118 включен глобально на этом SQL Server. Глобальная область видимости флажка трассировки означает, что SQL Server будет обеспечивать функциональность флажка трассировки для всех сессий, которые могут получить от этого преимущество. Флаг трассировки уровня сессии будет работать только в рамках текущей сессии пользователя. Каждый флаг трассировки имеет определенную область видимости для правильного использования.

Включение флажка трассировки


Следующий шаг - включение флажка трассировки 3226 глобально, чтобы посмотреть, как это повлияет на журнал ошибок SQL Server. Этот метод включения флажка трассировки сразу вступит в действие. Однако отметим, что флаг трассировки не будет включен при следующем перезапуске движка SQL Server.

DBCC TRACEON (3226, -1);



После включения флажка трассировки 3226 в журнале ошибок SQL Server больше не будут показываться сообщения об успешном резервировании баз данных.



Обратите внимание, что после включения флага трассировки 3226, вы можете видеть ошибки и информационные сообщения в журнале ошибок SQL Server. Также нужно отметить журнализацию команды включения и выключения трассировки, поэтому вы знаете, когда использовался флаг трассировки. Это сможет облегчить усилия по устранению неполадок.

По умолчанию, если в этот момент движок SQL Server перезапускается, флаг трассировки не будет включен, пока мы не выполним команду выше. Это можно исправить, если добавить флаг трассировки 3226 как параметр запуска SQL Server. Если это сделать, то при всяком запуске движка SQL Server флаг трассировки будет включен.

Добавление параметров запуска в диспетчере конфигурации


Откройте диспетчер конфигурации SQL Server и щелкните на SQL Server Services. Теперь двойной щелчок на экземпляре SQL Server, для которого вы хотите включить флаг трассировки. Первое, что вы должны сделать, это ввести T3226 в область параметров запуска. Затем щелкните Add - это поместить новый флаг трассировки в раздел имеющихся параметров. При щелчке на Apply вы получите предложение перезапустить службу SQL Server, чтобы сделанные изменения вступили в силу.



Теперь флаг трассировки будет включен при всяком запуске службы SQL Server.

Включение флага трассировки с помощью PowerShell и dbatools


Методы, показанные выше, хороши, когда у вас один или два SQL Server под наблюдением. Однако если вы имеете 100 серверов и не уверены, включен флажок трассировки 3226 или нет в параметрах запуска. Вот где пригодится мощная команда.

В игру вступает функция Set-DbaStartupParameter.



Выполнив эту команду на одном или одной сотне SQL Server, вы будете уверены, что флаг трассировки 3226 включен, и сообщения об успешном выполнении резервного копирования базы данных отключены.
Категории: T-SQL

Обратные ссылки

Нет обратных ссылок

Комментарии

Показывать комментарии Как список | Древовидной структурой

Нет комментариев.

Автор не разрешил комментировать эту запись

Добавить комментарий

Enclosing asterisks marks text as bold (*word*), underscore are made via _word_.
Standard emoticons like :-) and ;-) are converted to images.

To prevent automated Bots from commentspamming, please enter the string you see in the image below in the appropriate input box. Your comment will only be submitted if the strings match. Please ensure that your browser supports and accepts cookies, or your comment cannot be verified correctly.
CAPTCHA

Form options

Добавленные комментарии должны будут пройти модерацию прежде, чем будут показаны.