May
5th
Mon
5th
Compactar log de una base de datos de SQL Server
declare @base as varchar(30)
set @base = (select name
from sysfiles
where fileid = 2)
DBCC SHRINKDATABASE (nombre_base,TRUNCATEONLY)
USE nombre_base
DBCC SHRINKFILE(@base,TRUNCATEONLY)
BACKUP LOG nombre_base with TRUNCATE_ONLY
Hace un tiempo, tuvimos un problema con las bases de datos de la empresa (SQL Server 2000). Al tener bastantes transacciones durante el dia, en pocos meses el log de transacciones crecía significativamente (uno llegó a medir casi 90 GB).
Esto, obviamente, era un problema, ya que en poco tiempo se llenaba le disco duro y los sistemas dejaban de operar.
Duramos un tiempo buscando la solución hasta encontrar el comando que está lineas arriba.
De medir mas de 90 GB, limpia y compacta el log hasta quedar solamente de 1 MB.
Tal vez lo ideal sea programar un Job y dejar que se ejecute el proceso cada domingo o cada mes.
