El ERRORLOG es el principal LOG de SQL Server, donde podremos encontrar mucha información de utilidad para resolver incidencias de SQL Server. Sin embargo, cada vez que se reinicia la Instancia de SQL Server, se crea un nuevo fichero de ERRORLOG, y por defecto sólo se mantiene un histórico de los seis últimos ficheros. Por lo tanto, si algún día tenemos varios reinicios inesperados (ej: varios Balanceos en un Cluster, quizás para comprobar nuevos discos presentados), nos encontraremos que habremos perdido todo nuestro histórico del ERRORLOG como consecuencia de los mismos. Además, nos puede interesar automatizar la búsqueda en el ERRORLOG para detectar ciertos errores, o facilitar la búsqueda de cierta información.
Lo primero que deberemos hacer es configurar el número máximo de ficheros de ERRORLOG, para aumentar el valor por defecto de seis, y de este modo, poder tener un histórico mayor, que lo necesitaremos en caso de que suframos varios reinicios inesperados por cualquier motivo, o para buscar mensajes de. Esta configuración se realiza de forma sencilla desde el SQL Server Management Studio (SSMS).
En el diálogo Configure SQL Server Error Logs seleccionaremos el número máximo de ficheros al valor deseado, en nuestro caso de ejemplo, especificaremos 99, que es el valor máximo.
El siguiente problema que tenemos que vencer, es que por defecto se crea un nuevo fichero de ERRORLOG sólo cada vez que se reinicia la Instancia de SQL. Por lo tanto, si tenemos una Instancia de SQL Server que no ha sido reiniciada en varios meses, tendremos un fichero de ERRORLOG demasiado grande. Para corregir esta situación, crearemos un Job en el Agente de SQL Server que ejecute el Procedimiento Almacenado master..sp_cycle_errorlog, y lo planificaremos para su ejecución diaria. De este modo, tendremos un fichero de ERRORLOG por día (o varios, en caso de experimentar algún reinicio de la Instancia de SQL), y lo que nos permitirá focalizar nuestras búsquedas en el fichero o ficheros concretos, que además serán más pequeños, resultando en búsquedas más eficientes.
Por último, para consultar el ERRORLOG podemos utilizar el Procedimiento Almacenado del Sistema xp_readerrorlog, el cual nos permitirá incluso automatizar las búsquedas de mensajes en el ERRORLOG para errores o mensajes determinados, y de este modo, poder realizar una administración más Pro-Activa. El procedimiento xp_readerrorlog incluye seis parámetros:
- Fichero que se desea consultar: 0 = current, 1 = Archive #1, 2 = Archive #2, etc...
- Tipo de Log: 1 o NULL = ERRORLOG; 2 = SQL Agent log
- Cadena de Búsqueda 1
- Cadena de Búsqueda 2
- Fecha hora de inicio de Búsqueda
- Fecha hora de fin de Búsqueda
- Orden deseado para los resultados: asc = ascendente; desc = descendente
Para más detalles sobre el Procedimiento Almacenado del Sistema xp_readerrorlog, puede consultarse el siguiente artículo: Reading the SQL Server log files using TSQL
Poco más por hoy. Como siempre, confío que la lectura resulte de interés.