Anzeigen und Lesen des Failoverclusterinstanz-DiagnoseprotokollsView and Read Failover Cluster Instance Diagnostics Log

Alle kritischen Fehler und Warnungsereignisse für die Ressourcen-DLL von SQL Server werden in das Windows-Ereignisprotokoll geschrieben.All critical errors and warning events for the SQL Server Resource DLL are written to the Windows event log. Ein Ausführungsprotokoll mit für SQL Server spezifischen Diagnoseinformationen wird von der gespeicherten Systemprozedur sp_server_diagnostics (Transact-SQL) erfasst und in die Protokolldateien der SQL Server-Failoverclusterdiagnose (auch als SQLDIAG-Protokolle bezeichnet) geschrieben.A running log of the diagnostic information specific to SQL Server is captured by the sp_server_diagnostics (Transact-SQL) system stored procedure and is written to the SQL Server failover cluster diagnostics (also known as the SQLDIAG logs) log files.

Vorbereitungen Before You Begin

Empfehlungen Recommendations

Die SQLDIAG-Protokolle werden standardmäßig in einem lokalen LOG-Ordner des Verzeichnisses der SQL Server-Instanz gespeichert, z.B. in „C\Programme\Microsoft SQL Server\MSSQL13.<Instanzname>\MSSQL\LOG“ für den besitzenden Knoten der Always On-Failoverclusterinstanz (FCI).By default, the SQLDIAG are stored under a local LOG folder of the SQL Server instance directory, for example, 'C\Program Files\Microsoft SQL Server\MSSQL13.<InstanceName>\MSSQL\LOG' of the owning node of the Always On Failover Cluster Instance (FCI). Die Größe jeder SQLDIAG-Protokolldatei wird auf 100 MB begrenzt.The size of each SQLDIAG log file is fixed at 100 MB. Zehn dieser Protokolldateien werden auf dem Computer gespeichert, bevor sie für neue Protokolle wiederverwendet werden.Ten such log files are stored on the computer before they are recycled for new logs.

Die Protokolle verwenden das Dateiformat für erweiterte Ereignisse.The logs use the extended events file format. Mit der Systemfunktion sys.fn_xe_file_target_read_file können Sie die Dateien lesen, die durch erweiterte Ereignisse erstellt wurden.The sys.fn_xe_file_target_read_file system function can be used to read the files that are created by Extended Events. Pro Zeile wird ein Ereignis im XML-Format zurückgegeben.One event, in XML format, is returned per row. Fragen Sie die Systemsicht ab, um die XML-Daten als Resultset zu analysieren.Query the system view to parse the XML data as a result-set. Weitere Informationen finden Sie unter sys.fn_xe_file_target_read_file (Transact-SQL).For more information, see sys.fn_xe_file_target_read_file (Transact-SQL).

Sicherheit Security

Berechtigungen Permissions

Die VIEW SERVER STATE-Berechtigung ist erforderlich, um fn_xe_file_target_read_fileauszuführen.VIEW SERVER STATE permission is needed to run fn_xe_file_target_read_file.

Öffnen von SQL Server Management Studio als AdministratorOpen SQL Server Management Studio as Administrator

Verwendung von SQL Server Management Studio Using SQL Server Management Studio

So zeigen Sie die Diagnoseprotokolldateien an:To view the Diagnostic log files:

  1. Wählen Sie im Menü Datei die Option Öffnen, Datei, und wählen Sie die anzuzeigende Diagnoseprotokolldatei an.From the File menu, select Open, File, and choose the diagnostic log file you want to view.

  2. Die Ereignisse werden als Zeilen im rechten Bereich angezeigt. Standardmäßig werden nur die Spalten nameund timestamp angezeigt.The events are displayed as rows in the right pane, and by default name, and timestamp are the only two columns displayed.

    Dadurch wird außerdem das Menü ExtendedEvents aktiviert.This also activates the ExtendedEvents menu.

  3. Rufen Sie zum Anzeigen weiterer Spalten das Menü ExtendedEvents auf, und wählen Sie Spalten auswählen.To see more columns, go the ExtendedEvents menu, and select Choose Columns.

    Ein Dialogfeld mit den verfügbaren Spalten wird angezeigt, in dem Sie die anzuzeigenden Spalten auswählen können.A dialog box opens with the available columns allowing you to select the columns for display.

  4. Sie können die Ereignisdaten mithilfe des Menüs ExtendedEvents und der Option Filter filtern und sortieren.You can filter, and sort the event data using the ExtendedEvents menu and selecting the Filter option.

Verwenden von Transact-SQL Using Transact-SQL

So zeigen Sie die Diagnoseprotokolldateien an:To view the Diagnostic log files:

Um alle Protokollelemente in der SQLDIAG-Protokolldatei anzuzeigen, verwenden Sie die folgende Abfrage:To view all the log items in the SQLDIAG log file, use the following query:

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;  
Hinweis

Sie können die Ergebnisse nach bestimmten Komponenten oder Status filtern, indem Sie die WHERE-Klausel verwenden.You can filter the results for specific components or state using the WHERE clause.

Verwenden von Transact-SQL Using Transact-SQL

So konfigurieren Sie die DiagnoseprotokolleigenschaftenTo configure the Diagnostic Log Properties

Hinweis

Ein Beispiel für diese Prozedur finden Sie weiter unten in diesem Abschnitt unter Beispiel (Transact-SQL).For an example of this procedure, see Example (Transact-SQL), later in this section.

Mithilfe der DDL-Anweisung (Data Definition Language) ALTER SERVER CONFIGURATION können Sie die Protokollierung von Diagnosedaten, die von der Prozedur sp_server_diagnostics (Transact-SQL) erfasst wurden, starten bzw. beenden und SQLDIAG-Protokollkonfigurationsparameter festlegen, wie z.B. die Anzahl der Protokolldateirollover, die Protokolldateigröße und den Dateispeicherort.Using the Data Definition Language (DDL) statement, ALTER SERVER CONFIGURATION, you can start or stop logging diagnostic data captured by the sp_server_diagnostics (Transact-SQL) procedure, and set SQLDIAG log configuration parameters such as the log file rollover count, log file size, and file location. Einzelheiten zur Syntax finden Sie unter Setting diagnostic log options.For syntax details, see Setting diagnostic log options.

Beispiele (Transact-SQL) Examples (Transact-SQL)

Setting diagnostic log options Setting diagnostic log options

Die Beispiele in diesem Abschnitt veranschaulichen, wie die Werte für die Diagnoseprotokolloption festgelegt werden.The examples in this section show how to set the values for the diagnostic log option.

A.A. Starten der DiagnoseprotokollierungStarting diagnostic logging

Im folgenden Beispiel wird die Protokollierung von Diagnosedaten gestartet.The following example starts the logging of diagnostic data.

ALTER SERVER CONFIGURATION SET DIAGNOSTICS LOG ON;  
B.B. Beenden der DiagnoseprotokollierungStopping diagnostic logging

Im folgenden Beispiel wird die Protokollierung von Diagnosedaten beendet.The following example stops the logging of diagnostic data.

ALTER SERVER CONFIGURATION SET DIAGNOSTICS LOG OFF;  
C.C. Angeben des Speicherorts für die DiagnoseprotokolleSpecifying the location of the diagnostic logs

Im folgenden Beispiel wird der Speicherort für die Diagnoseprotokolle auf den angegebenen Dateipfad festgelegt.The following example sets the location of the diagnostic logs to the specified file path.

ALTER SERVER CONFIGURATION  
SET DIAGNOSTICS LOG PATH = 'C:\logs';  
D.D. Angeben der maximalen Größe jedes DiagnoseprotokollsSpecifying the maximum size of each diagnostic log

Im folgenden Beispiel wird die maximale Größe jedes Diagnoseprotokolls auf 10 Megabytes festgelegt.The following example set the maximum size of each diagnostic log to 10 megabytes.

ALTER SERVER CONFIGURATION   
SET DIAGNOSTICS LOG MAX_SIZE = 10 MB;  

Siehe auchSee Also

Failoverrichtlinie für FailoverclusterinstanzenFailover Policy for Failover Cluster Instances