Просмотр и чтение журнала диагностики для экземпляра отказоустойчивого кластера

Применимо к:SQL Server

Все критические ошибки и события предупреждений для библиотеки ресурсов SQL Server записываются в журнал событий Windows. Диагностические сведения, связанные с SQL Server и записываемые в журнал, перехватываются хранимой процедурой sp_server_diagnostics (Transact-SQL) и записываются в файлы журнала диагностики отказоустойчивого кластера SQL Server (также называемые журналами SQLDIAG).

Перед началом

Имя файла, расположение и формат

По умолчанию журналы SQLDIAG хранятся в локальной папке LOG в каталоге экземпляра SQL Server, например C\Program Files\Microsoft SQL Server\MSSQL13.<имя_экземпляра>\MSSQL\LOG, на том узле, где выполняется экземпляр отказоустойчивого кластера (FCI) групп доступности Always On. Максимальный размер каждого файла журнала SQLDIAG исправлен в 100 МБ. На компьютере сохраняются десять таких файлов журнала, после чего они освобождаются для новых журналов. Имя файла имеет следующий формат MACHINE_SQLINSTANCE_SQLDIAG_0_xxxxxxxxxxxxxxxxx.xel , где последняя часть xxxxxx является автоматически созданным номером. Например, для экземпляра по умолчанию имя файла будет NODE1_MSSQLSERVER_SQLDIAG_0_133177967257760000.xel и для именованного экземпляра имя будет NODE1_SQL2019INST_SQLDIAG_0_133177967257760000.xel

В журналах используется формат файлов расширенных событий. Системная sys.fn_xe_file_target_read_file функция может использоваться для чтения файлов, созданных расширенными событиями, и отображения их в виде результирующих наборов. Возвращается одно событие в каждой строке в формате XML. Для получения дополнительной информации см. sys.fn_xe_file_target_read_file (Transact-SQL).

Безопасность

Разрешения

Для запуска fn_xe_file_target_read_fileтребуется разрешение VIEW SERVER STATE.

Откройте среду SQL Server Management Studio в качестве администратора

Использование SQL Server Management Studio

Просмотр файлов журнала диагностики:

  1. В меню Файл выберите Открыть, Файли выберите файл журнала диагностики для просмотра.

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

    Это также приводит к активации меню ExtendedEvents .

  3. Для отображения большего числа столбцов перейдите в меню ExtendedEvents и укажите Выбрать столбцы.

    Откроется диалоговое окно с доступными столбцами, позволяя выбрать столбцы для отображения.

  4. Можно фильтровать и сортировать данные событий, используя меню ExtendedEvents и выбирая параметр Фильтр .

Просмотр файлов журналов диагностики с помощью Transact-SQL

Просмотр файлов журнала диагностики:

Для просмотра всех записей в файле журнала SQLDIAG используйте следующий запрос.

SELECT
  xml_data.value('(event/@name)[1]','varchar(max)') AS 'Name'
  ,xml_data.value('(event/@package)[1]','varchar(max)') AS 'Package'
  ,xml_data.value('(event/@timestamp)[1]','datetime') AS 'Time'
  ,xml_data.value('(event/data[@name=''state'']/value)[1]','int') AS 'State'
  ,xml_data.value('(event/data[@name=''state_desc'']/text)[1]','varchar(max)') AS 'State   Description'
  ,xml_data.value('(event/data[@name=''failure_condition_level'']/value)[1]','int') AS   'Failure Conditions'
  ,xml_data.value('(event/data[@name=''node_name'']/value)[1]','varchar(max)') AS   'Node_Name'
  ,xml_data.value('(event/data[@name=''instancename'']/value)[1]','varchar(max)') AS   'Instance Name'
  ,xml_data.value('(event/data[@name=''creation time'']/value)[1]','datetime') AS 'Creation   Time'
  ,xml_data.value('(event/data[@name=''component'']/value)[1]','varchar(max)') AS   'Component'
  ,xml_data.value('(event/data[@name=''data'']/value)[1]','varchar(max)') AS 'Data'
  ,xml_data.value('(event/data[@name=''info'']/value)[1]','varchar(max)') AS 'Info'
FROM
 ( SELECT object_name AS 'event'
  ,CONVERT(xml,event_data) AS 'xml_data'
  FROM sys.fn_xe_file_target_read_file('C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Log\SQLNODE1_MSSQLSERVER_SQLDIAG_0_129936003752530000.xel',NULL,NULL,NULL)
 )
AS XEventData
ORDER BY Time;

Примечание.

Можно отфильтровать результаты для определенных компонентов или состояний с помощью предложения WHERE.

Настройка свойств журнала диагностики с помощью Transact-SQL

Настройка свойств журнала диагностики:

Примечание.

Пример этой процедуры см. в подразделе Примеры (Transact-SQL)далее в этом разделе.

С помощью инструкции языка описания данных DDL ALTER SERVER CONFIGURATION можно запускать или останавливать запись в журнал диагностических данных, полученных с помощью хранимой процедуры sp_server_diagnostics (Transact-SQL), а также задавать такие параметры конфигурации журналов SQLDIAG, как количество переключений файлов журнала, размер файлов журнала и расположение файлов. Дополнительные сведения о синтаксисе см. в разделе Setting diagnostic log options.

Примеры (Transact-SQL)

Настройка параметров журнала диагностики

В примерах этого раздела показана установка значений параметра журнала диагностики.

А. Запуск ведения журнала диагностики

В следующем примере запускается запись в журнал диагностических данных.

ALTER SERVER CONFIGURATION SET DIAGNOSTICS LOG ON;
B. Остановка ведения журнала диагностики

В следующем примере запись в журнал диагностических данных прекращается.

ALTER SERVER CONFIGURATION SET DIAGNOSTICS LOG OFF;
C. Укажите расположение журналов диагностики

В следующем примере для журналов диагностических данных задается расположение по указанному пути к файлам.

ALTER SERVER CONFIGURATION
SET DIAGNOSTICS LOG PATH = 'C:\logs';
D. Укажите максимальный размер каждого журнала диагностики

В следующем примере задан максимальный размер каждого из журналов диагностики, равный 10 мегабайтам.

ALTER SERVER CONFIGURATION
SET DIAGNOSTICS LOG MAX_SIZE = 10 MB;
Е. Проверьте, включен ли журнал диагностики экземпляра отказоустойчивого кластера и текущая конфигурация.

В следующем примере для проверка текущей конфигурации используется sys.dm_os_server_диагностика_log_configurations dmv

SELECT is_enabled, [path], max_size, max_files
FROM sys.dm_os_server_diagnostics_log_configurations;

См. также