Microsoft SQL Server
Настройка и конфигурация

Как получить граф дедлока в текстовом виде?

Опубликовано: 05 ноя 07
Рейтинг:

Автор: GreenSunrise
Прислал: GreenSunrise

Для этого нужно выполнить три действия. Первое: настроить SQL Server так, чтобы он писал в лог граф дедлока. Второе - воспроизвести дедлок. Третье - открыть файл лога и найти там граф. Ниже более подробное описание, как и что настраивать, и того, где находится файл лога.

Настройки SQL Server:
Вариант 1. Не требует рестарта SQL Server, но и действует лишь до его рестарта.

Если вы используете SQL Server 2005, то запустите Management Studio. Если вы используете SQL Server 2000, то запустите Query Analyzer.

Выполните следующий код:
dbcc traceon (1204) -- выводит информацию о взаимоблокировке
dbcc traceon (3605) -- записывает информацию в файл ERRORLOG
dbcc traceon (1222) -- выводит расширенную информацию о взаимоблокировке (только для 2005)

Вариант 2. Требует рестарта сервера, но действует и при последующих его запусках.

Если вы используете SQL Server 2005, то запустите SQL Server Configuration Manager (не путать с SQL Server Management Studio!), в левой панели выберите пункт SQL Server 2005 Services, в правой панели выберите службу "SQL Server (MSSQLSERVER)" (название для дефолтного экземпляра. для именованного будет называться "SQL Server (INSTANCENAME)"). В контекстном меню выберите Properties, перейдите на закладку Advanced и найдите строчку "Startup parameters". Добавьте в конец строки через ";" следующие флаги: "-T3605;-T1204;-T1222".

Если вы используете SQL Server 2000, то запустите Enterprise Manager, в контекстном меню сервера выберите Properties. На закладке General нажмите кнопку "Startup Parameters..." и добавьте туда следующие два параметра: -T3605 и -T1204.

Перезапустите службу SQL Server, чтобы параметры вступили в действие.

Где найти граф дедлока.

Флаг 3605 выводит информацию в файл ERRORLOG.

Для установки по умолчанию SQL Server 2005 (и дефолтного, и именованного инстансов) этот файл будет находиться здесь:
C:\Program Files\Microsoft SQL Server\MSSQL.n\MSSQL\LOG\ERRORLOG
Для установки по умолчанию дефолтного инстанса SQL Server 2000 этот файл будет находиться здесь:
C:\Program Files\Microsoft SQL Server\MSSQL\LOG\ERRORLOG
Для установки по умолчанию именованного инстанса SQL Server 2000 этот файл будет находиться здесь:
C:\Program Files\Microsoft SQL Server\MSSQL$INSTANCENAME\LOG\ERRORLOG

Комментарии




Необходимо войти на сайт, чтобы оставлять комментарии

Раздел FAQ: Microsoft SQL Server / Настройка и конфигурация / Как получить граф дедлока в текстовом виде?