Hola DBA’s! Siempre que nos preguntan sobre mantenimientos planificados de nuestros gestores hablamos sobre los chequeos de integridad, backups, mantenimiento de índices, etc, pero casi nunca mencionamos el rotado de nuestros logs de errores.
Los ErrorLog son ficheros que guardan toda la información generada por nuestros gestores: información como backups realizados, chequeos, errores, etc
Muchas veces nos encontramos con ficheros de ErrorLog muy pesados, por lo que se hace difícil de trabajar con ellos y manejarlos. Por ello planteamos en esta entrada los mecanismos para ciclar nuestros ficheros ErrorLogs y mantenerlos bajo control.
Rotar el ErrorLog se da cuando el gestor se reinicia, cuando se ejecuta el procedimiento sp_cycle_error_log (puedes ver la documentación oficial https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-cycle-errorlog-transact-sql) o a partir de SQL Server 2012 ejecutando un DBCC ERRORLOG
Por defecto, SQL Server mantiene un número de 6 ficheros de ErrorLog (archivados) y uno escribiendo, que se cerrará en la próxima rotación. Este parámetro se puede cambiar de la siguiente manera:
En la ventana de configuración, cambiar el número de logs que quieres mantener:
O a través de T-SQL:
USE [master]
GO
EXEC xp_instance_regwrite N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'NumErrorLogs', REG_DWORD, 10
GO
Nosotros, solemos configurar un job programado en nuestro SQL Agent que realiza el rotado del ErrorLog cada semana o cada día, dependiendo de la necesidad y casuísticas de nuestros gestores:
Y vosotros ¿cómo lo tenéis configurado?
Tíranos vuestras opiniones a nuestro correo en los comentarios.