SQL Server mantiene un historial de todos los Backups y
Restore que se han hecho en el sistema. Nuestra organización realiza copias de
seguridad y restaura con frecuencia y debido a esto nuestra Base de Datos msdb
puede llegar a ser muy grande.
Como puedo purgar algunos de estos datos y liberar
espacio en la Base de Datos?
Solución:
Son mantenimiento regular, las tablas del sistema puede
crecer a tamaños muy grandes que conducen a un tamaño total grande para la Base
de Datos msdb.
Estas
tablas msdb incluyen:
backupfile
backupfilegroup
backupmediafamily
backupmediaset
backupset
retorefile
restorefilegroup
USE msdb;
GO
DECLARE
@v_MaxDateHistory DATETIME
SET
@v_MaxDateHistory = CONVERT(DATETIME,CONVERT(VARCHAR,DATEADD(MONTH,-3,GETDATE()),112))
EXEC sp_delete_backuphistory @v_MaxDateHistory;
GO
Debido a que los índices no son los apropiados en estas
tablas, el procedimiento almacenado toma mucho tiempo en completarse ¿Cuál es
la solución? Estos índices aceleran el proceso:
CREATE INDEX [media_set_id] ON
[dbo].[backupset] ([media_set_id]);
CREATE INDEX [restore_history_id] ON
[dbo].[restorefile] ([restore_history_id]);
CREATE INDEX [restore_history_id] ON [dbo].[restorefilegroup] ([restore_history_id]);
Para comparar:
SELECT count (*) FROM restorefile;
SELECT count (*) FROM
restorefilegroup;
SELECT count (*) FROM
restorehistory;
SELECT count (*) FROM backupfile;
SELECT count (*) FROM backupset;
SELECT count (*) FROM
backupmediafamily;
SELECT count (*) FROM
backupmediaset;
No hay comentarios:
Publicar un comentario