Afficher et lire le journal de diagnostic de l'instance de cluster de basculement
S'applique à : SQL Server
Toutes les erreurs et tous les événements d'avertissements critiques pour la DLL de ressource SQL Server sont écrits dans le journal des événements Windows. Un journal en cours des informations de diagnostic spécifiques de SQL Server est capturé par la procédure stockée système sp_server_diagnostics (Transact-SQL) ; il est écrit dans les fichiers journaux de diagnostics du cluster de basculement de SQL Server (également appelés journaux SQLDIAG).
Avant de commencer :Nom, emplacement et format du fichier, Sécurité
Pour afficher le journal de diagnostics, à l’aide de :SQL Server Management Studio, Transact-SQL
Pour configurer les paramètres du journal de diagnostics, à l’aide de :Transact-SQL
Avant de commencer
Nom, emplacement et format du fichier
Par défaut, les journaux SQLDIAG sont stockés dans un dossier LOG local du répertoire d’instance SQL Server, par exemple, « C\Program Files\Microsoft SQL Server\MSSQL13.<Nom_Instance>\MSSQL\LOG » du nœud propriétaire de l’instance de cluster de basculement (FCI) Always On. La taille maximale de chaque fichier journal SQLDIAG est fixée à 100 Mo. Dix fichiers journaux de ce type sont stockés sur l'ordinateur avant qu'ils ne soient recyclés pour les nouveaux journaux. Le nom de fichier est au format MACHINE_SQLINSTANCE_SQLDIAG_0_xxxxxxxxxxxxxxxxx.xel
suivant, où la dernière partie « xxxxxxxx » est un nombre généré automatiquement. Par exemple, pour une instance par défaut, le nom de fichier est NODE1_MSSQLSERVER_SQLDIAG_0_133177967257760000.xel
, tandis que pour une instance nommée, le nom est NODE1_SQL2019INST_SQLDIAG_0_133177967257760000.xel
Les journaux utilisent le format de fichier d'événements étendus. La fonction système sys.fn_xe_file_target_read_file
peut être utilisée pour lire les fichiers créés par les événements étendus et les afficher sous la forme d’un jeu de résultats. Au format XML, un événement par ligne est retourné. Pour plus d’informations, consultez sys.fn_xe_file_target_read_file (Transact-SQL).
Sécurité
Autorisations
L’autorisation VIEW SERVER STATE est exigée pour exécuter fn_xe_file_target_read_file.
Ouvrez SQL Server Management Studio en tant qu'administrateur
Utiliser SQL Server Management Studio
Pour afficher les fichiers journaux de diagnostics :
Dans le menu de Fichier , sélectionnez Ouvrir, puis Fichieret choisissez le fichier journal de diagnostics à afficher.
Les événements sont affichés sous forme de lignes dans le volet droit. Par défaut, seules les colonnes nameet timestamp sont affichées.
Cela permet également d'activer le menu ExtendedEvents .
Pour afficher plus de colonnes, allez dans le menu de ExtendedEvents , puis sélectionnez Choisir les colonnes.
Une boîte de dialogue dans laquelle vous pouvez sélectionner les colonnes à afficher s'ouvre.
Vous pouvez filtrer et trier les données d'événement à l'aide du menu ExtendedEvents , en sélectionnant l'option Filtre .
Afficher les fichiers journaux de diagnostic avec Transact-SQL
Pour afficher les fichiers journaux de diagnostics :
Pour consulter tous les éléments de journal du fichier journal SQLDIAG, utilisez la requête suivante :
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;
Notes
Vous pouvez filtrer les résultats pour des composants spécifiques ou exécuter une déclaration à l'aide de la clause WHERE.
Configurer les propriétés du journal de diagnostic avec Transact-SQL
Pour configurer les propriétés du journal de diagnostics :
Notes
Pour obtenir un exemple de cette procédure, consultez Exemple (Transact-SQL)plus loin dans cette section.
En utilisant l’instruction DDL (Data Definition Language), ALTER SERVER CONFIGURATION, vous pouvez démarrer ou arrêter la journalisation des données de diagnostics capturées par la procédure sp_server_diagnostics (Transact-SQL) et définir les paramètres de configuration du journal SQLDIAG, tels que le nombre de substitutions du fichier journal, sa taille et son emplacement. Pour plus d'informations sur la syntaxe, consultez Setting diagnostic log options.
Exemples (Transact-SQL)
Définir les options du journal de diagnostics
Les exemples de cette section montrent comment définir les valeurs de l'option de journal de diagnostics.
R. Démarrer la journalisation des diagnostics
L'exemple suivant démarre la journalisation de données de diagnostics.
ALTER SERVER CONFIGURATION SET DIAGNOSTICS LOG ON;
B. Arrêter la journalisation des diagnostics
L'exemple suivant met fin à la journalisation des données de diagnostics.
ALTER SERVER CONFIGURATION SET DIAGNOSTICS LOG OFF;
C. Spécifier l’emplacement des journaux de diagnostics
L'exemple suivant définit l'emplacement des journaux de diagnostics sur le chemin d'accès au fichier spécifié.
ALTER SERVER CONFIGURATION
SET DIAGNOSTICS LOG PATH = 'C:\logs';
D. Spécifier la taille maximale de chaque journal de diagnostics
L'exemple suivant définit la taille maximale de chaque journal de diagnostics sur 10 mégaoctets.
ALTER SERVER CONFIGURATION
SET DIAGNOSTICS LOG MAX_SIZE = 10 MB;
E. Vérifiez si le journal des diagnostics d’instance de cluster de basculement est activé et la configuration actuelle.
L’exemple suivant utilise la vue DMV sys.dm_os_server_diagnostics_log_configurations pour vérifier la configuration actuelle
SELECT is_enabled, [path], max_size, max_files
FROM sys.dm_os_server_diagnostics_log_configurations;