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 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:

  1. En el menú Archivo , seleccione Abrir, Archivoy elija el archivo de registro de diagnóstico que desea ver.

  2. 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 .

  3. 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.

  4. 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;

Consulte también