Aquí tenemos un poco de historial de copias de seguridad.

Tenemos un poco de historial de copias de seguridad aquí.

SQL Server rastrea el historial de cada copia de seguridad. Almacena estos datos en la base de datos MSDB. Es una base de datos del sistema y, de forma predeterminada, nuestras bases de datos del sistema se almacenan en la unidad C a menos que se especifique lo contrario durante la instalación.

Esto representa un peligro de varias maneras diferentes:

La unidad C puede llenarse, causando que las escrituras MSDB fallen. La unidad del sistema se llena con más frecuencia de lo que podría pensar, debido a que los usuarios descuidados descargan archivos enormes a su escritorio (ubicados en la unidad del sistema) o a que las actualizaciones de Windows descargan muchos archivos a una carpeta temporal en la unidad del sistema.

MSDB podría crecer para llenar la unidad C, causando que Windows falle. En los casos en que estamos haciendo copias de seguridad de registros de transacciones muy frecuentes de un gran número de bases de datos, y nunca purgamos MSDB, esta base de datos puede crecer hasta ser lo suficientemente grande como para amenazar unidades C pequeñas. Cuando la unidad C se llena, Windows falla mucho.

La unidad del sistema suele ser lenta. En versiones antiguas de SQL Server, las bases de datos del sistema no estaban bien indexadas. Combine esto con unidades locales lentas, y tenemos una receta para un acceso MSDB lento. En un caso, durante nuestras ventanas de copia de seguridad nocturnas, ¡2/3 del tiempo se gastó simplemente actualizando MSDB!

Las herramientas de monitoreo pueden consultar MSDB de manera ineficiente. Hemos visto casos en los que las herramientas de monitoreo de servidores de terceros revisaban constantemente MSDB para asegurarse de que todas las bases de datos recibieran copias de seguridad, pero sus consultas no usaban índices. Estas consultas pueden ser lo más lento en el servidor.

Esta parte de nuestro script sp_Blitz de SQL Server comprueba si hay un historial de copias de seguridad de MSDB de más de 60 días. Esto por sí solo no es un problema, es posible que desee mantener largos períodos de historial de copias de seguridad solo para hacer informes de rendimiento, pero considere mover esos datos a Excel o a su herramienta de informes favorita en lugar de golpear MSDB cada vez.

Regrese a sp_Blitz o Háganos preguntas

Cómo limpiar el Historial de Copias de seguridad de MSDB Sobrecargado

Considere purgar su historial de copias de seguridad de MSDB de datos de más de 60 días. Puedes hacer esto de un par de maneras diferentes:

  • Puede crear un plan de mantenimiento que ejecute la Tarea de Limpieza del Historial de forma regular.
  • Puede crear un trabajo simple de agente de SQL Server que ejecute sp_delete_backuphistory de forma regular (también puede hacer que ejecute sp_purge_jobhistory si desea que coincida con la funcionalidad del plan de mantenimiento).

Expanda el nodo Plan de mantenimiento en SSM, haga clic con el botón derecho y seleccione » Nuevo plan de mantenimiento…»

2015-04-10_14-20-46

Elija Tarea de Limpieza de mantenimiento en la ventana de Herramientas (tenga en cuenta que a veces esta ventana se oculta a la izquierda debajo del Explorador de objetos en SSM:

2015-04-10_14-21-26

Para finalizar, haga doble clic en la tarea, elija el tipo de limpieza que desea realizar y la cantidad de datos que desea conservar. A veces crearé dos tareas, porque me importa menos el historial de Trabajo del Agente y el Historial del Plan de Mantenimiento que las copias de seguridad, y generalmente quiero que mi historial de copias de seguridad coincida con mi política de retención de datos.

2015-04-10_14-22-03

De cualquier manera, si su servidor tiene una gran cantidad de historial, este paso tardará mucho tiempo en ejecutarse la primera vez. Como Brent señaló en el artículo de cuello de botella de MSDB, es posible que tenga que recurrir a medidas extremas como cambiar las claves foráneas de la base de datos del sistema solo para que se produzcan las eliminaciones.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.