Condividi tramite


Visualizzare e leggere il log di diagnostica dell'istanza del cluster di failover

Tutti gli errori critici e gli eventi di avviso relativi alla DLL risorse SQL Server vengono scritti nel registro eventi di Windows. Un log in esecuzione relativo a informazioni di diagnostica specifiche di SQL Server viene acquisito dalla stored procedure di sistema sp_server_diagnostics (Transact-SQL) e viene scritto nei file di log di diagnostica del cluster di failover di SQL Server, noti anche come log SQLDIAG.

Prima di iniziare

Consigli

Per impostazione predefinita, SQLDIAG viene archiviato in una cartella LOG locale della directory dell'istanza di SQL Server, ad esempio 'C\Programmi\Microsoft SQL Server\MSSQL12.<InstanceName>\MSSQL\LOG' del nodo proprietario dell'istanza del cluster di failover AlwaysOn. La dimensione di ogni file di log SQLDIAG è pari a 100 MB. Successivamente, tali file di log vengono archiviati nel computer prima di essere riciclati per i nuovi log.

Nei log viene utilizzato il formato di file degli eventi estesi. La funzione di sistema sys.fn_xe_file_target_read_file può essere usata per leggere i file creati dagli eventi estesi. Viene restituito un evento per riga in formato XML. Eseguire una query sulla vista di sistema per analizzare i dati XML come set di risultati. Per altre informazioni, vedere sys.fn_xe_file_target_read_file (Transact-SQL).

Sicurezza

Autorizzazioni

L'autorizzazione VIEW SERVER STATE è necessaria per eseguire fn_xe_file_target_read_file.

Aprire SQL Server Management Studio come amministratore.

Utilizzo di SQL Server Management Studio

Per visualizzare i file di log di diagnostica:

  1. Scegliere Apri dal menu File, selezionare File, quindi scegliere il file di log di diagnostica che si desidera visualizzare.

  2. Gli eventi vengono visualizzati come righe nel riquadro destro e per impostazione predefinita namee timestamp sono le uniche due colonne visualizzate.

    Viene inoltre attivato il menu ExtendedEvents .

  3. Per visualizzare più colonne, passare al menu ExtendedEvents e selezionare Scegli colonne.

    Verrà visualizzata una finestra di dialogo con le colonne disponibili in cui è possibile selezionare le colonne da visualizzare.

  4. È possibile filtrare e ordinare i dati degli eventi utilizzando il menu ExtendedEvents e selezionando l'opzione Filtro .

Utilizzo di Transact-SQL

Per visualizzare i file di log di diagnostica:

Per visualizzare tutte le voci di log nel file di log SQLDIAG, utilizzare la query seguente:

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\MSSQL12.MSSQLSERVER\MSSQL\Log\SQLNODE1_MSSQLSERVER_SQLDIAG_0_129936003752530000.xel',NULL,NULL,NULL)   
)   
AS XEventData  
ORDER BY Time;  
  

Nota

È possibile filtrare i risultati in base a stati o componenti specifici utilizzando la clausola WHERE.

Utilizzo di Transact-SQL

Per configurare le proprietà del log di diagnostica

Nota

Per un esempio di questa procedura, vedere Esempio (Transact-SQL)più avanti in questa sezione.

Usando l'istruzione ALTER SERVER CONFIGURATIONDDL (Data Definition Language), è possibile avviare o arrestare la registrazione dei dati di diagnostica acquisiti dalla procedura sp_server_diagnostics (Transact-SQL) e impostare i parametri di configurazione del log SQLDIAG, ad esempio il conteggio del rollover dei file di log, le dimensioni dei file di log e il percorso del file. Per dettagli sulla sintassi, vedere Setting diagnostic log options.

Esempi (Transact-SQL)

Impostazioni delle opzioni del log di diagnostica

Negli esempi inclusi in questa sezione viene illustrato come impostare i valori per l'opzione del log di diagnostica.

R. Avvio della registrazione dei dati di diagnostica

Nell'esempio seguente viene avviata la registrazione dei dati di diagnostica.

ALTER SERVER CONFIGURATION SET DIAGNOSTICS LOG ON;  
B. Arresto della registrazione dei dati di diagnostica

Nell'esempio seguente viene arrestata la registrazione dei dati di diagnostica.

ALTER SERVER CONFIGURATION SET DIAGNOSTICS LOG OFF;  
C. Definizione della posizione dei log di diagnostica

Nell'esempio seguente viene impostata la posizione dei log di diagnostica sul percorso di file specificato.

ALTER SERVER CONFIGURATION  
SET DIAGNOSTICS LOG PATH = 'C:\logs';  
D. Definizione della dimensione massima di ogni log di diagnostica

Nell'esempio seguente viene impostata su 10 megabyte la dimensione massima di ogni log di diagnostica.

ALTER SERVER CONFIGURATION   
SET DIAGNOSTICS LOG MAX_SIZE = 10 MB;  

Vedi anche

Criteri di failover per istanze del cluster di failover