La problématique de logs de transaction est toujours compliquée à gérer avec SQL Server. Globalement, ces fichiers LDF sont censés se vider une fois le backup des fichiers de transaction effectué.
Le fait est que pour des raisons diverses, ces fichiers peuvent continuer à croître sans limite (en général à cause d’erreur de ces backups) et poser de gros soucis de place sur les serveurs.
La solution avec les versions précédentes à SQL Server 2008 était donc d’exécuter les commandes (on retrouve d’ailleurs un script pour cela) :
BACKUP LOG [MaDB] WITH TRUNCATE_ONLY
DBCC SHRINKDATABASE ([MaDB], 1)
Le fait est que sous SQL Server 2008, cette commande TRUNCATE ONLY n’est plus valable et retourne une erreur :
Msg 155, Level 15, State 1, Line 1
'TRUNCATE_ONLY' is not a recognized BACKUP option.
Ainsi, on ne peux plus vider le fichier LDF de avec cette méthode et un long fil de messages traîte de ce sujet :
Il en ressort donc la méthode suivante qui fonctionne bien, mais doit être utilisée à bon escient :
ALTER DATABASE [MaDB] SET RECOVERY SIMPLE WITH NO_WAIT
DBCC SHRINKDATABASE ([MaDB], 1, TRUNCATEONLY)
ALTER DATABASE [MaDB] SET RECOVERY FULL WITH NO_WAIT
Bonne gestion
Romelard Fabrice [MVP]
Commentaires
Enregistrer un commentaire