jueves, 17 de abril de 2008

Reducir el archivo de LOG de una base SQL Server

Si tienes una base de datos con un archivo de log realmente grande y el espacio utilizado es poco, con lo cual estas desperdiciando espacio, y tampoco justifica el uso tan grande (En otra entrada explicaré el porque puede ser necesario un log grande aún teniendo espacio desperdiciado).

Con el comando siguiente se puede ver el espacio ocupado por los archivos de log de las diferentes bases y el porcentaje de uso.

DBCC SQLPERF(LOGSPACE);


Van los pasos ....
Ejecutar checkpoint para asegurar el almacenado en la base de datos, de las transacciones finalizadas.

-- 1
checkpoint

-- 2 Posicionarse en la base a reducir
use miBase

-- 3 Verificar el nombre del Archivo de Log. Esto puede ser desde las propiedades de la BD en el adminstrador corporativo.
Si se quiere reducir por ejemplo a 50 MB.

-- 4 Para poder reducir el log es importante hacer backup del log. Si no se tiene espacio para hacer el backup efectivo se puede hacer omitiendo el backup pero marcado como que se realizó el backup.

Esta opción esta discontinuada desde la versión 2008
backup log miBase with truncate_only

Utilizar

backup Log miBase to disk = N'nul:'

-- 5 Luego ejecutar el comando siguiente el cual reduce el tamaño del Log a 50 MB

DBCC SHRINKFILE(miBase_log , 50 )

Bueno eso es todo espero les sirva.

Otra opción que estuve analizando es hacer:

-- 1
Alter Database miBase
set recovery simple

-- 2
DBCC SHRINKFILE(miBase_log , 50 )

--3
Alter Database miBase
set recovery full




1 comentario:

SANLEMOS dijo...

Bom blog parabéns