Rotado de log de SQL Server. Te contamos como implementarlo

Hola a todos, hoy vamos a contaros cómo implementar un rotado de log en SQL Server. Este término de log, puede ser un poco confuso. Puede ser el fichero de log de la base de datos, el backup de log, una tabla de log…En este caso vamos a hablar del log de SQL Server. Es una de las acciones más recurrentes de un DBA.

El log de SQL Server, muestra entre otras cosas, errores de conexión, cuándo se ha reiniciado la instancia, cuándo se ha hecho backup, etc. Esta información es interesante mantenerla, pero durante un tiempo. El problema viene cuando no se hace rotado de log y se empieza a acumular información desde hace años incluso. Esto provoca que cuando se intenta ver si ha habido algún error o el estado general de la instancia, no cargue, o cargue millones de datos inmanejables.

¿Qué es el rotado de log?

El rotado de log, se encarga de rotar esta información, cada día, cada 3 días, o el tiempo que se establezca. De esta forma, cuando consultemos esta información, tengamos el día en curso o los días más cercanos. Si queremos ir más atrás, simplemente tendríamos que marcar el siguiente fichero log. En el caso de la siguiente imagen, sería «Archive #1».

Rotado de log de SQL Server

Como se aprecia en la imagen, se generan siempre 6 ficheros más el día o fichero actual. Como norma general, esto no suele un problema en SQL Server y va rotando sin problemas cada día o cada poco tiempo.

Sin embargo, es bastante recurrente, encontrarnos con que, por algún motivo, en algunos clientes no siempre funciona de esta manera y llega a acumular registros desde hace años. Para evitar esta situación en estos casos, se puede implementar un rotado de log por medio de un job.

¿Cómo implementarlo por medio de un job?

En primer lugar, tenemos que tener en cuenta que para poder crear un job, necesitamos SQL Server Agent. Entre otras cosas, nos permite crear y gestionar jobs, que se ejecutan cada x tiempo, con algún comando que le indiquemos.

SQL Server Agent, está disponible para todas las ediciones de SQL Server, a excepción, de la versión gratuita (y muy limitada), SQL Express. Si tu instancia no es una versión SQL Express, puedes continuar, de lo contrario, habría que buscar un plan alternativo desde fuera de la instancia que haga el mismo trabajo.

En el caso que tu versión, no sea Express, podemos crear un job en SQL Server, que se ejecute cada día a las 00:00 por ejemplo. De esta forma, tendríamos una semana de profundidad: el día actual, y los 6 días anteriores, ya que guarda 6 ficheros de archivado. Si en vez de ejecutarlo cada día, lo ejecutamos cada 2 días, tendríamos 2 días por cada fichero, por lo que tendríamos 2 semanas de visibilidad, etc.

Una vez establecido el horario que queremos, debemos crear un paso que ejecute la siguiente instrucción:

EXEC master.sys.sp_cycle_errorlog;

Tras estos pasos, ya tendríamos, nuestro rotado de log establecido. Este rotado de log, se produce también, cuando se reinicia la instancia.

Nos encargamos nosotros

Si en tu caso, no tienes los conocimientos suficientes, o bien, tienes dificultades para implementarlo, confía en profesionales. Somos expertos en bases de datos SQL Server. Podemos evaluar tu caso e implementar un mantenimiento de SQL Server adecuado. Contacta con nosotros sin compromiso.

¿Aún no conoces Query Performance? Descubre cómo puede ayudarte en tu entorno Oracle. Más información en su página de LinkedIn.

Sígue a GPS en LinkedIn

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *