Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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, Säkerhet
Om du vill visa diagnostikloggen med hjälp av:SQL Server Management StudioTransact-SQL
Så här konfigurerar du diagnostiklogginställningar med hjälp av:Transact-SQL
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:
På menyn Arkiv väljer du Öppna, Arkiv och väljer den diagnostikloggfil som du vill visa.
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 .
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.
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;