Visa och läs diagnostikloggen för redundansklusterinstansen

Gäller för:SQL Server

Alla kritiska fel och varningshändelser för SQL Server resurs-DLL skrivs till Windows händelseloggen. En löpande logg över den diagnostikinformation som är specifik för SQL Server samlas in av den systemlagrade proceduren sp_server_diagnostics (Transact-SQL) och skrivs till loggfilerna för diagnostiken för SQL Servers redundanskluster (även kallade SQLDIAG-loggarna).

Innan du börjar

Filnamn, plats och format

Som standard lagras SQLDIAG under en lokal LOG-mapp i SQL Server-instanskatalogen, till exempel C\Program Files\Microsoft SQL Server\MSSQL13.<InstanceName>\MSSQL\LOG' för den ägande noden i AlwaysOn-redundansklusterinstansen (FCI). Den maximala storleken för varje SQLDIAG-loggfil är 100 MB. Tio sådana loggfiler lagras på datorn innan de återanvänds för nya loggar. Filnamnet är av följande format MACHINE_SQLINSTANCE_SQLDIAG_0_xxxxxxxxxxxxxxxxx.xel där den sista delen "xxxxxxxx" är ett automatiskt genererat nummer. För en standardinstans skulle filnamnet till exempel vara NODE1_MSSQLSERVER_SQLDIAG_0_133177967257760000.xel och för en namngiven instans skulle namnet vara NODE1_SQL2019INST_SQLDIAG_0_133177967257760000.xel

Loggarna använder filformatet för utökade händelser. Systemfunktionen sys.fn_xe_file_target_read_file kan användas för att läsa filerna som skapas av Utökade händelser och visa dem som en resultatuppsättning. En händelse, i XML-format, returneras per rad. Mer information finns i sys.fn_xe_file_target_read_file (Transact-SQL).

Security

Permissions

VIEW Behörigheten SERVERTILLSTÅND krävs för att köra fn_xe_file_target_read_file.

Öppna SQL Server Management Studio som administratör

Använd SQL Server Management Studio

Så här visar du diagnostikloggfilerna:

  1. menyn Arkiv väljer du Öppna, Arkiv och väljer den diagnostikloggfil som du vill visa.

  2. Händelserna visas som rader i den högra rutan, och som standard visas namnet och tidsstämpeln de enda två kolumnerna som visas.

    Detta aktiverar även menyn ExtendedEvents .

  3. Om du vill se fler kolumner går du till menyn ExtendedEvents och väljer Välj kolumner.

    En dialogruta öppnas med de tillgängliga kolumnerna så att du kan välja kolumnerna som ska visas.

  4. Du kan filtrera och sortera händelsedata med hjälp av menyn ExtendedEvents och välja alternativet Filter .

Visa diagnostikloggfiler med Transact-SQL

Så här visar du diagnostikloggfilerna:

Om du vill visa alla loggobjekt i SQLDIAG-loggfilen använder du följande fråga:

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;

Note

Du kan filtrera resultatet för specifika komponenter eller tillstånd med hjälp av WHERE-satsen.

Konfigurera egenskaper för diagnostiklogg med Transact-SQL

Så här konfigurerar du egenskaperna för diagnostikloggen:

Note

Ett exempel på den här proceduren finns i Exempel (Transact-SQL), senare i det här avsnittet.

Med hjälp av DDL-instruktionen ALTER SERVER CONFIGURATION(Data Definition Language) kan du starta eller sluta logga diagnostikdata som samlas in av proceduren sp_server_diagnostics (Transact-SQL) och ange konfigurationsparametrar för SQLDIAG-loggen, till exempel antalet loggfiler, loggfilens storlek och filplats. Syntaxinformation finns i Ange diagnostikloggalternativ.

Exempel (Transact-SQL)

Ange alternativ för diagnostiklogg

Exemplen i det här avsnittet visar hur du anger värden för diagnostikloggalternativet.

A. Starta diagnostikloggning

I följande exempel startas loggningen av diagnostikdata.

ALTER SERVER CONFIGURATION SET DIAGNOSTICS LOG ON;
B. Stoppa diagnostikloggning

I följande exempel stoppas loggningen av diagnostikdata.

ALTER SERVER CONFIGURATION SET DIAGNOSTICS LOG OFF;
C. Ange platsen för diagnostikloggarna

I följande exempel ställs platsen för diagnostikloggar in till den angivna filsökvägen.

ALTER SERVER CONFIGURATION
SET DIAGNOSTICS LOG PATH = 'C:\logs';
D. Ange maximal storlek för varje diagnostiklogg

I följande exempel anges den maximala storleken för varje diagnostiklogg till 10 MB.

ALTER SERVER CONFIGURATION
SET DIAGNOSTICS LOG MAX_SIZE = 10 MB;
E. Kontrollera om diagnostikloggen för redundansklusterinstans är aktiverad och aktuell konfiguration.

I följande exempel används dmv sys.dm_os_server_diagnostics_log_configurations för att kontrollera den aktuella konfigurationen

SELECT is_enabled, [path], max_size, max_files
FROM sys.dm_os_server_diagnostics_log_configurations;

Se även