SQL Server SP_Readerrorlog

SQL Server SP_Readerrorlog

I registri si riferiscono a una serie di record creati da un'applicazione per descrivere i dettagli degli eventi e delle azioni eseguite dall'applicazione. Quasi tutte le applicazioni implementano un meccanismo di registrazione per aiutare gli sviluppatori e gli utenti a risolvere i problemi degli errori che possono insorgere.

Come puoi immaginare, SQL Server ci fornisce registri che ci consentono di seguire e risolvere i problemi degli eventi che si verificano nel server. In alcuni casi, è possibile utilizzare i registri SQL Server per recuperare da un errore di database.

Questo tutorial discute di come è possibile utilizzare la procedura memorizzata SP_Readerrorlog per leggere i registri creati da SQL Server e SQL Server Agent.

SP_READERRORLOGS () Sintassi della procedura

Di seguito mostra la sintassi della procedura memorizzata SP_ReaderrorLog nel server SQL:

sp_readerrorlog
@p1 int = 0,
@p2 int = null,
@p3 nvarchar (4000) = null,
@p4 nvarchar (4000) = null

Argomenti accettati

La procedura accetta i seguenti argomenti definiti nella sintassi data:

  1. @P1 - Questo definisce il registro che si desidera visualizzare come un valore intero. Il registro di errore corrente ha un valore di 0, quello prima ha un valore di 1, il secondo prima con un valore di 2, ecc.
  2. @P2 - Il parametro P2 consente di definire il prodotto i cui registri sono ciò che si desidera visualizzare come valore intero con 1 per SQL Server e 2 per SQL Server Agent. Per impostazione predefinita, la procedura restituisce i registri per SQL Server.
  3. @P3 - Il parametro P3 consente di definire la stringa in cui si desidera filtrare quando si prepara i registri. Per impostazione predefinita, questo valore è nullo.
  4. @P4 - Infine, il parametro P4 consente di definire una seconda stringa da cercare durante il filtro dei registri. Questo è utile quando è necessario affinare il tuo modello di ricerca.

La funzione restituisce quindi il contenuto del registro di errore, corrispondente al modello specifico.

SQL Server crea un registro di errore per ogni istanza che il server viene avviato. I registri di errore sono denominati ERROWLOG1, ERROWLOG2, ERRORLOG3, ecc.

Esempio di utilizzo:

I seguenti esempi mostrano come possiamo utilizzare la procedura memorizzata SP_Readerrorlog per leggere i registri disponibili.

Utilizzando SP_Readerrorlog () per leggere il registro degli errori corrente

L'esempio seguente utilizza SP_Readerrorlog () per leggere il registro degli errori corrente:

Exec SP_Readerrorlog;

Senza alcun parametro, la query precedente restituisce il registro degli errori corrente per SQL Server.

Un output di esempio è il seguente:

Utilizzo di SP_Readerrorlog () per leggere l'errore in un indice specifico

Per leggere Errorlog3 per SQL Server, possiamo eseguire la query come segue:

Exec SP_Readerrorlog 3, 1;

In questo caso, la procedura dovrebbe restituire il contenuto del file Errorlog3 per SQL Server.

Trova il registro con stringa specifica

Per filtrare i registri con una stringa specifica, possiamo eseguire la seguente query:

Exec SP_Readerrorlog 5, 1, "Avvio", "Master";

In questo caso, la query precedente dovrebbe restituire i registri all'avvio del database principale. Un output di esempio è come mostrato nel seguente:

Logdate | ProcessInfo | Testo |
-----------------------+-----------+------------------------------+
2022-10-17 14:44:28.550 | SPID9S | Database di avvio 'Master'.|

Conclusione

In questo articolo, hai imparato come utilizzare la procedura memorizzata SP_RederrorLog SP_Rederrorlog per leggere i registri degli errori nel server SQL.

Grazie per aver letto!