martes, 10 de diciembre de 2013

Limpiar historial de respaldos


En esta entrada muy corta pero sumamente útil, te mostraré cómo eliminar el historial de copias de respaldo que se acumula en la base de datos msdb a lo largo del tiempo.

Comenzaré explicándote que no importa cómo saques el respaldo de tu base de datos, el historial de haberlo hecho se guarda, haya sido un respaldo de tipo Full, Log, Differential o de cualquier otro tipo.

Es común que en servidores que tengan implementado un esquema de Log Shipping, el tamaño de la base de datos msdb se dispare, esto se debe a que la cantidad de respaldos aumenta por la naturaleza propia de este esquema de alta disponibilidad y por lo tanto el historial de respaldos se incrementa.

Antes de limpiar el historial de respaldos es importante sacar un respaldo de la base de datos msdb, esto es para poder tener evidencia clara de las operaciones que se realizaron y en caso de una auditoría podamos demostrar que se hicieron los respaldos en tiempo y forma. También puede servirnos para demostrar que no se hicieron los respaldos, a veces la gente encargada de esta pequeña parte de la operación se le va el avión y no revisa que los respaldos se hayan ejecutado de forma correcta.

Si quisiéramos eliminar todo el historial de respaldos bastaría con utilizar el siguiente código:
DECLARE @Today DATETIME = GETDATE() EXEC msdb.dbo.sp_delete_backuphistory @Today

Veamos que el procedimiento almacenado sp_delete_backuphistory recibe como parámetro la fecha más antigua que se guardará en el historial de respaldos, eso implica que todo registro histórico de respaldo que se haya creado antes de esa fecha ya no estará almacenado en msdb.

Si se sacara un respaldo cada 30 días de la base de datos msdb, bien podríamos estar limpiando el historial de la siguiente manera:
DECLARE @MonthAgo DATETIME = DATEADD(DAY, -30, GETDATE()) EXEC msdb.dbo.sp_delete_backuphistory @MonthAgo

Espero esta entrada te haya resultado útil, nos vemos la siguiente.

No hay comentarios.:

Publicar un comentario