Gérer la taille du fichier journal des transactions

Dans certains cas, il peut être utile de réduire ou développer physiquement le fichier journal physique du journal des transactions d'une base de données SQL Server. Cette rubrique contient des informations sur la façon de contrôler la taille d'un journal des transactions SQL Server, réduire le journal des transactions, ajouter ou agrandir un fichier journal de transactions, optimiser le taux de croissance du journal des transactions tempdb et contrôler la croissance d'un fichier journal de transactions.

Dans cette rubrique :

  • Contrôler l'utilisation de l'espace pour le journal

  • Réduire la taille du fichier journal

  • Ajouter ou agrandir un fichier journal

  • Optimisation de la taille du journal des transactions tempdb

  • Contrôler la croissance d'un fichier journal de transactions

Contrôler l'utilisation de l'espace pour le journal

Vous pouvez contrôler l'espace occupé par le journal à l'aide de DBCC SQLPERF(LOGSPACE). Cette commande retourne des informations sur la quantité d'espace journal actuellement utilisée et indique à quel moment le journal des transactions a besoin d'être tronqué. Pour plus d'informations, consultez DBCC SQLPERF (Transact-SQL). Pour plus d'informations sur la taille actuelle d'un fichier journal, sa taille maximale et l'option de croissance automatique du fichier, vous pouvez également utiliser les colonnes size, max_size et growth pour ce fichier journal dans sys.database_files. Pour plus d'informations, consultez sys.database_files (Transact-SQL).

Important

Nous vous recommandons d'éviter de surcharger le disque du journal.

[Haut de la page]

Réduire la taille du fichier journal

Pour réduire la taille physique d'un fichier journal physique, vous devez réduire le fichier journal. Cela est utile si vous savez qu'un fichier journal de transactions contient de l'espace inutilisé dont vous n'avez pas besoin. La réduction d'un fichier journal ne peut avoir lieu que lorsque la base de données est en ligne et, également, lorsqu'au moins un fichier journal virtuel est libre. Dans certains cas, la réduction du journal peut n'être possible qu'après la troncation de journal suivante.

[!REMARQUE]

Certains facteurs (par exemple, une transaction longue) chargés de maintenir les fichiers journaux virtuels actifs pendant une période de temps prolongée peuvent limiter, voire empêcher, la réduction du journal. Pour plus d'informations sur les facteurs susceptibles de retarder la troncation du journal, consultez Journal des transactions (SQL Server).

La réduction d'un fichier journal supprime un ou plusieurs fichiers journaux virtuels qui ne contiennent aucune partie du journal logique (autrement dit, des fichiers journaux virtuels inactifs). Lorsque vous réduisez un fichier journal de transactions, un nombre suffisant de fichiers journaux virtuels inactifs sont supprimés à la fin du fichier journal afin de réduire le journal et le ramener à une taille proche de la taille cible.

Pour réduire un fichier journal (sans réduire les fichiers de base de données)

Pour surveiller les événements de réduction du fichier journal

To monitor log space

[!REMARQUE]

Il est possible de définir une réduction automatique des fichiers de la base de données et des fichiers journaux. Toutefois, nous vous déconseillons la réduction automatique, et la propriété de base de données autoshrink est définie par défaut par la valeur FALSE. Si autoshrink est définie par la valeur TRUE, la troncation automatique réduit la taille d'un fichier uniquement lorsque plus de 25 pour cent de son espace est inutilisé. Le fichier est réduit soit à la taille à laquelle seuls 25 % de ce dernier sont inutilisés soit à sa taille d'origine, selon la valeur la plus élevée. Pour plus d'informations sur la modification du paramètre de la propriété autoshrink, consultez Afficher ou modifier les propriétés d'une base de données et utilisez la propriété Réduction automatique de la page Options, ou consultez Options SET de ALTER DATABASE (Transact-SQL) et utilisez l'option AUTO_SHRINK.

[Haut de la page]

Ajouter ou agrandir un fichier journal

Une autre solution pour gagner de l'espace consiste à agrandir le fichier journal existant (si l'espace disque le permet) ou à ajouter un fichier journal à la base de données, généralement sur un autre disque.

  • Pour ajouter un fichier journal à la base de données, utilisez la clause ADD LOG FILE de l'instruction ALTER DATABASE. L'ajout d'un fichier journal permet au journal de croître.

  • Pour agrandir le fichier journal, utilisez la clause MODIFY FILE de l'instruction ALTER DATABASE en spécifiant la syntaxe SIZE et MAXSIZE. Pour plus d'informations, consultez ALTER DATABASE (Transact-SQL).

[Haut de la page]

Optimiser la taille du journal des transactions tempdb

Le redémarrage d'une instance de serveur permet de redimensionner le journal des transactions de la base de données tempdb conformément à sa taille d'origine avant la croissance automatique. Ceci peut réduire les performances du journal des transactions tempdb. Vous pouvez éviter cette surcharge en augmentant la taille du journal des transactions tempdb après avoir démarré ou redémarré l'instance de serveur. Pour plus d'informations, consultez Base de données tempdb.

[Haut de la page]

Contrôler la croissance d'un fichier journal de transactions

L'instruction ALTER DATABASE (Transact-SQL) vous permet de gérer la croissance d'un fichier journal de transactions. Notez les points suivants :

  • Pour modifier la taille actuelle du fichier selon les unités Ko, Mo, Go et To, utilisez l'option SIZE.

  • Pour modifier l'incrément de croissance, utilisez l'option FILEGROWTH. Une valeur 0 indique que la croissance automatique est désactivée et qu'aucun espace supplémentaire n'est autorisé. Un faible incrément de croissance automatique d'un fichier journal peut réduire les performances. L'incrément de croissance d'un fichier journal doit être suffisamment important pour éviter une expansion fréquente. Un incrément de croissance par défaut de 10 % convient généralement.

    Pour plus d'informations sur la modification de la propriété de croissance d'un fichier journal, consultez ALTER DATABASE (Transact-SQL).

  • Pour contrôler la taille maximale d'un fichier journal en Ko, Mo, Go et To ou affecter la valeur UNLIMITED à la croissance, utilisez l'option MAXSIZE.

[Haut de la page]

Voir aussi

Référence

BACKUP (Transact-SQL)

Concepts

Résoudre les problèmes liés à un journal des transactions saturé (erreur SQL Server 9002)