Ver y leer el registro de diagnósticos de la instancia de clúster de conmutación por error
Se aplica a: SQL Server
Todos los errores críticos y eventos de advertencia de la DLL de recursos de SQL Server se escriben en el registro de eventos de Windows. El procedimiento almacenado del sistema sp_server_diagnostics (Transact-SQL) captura un registro en ejecución de la información de diagnóstico específica de SQL Server y lo escribe en los archivos de registro de diagnósticos de clústeres de conmutación por error de SQL Server (también conocidos como registros SQLDIAG).
Antes de comenzar: Nombre de archivo, ubicación y formato, Seguridad
Para ver el registro de diagnóstico, mediante: SQL Server Management Studio, Transact-SQL
Para configurar los valores del registro de diagnóstico, mediante:Transact-SQL
Antes de empezar
Nombre de archivo, ubicación y formato
De forma predeterminada, los SQLDIAG se almacenan en una carpeta LOG local del directorio de la instancia de SQL Server, por ejemplo, "C\Archivos de programa\Microsoft SQL Server\MSSQL13.<nombre de instancia>\MSSQL\LOG" del nodo propietario de la instancia de clúster de conmutación por error (FCI) AlwaysOn. El tamaño máximo de cada archivo de registro de SQLDIAG se fija en 100 MB. Diez archivos de registro se almacenan en el equipo antes de que se reciclen para los nuevos registros. El nombre de archivo tiene el formato siguiente MACHINE_SQLINSTANCE_SQLDIAG_0_xxxxxxxxxxxxxxxxx.xel
, donde la última parte "xxxxxxxx" es un número generado automáticamente. Por ejemplo, para una instancia predeterminada, el nombre de archivo sería NODE1_MSSQLSERVER_SQLDIAG_0_133177967257760000.xel
, y para una instancia con nombre, este sería NODE1_SQL2019INST_SQLDIAG_0_133177967257760000.xel
Los registros usan el formato de archivo extendido de eventos. La función del sistema sys.fn_xe_file_target_read_file
se puede usar para leer los archivos creados por eventos extendidos y mostrarlos como un conjunto de resultados. Se devuelve un evento, en formato XML, por cada fila. Para obtener más información, consulte sys.fn_xe_file_target_read_file (Transact-SQL).
Seguridad
Permisos
El permiso VIEW SERVER STATE es necesario para ejecutar fn_xe_file_target_read_file.
Abra SQL Server Management Studio como administrador.
Use SQL Server Management Studio
Para ver los archivos de registro de diagnóstico:
En el menú Archivo , seleccione Abrir, Archivoy elija el archivo de registro de diagnóstico que desea ver.
Los eventos aparecen como filas en el panel derecho y, de forma predeterminada, las dos únicas columnas mostradas son namey timestamp .
De este modo también se activa el menú ExtendedEvents .
Para ver más columnas, vaya el menú ExtendedEvents y seleccione Elegir columnas.
Se abre un cuadro de diálogo con columnas disponibles que permiten seleccionar las columnas de la presentación.
Puede filtrar y ordenar los datos de evento mediante el menú ExtendedEvents y la selección de la opción Filtrar .
Vista de archivos de registro de diagnóstico con Transact-SQL
Para ver los archivos de registro de diagnóstico:
Para ver todos los elementos en el archivo de registro SQLDIAG, use la siguiente consulta:
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;
Nota:
Puede filtrar los resultados para los componentes específicos o con estado la cláusula WHERE.
Configuración de propiedades del registro de diagnóstico con Transact-SQL
Para configurar las propiedades del registro de diagnóstico:
Nota:
Para ver un ejemplo de este procedimiento, vea Ejemplo (Transact-SQL)más adelante en esta sección.
Con la instrucción de lenguaje de definición de datos (DDL) ALTER SERVER CONFIGURATION, puede iniciar o detener el registro de los datos de diagnóstico capturados por el procedimiento sp_server_diagnostics (Transact-SQL) y establecer parámetros de configuración del registro de SQLDIAG como el recuento de sustitución incremental del archivo de registro, el tamaño del archivo de registro y la ubicación del archivo. Para obtener información detallada sobre la sintaxis, vea Setting diagnostic log options.
Ejemplos (Transact-SQL)
Configurar opciones de registro de diagnóstico
En los ejemplos de esta sección se muestra cómo establecer los valores para la opción de registro de diagnóstico.
A. Iniciar registro de diagnóstico
En el ejemplo siguiente se inicia el registro de los datos de diagnóstico.
ALTER SERVER CONFIGURATION SET DIAGNOSTICS LOG ON;
B. Detener registro de diagnóstico
En el ejemplo siguiente se detiene el registro de los datos de diagnóstico.
ALTER SERVER CONFIGURATION SET DIAGNOSTICS LOG OFF;
C. Especificar la ubicación de los registros de diagnóstico
En el ejemplo siguiente se establece la ubicación de los registros de diagnóstico en la ruta de acceso de archivo especificada.
ALTER SERVER CONFIGURATION
SET DIAGNOSTICS LOG PATH = 'C:\logs';
D. Especificar el tamaño máximo de cada registro de diagnóstico
En el ejemplo siguiente se establece el tamaño máximo de cada registro de diagnóstico en 10 megabytes.
ALTER SERVER CONFIGURATION
SET DIAGNOSTICS LOG MAX_SIZE = 10 MB;
E. Compruebe si el registro de diagnóstico de instancias de clúster de conmutación por error está habilitado y es la configuración actual.
En el ejemplo siguiente se usa el dmv sys.dm_os_server_diagnostics_log_configurations para comprobar la configuración actual.
SELECT is_enabled, [path], max_size, max_files
FROM sys.dm_os_server_diagnostics_log_configurations;