Просмотр и чтение журнала диагностики для экземпляра отказоустойчивого кластера
Область применения: SQL Server
Все критические ошибки и события предупреждений для библиотеки ресурсов SQL Server записываются в журнал событий Windows. Диагностические сведения, связанные с SQL Server и записываемые в журнал, перехватываются хранимой процедурой sp_server_diagnostics (Transact-SQL) и записываются в файлы журнала диагностики отказоустойчивого кластера SQL Server (также называемые журналами SQLDIAG).
Перед началом работы: Имя файла, расположение и формат, безопасность
Просмотр журнала диагностики с помощью: SQL Server Management Studio, Transact-SQL
Настройка параметров журнала диагностики с помощью: Transact-SQL
Перед началом
Имя файла, расположение и формат
По умолчанию журналы 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
Просмотр файлов журнала диагностики:
В меню Файл выберите Открыть, Файли выберите файл журнала диагностики для просмотра.
События отображаются в виде строк в правой панели, причем по умолчанию показаны только два столбца, nameи timestamp .
Это также приводит к активации меню ExtendedEvents .
Для отображения большего числа столбцов перейдите в меню ExtendedEvents и укажите Выбрать столбцы.
Откроется диалоговое окно с доступными столбцами, позволяя выбрать столбцы для отображения.
Можно фильтровать и сортировать данные событий, используя меню 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;