Aide pour opérations administratives, développement et optimisation dans Microsoft SQL Server
Les journaux de transactions des bases SQL Server conservent l’historique transactionnel des écritures dans les bases.
Problèmes possibles :
Si une base est en mode COMPLET et qu’aucune sauvegarde de journaux (BACKUP LOG) n’est planifiée, le journal grandira à l’infini.
Il n’y a que deux options :
recovery
).DBCC SQLPERF (LOGSPACE)
DBCC SQLPERF (LOGSPACE)
Sinon, la requête suivante suffit
SELECT
name as [db],
recovery_model_desc as [recovery]
FROM sys.databases
WHERE database_id > 4
ORDER BY name;
La requête suivante change le mode de récupération d’une base de données en SIMPLE :
use [master];
GO
ALTER DATABASE [<nom de la base de données>] SET RECOVERY SIMPLE WITH NO_WAIT
Vérifiez ensuite avec la commande DBCC SQLPERF (LOGSPACE)
que le pourcentage de remplissages du journal a baissé.
La taille physique du journal ne diminue pas automatiquement. C’est seulement le remplissage du fichier qui est ajusté.
Pour diminuer la taille du fichier de journal, vous devez effectuer un shrink. Par exemple avec la commande suivante.
USE [<nom de la base de données>]
GO
DBCC SHRINKFILE (N'<nom logique du fichier de journal>' , 200)
Cette commande essaie de diminuer la taille du fichier à 200 Mo. Cela peut ne pas réussir tout de suite, si la portion active du journal est à la fin du fichier. Réessayez plus tard si la taille n’a pas diminué.
Ne planifiez pas les shrinks. Consultez cet autre article et ma vidéo YouTube.