Croissance du journal de transactions anormale…

Il arrive dans certain cas que malgré le mode de récupération « Simple » d’une base, votre journal de transactions ne cesse d’augmenter (Croissance du journal de transactions anormale).

L’origine est très probablement une transaction mal développé n’effectuant pas de commit. Problème, vous n’êtes pas développeur, et vos développeurs ne vous écoutent pas.

Ma solution : Forcer la fermeture de toutes les transactions en mettant la base Offline-Online et effectuer une sauvegarde ‘NUL’ pour purger ce journal de transactions. C’est radical, mais votre journal est purgé.

ALTER DATABASE BASE_TEST SET OFFLINE WITH ROLLBACK IMMEDIATE
GO

ALTER DATABASE BASE_TEST SET ONLINE
GO

BACKUP DATABASE [BASE_TEST ] TO  DISK = 'NUL' WITH NOFORMAT, INIT,  NAME = N'BASE_TEST ', SKIP, NOREWIND, NOUNLOAD,  STATS = 10
GO

Il est possible de faire moins violent mais si une transaction reste ouverte la commande « set offline » n’aboutira pas, voire restera « waiting » sans jamais aboutir, et votre problème demeurera !!!
Autre alternative :

ALTER DATABASE BASE_TEST SET OFFLINE WITH NO_WAIT

Dans ce cas, si la commande n’aboutie pas au bout d’un certain temps vous obtenez un message d’erreur.
Ce qui est un moindre mal.