Sidebar

Muy poco conocemos esta forma de revisar el log de errores desde una ventana de sql.

La sintaxis de xp_readerrorlog es la siguiente:

EXEC xp_ReadErrorLog    <LogNumber>, <LogType>,

                        <SearchTerm1>, <SearchTerm2>,

                        <StartDate>, <EndDate>, <SortOrder>

 

Los parámetros son los siguientes

Parameter Values
<LogNumber> Número de log 0, 1, 2 …
Por ejemplo el 0 regresa el log actual, mientras que el dos ERRORLOG.2
<LogType> 1 – Leer el log de SQL Server
2 – Leer el log del Agente
<SearchTerm1> String a buscar
<SearchTerm2> Segundo string a buscar
<StartDate> Leer logs desde la fecha
<EndDate> Leer logs hasta la fecha
<SortOrder> ASC – Ascendente o DESC – Descendente

 

Un ejemplo a utilizar podria ser el siguiente:

EXEC master.dbo.xp_readerrorlog 0, 1, 'log', 'backed' ,'20160923','20160924', N'desc';

 

Este nos arrojaria el log de SQL Server actual, que contenga la palabara log y backed desde Septiembre 23 a septiembre 24 del 2016 en modo descendente.

También podriamos hacer un script que fuera ejecutado diariamente para revisar algun error en el log.

 


declare @Time_Start datetime;
declare @Time_End datetime;
set @Time_Start=getdate()-2;
set @Time_End=getdate();
-- Create the temporary table
CREATE TABLE #ErrorLog (logdate datetime
                      , processinfo varchar(255)
                      , Message varchar(500))
-- Populate the temporary table
INSERT #ErrorLog (logdate, processinfo, Message)
   EXEC master.dbo.xp_readerrorlog 0, 1, null, null , @Time_Start, @Time_End, N'desc';
-- Filter the temporary table
SELECT LogDate, Message FROM #ErrorLog
WHERE (Message LIKE '%error%' OR Message LIKE '%failed%') AND processinfo NOT LIKE 'logon'
ORDER BY logdate DESC
-- Drop the temporary table 
DROP TABLE #ErrorLog
 

Tips BD