Uno de los típicos problemas que aquejan a los DBA de SQL Server es el crecimiento montruoso del mismo, muchas veces ocupa varias veces más espacio que la propia base de datos. Este a su vez cumple un rol muy importante para este motor, no está allí por sólo capricho
. Es el modo que el motor puede garantizar la integridad de los datos, toda transacción primeramente se escribe allí, y si y sólo sí el usuario confirma (COMMIT TRANSACTION) la operación pasa a la base de datos, también le sirve contra apagones, cortes de red o cualquier otro evento similar y así poder dejar los datos como estaban originalmente.
Existen tres modos de recuperación del log: Completa, Registro Masivo y Simple (No entraremos en detalle de esto por hoy).
La manera más típica de reducir el tamaño del Log es haciendo un Backup del mismo, tarea que recomiendo sea ejecutada períodicamente y en lo posible tener armado un plan de mantenimiento con ejecuciones automáticas.
1 2 3 4 5 6 | BACKUP LOG [Devtroce] TO DISK = N'C:\Backup\Devtroce.bak' WITH NOFORMAT, NOINIT, NAME = N'Devtroce-Transaction Log Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10; |
o bien,
1 2 | BACKUP LOG [Devtroce] WITH TRUNCATE_ONLY DBCC SHRINKFILE(Devtroce_Log, 1); |
Si con esto no logramos reducir por falta de espacio, o simplemente queremos recomenzar todo el transaction log, por que ya tenemos un backup, podemos hacer lo siguiente:
1 2 3 4 5 6 7 8 9 10 | -- poner la base de datos en modo single user, para evitar transacciones activas de parte de algun usuario ALTER DATABASE Devtroce SET SINGLE_USER; GO -- dejamos fuera de linea la base de datos por un momento USE [master] GO EXEC master.dbo.sp_detach_db @dbname = N'Devtroce'; GO |
Ahora está listo para ser borrado manualmente el fichero de log, la ruta típica es ésta pero podría variar según el caso:
C:\Archivos de programa\Microsoft SQL Server\MSSQL.1\MSSQL\Data\Devtroce.LDF
Y ahora está lista nuestra BD para ser puesta en línea nuevamente, comenzando de cero todo el Log de Transacciones:
1 2 3 4 5 6 | USE [master] GO CREATE DATABASE [Devtroce] ON (FILENAME = N'C:\Archivos de programa\Microsoft SQL Server\MSSQL.1\MSSQL\Data\Devtroce.MDF') FOR ATTACH GO |
Articulos Relacionados:









en
en
en
en
Sin Comentarios aun, puedes tú ser el primero en comentar!
Deja tu Comentario