SQL Server : Fichier de Log (.LDF) qui devient énorme.

Comment diminuer de taille le fichier de transactions en un seul script SQL ?

Lorsqu’une base de données est en mode de récupération « Full » (Complète), les fichiers journaux .LDF peuvent devenir énormes (toutes les transactions sont enregistrées).

En lancant le script SQL ci-dessous, vous allez sauvegarder vos bases et fichiers de transaction, et diminuer la taille du fichier LDF :

-- Sauvegarde complète
BACKUP DATABASE MaBase TO DISK = ’S:mssqlMaBase.bak’
GO
BACKUP LOG MaBase TO DISK = ’S:mssqlMaBase_log.bak’
GO

USE MaBase
GO

-- (MaBase_log est le nom LOGIQUE du fichier LDF physique... A vérifier donc !)
DBCC SHRINKFILE(MaBase_log)
GO

NB : le fait de faire une sauvegarde complète d’une BDD vide le fichier de log « LDF »… mais ne diminue pas sa taille ! C’est pourquoi il faut faire un SHRINKFILE.

NB2 : C’est pourquoi il est important de faire une sauvegarde complète une fois par jour, afin d’empêcher le fichier LDF de grossir démesurément (le fichier se « videra » puis l’espace sera réutilisé…)

NB3 : Il faut également réfléchir à passer en mode de récupération SIMPLE. Le fichier LDF ne grossira pas autant, mais la perte de données admissible en cas de crash sera plus grande.