Reducir transaction log de SQL Server

El transaction log es fundamental en cualquier base de datos dentro de un SQL Server, pero hay veces que, va creciendo exponencialmente hasta que podemos quedarnos sin espacio en disco en el servidor.

Este fichero lleva un registro de las modificaciones que se han hecho en la base de datos, por lo que, en un momento dado, si algo falla, este fichero será esencial a la hora de recuperar la consistencia de la base de datos.

Para reducir/truncar el log de una forma correcta hay que seguir varios pasos:

1-  Realizamos backup de la base de datos desde el SQL Management o mediante una sentencia:

Backup log Base_de_datos

to disk  =‘C:\copia\Backupbd.bak’

2- Cambiamos a SIMPLE el modo de recuperación de la base de datos:

ALTER DATABASE Base_de_datos

SET RECOVERY SIMPLE;

GO

3- Reducimos el transaction log a 1MB (o lo que necesitemos):

DBCC SHRINKFILE(Base_de_datos_Log, 1);

GO

4- Volvemos al modelo de recuperación completa:

ALTERDATABASE Base_de_datos

SET RECOVERY FULL;

GO

En la documentación de Microsoft podrás encontrar más Info acerca del transaction log de SQL Server:

https://docs.microsoft.com/es-es/sql/relational-databases/logs/the-transaction-log-sql-server?view=sql-server-ver15