Troncation du journal des transactions

Si les enregistrements du journal des transactions n'étaient jamais supprimés, ils finiraient par occuper tout l'espace disque disponible pour les fichiers journaux physiques. La troncation du journal libère automatiquement de l'espace dans le journal logique pour que le journal des transactions puisse le réutiliser.

À moins qu'elle ne soit retardée pour une raison quelconque, la troncation du journal se produit automatiquement de la manière suivante :

  • En mode de récupération simple, après un point de contrôle.

  • En mode de restauration complète ou en mode de récupération utilisant les journaux de transactions, après une sauvegarde du journal, si un point de contrôle s'est produit depuis la dernière sauvegarde. Pour plus d'informations, consultez « Troncation du journal en mode de récupération complète et en mode de récupération utilisant les journaux de transactions » plus loin dans cette rubrique.

Bien qu'automatique, la troncation du journal peut être différée pour différents motifs. Pour obtenir des informations sur les facteurs susceptibles de retarder la troncation du journal, consultez Facteurs pouvant retarder la troncation du journal.

Important

En cas de retard prolongé de la troncation du journal, le journal des transactions peut se remplir complètement. Pour plus d'informations sur la gestion d'un journal des transactions saturé, consultez Résolution des problèmes en cas de journal des transactions saturé (erreur 9002).

Pour obtenir des informations sur l'architecture de la troncation du journal, consultez « Fonctionnement de la troncation du journal » plus loin dans cette rubrique.

Troncation du journal en mode de récupération complète et en mode de récupération utilisant les journaux de transactions

En mode de restauration complète ou en mode de récupération utilisant les journaux de transactions, la partie inactive du journal ne peut pas être tronquée tant que tous ses enregistrements de journal n'ont pas été capturés dans une sauvegarde de fichier journal. Cette condition est requise pour conserver la séquence de journaux de transactions consécutifs, série d'enregistrements de journal présentant une séquence ininterrompue de numéros séquentiels dans le journal. Le journal est tronqué lorsque vous sauvegardez le journal des transactions, en supposant que les conditions suivantes sont remplies :

  • Un point de contrôle s'est produit depuis la dernière sauvegarde du fichier journal. Un point de contrôle est essentiel mais pas suffisant pour tronquer le journal en mode de restauration complète ou en mode de récupération utilisant les journaux de transactions. Après le point de contrôle, le journal demeure intact au moins jusqu'à la prochaine sauvegarde du journal des transactions.

    Pour plus d'informations, consultez Points de contrôle et partie active du journal.

  • Aucun autre facteur n'empêche la troncation du journal.

    En général, des sauvegardes régulières permettent de libérer régulièrement de l'espace de journal à utiliser ultérieurement. Toutefois, différents facteurs, tels qu'une transaction de longue durée, peuvent empêcher momentanément la troncation du journal. Pour plus d'informations, consultez Facteurs pouvant retarder la troncation du journal.

  • L'instruction BACKUP LOG ne spécifie pas WITH COPY_ONLY.

Pour sauvegarder le journal des transactions

Fonctionnement de la troncation du journal

Notes

La troncation ne réduit pas la taille d'un fichier journal physique. La diminution de la taille physique d'un fichier journal nécessite de réduire le fichier. Pour plus d'informations sur la réduction de la taille du fichier journal physique, consultez Réduction du journal des transactions.

Le journal des transactions est un fichier cumulatif. Lors de la création de la base de données, le fichier journal logique commence au début du fichier journal physique. Les nouveaux enregistrements de journal sont ajoutés à la fin du journal logique et s'étendent vers la fin du journal physique. Le journal des transactions d'une base de données s'étend sur un ou plusieurs fichiers physiques. Le Moteur de base de données SQL Server divise chaque fichier journal physique en un certain nombre de fichiers journaux virtuels. La troncation du journal libère de l'espace dans le journal logique en supprimant des fichiers journaux virtuels inactifs à partir du début du journal logique. Pour obtenir des informations détaillées sur l'architecture du journal des transactions, consultez Architecture logique du journal des transactions et Architecture physique du journal des transactions.

Les fichiers du journal virtuel constituent l'unité d'espace réutilisable. Seuls les fichiers journaux virtuels qui contiennent uniquement des enregistrements de journal inactifs peuvent être tronqués. La partie active du journal des transactions, le journal actif, ne peut pas être tronquée car le journal actif est nécessaire pour récupérer la base de données. Le point de contrôle le plus récent définit le journal actif. Le journal peut être tronqué jusqu'à ce point de contrôle.

Notes

Pour plus d'informations sur le fonctionnement des fichiers journaux virtuels, consultez Architecture physique du journal des transactions.

Lorsque le point de contrôle est créé, la partie inactive du journal des transactions est marquée comme réutilisable. Après cela, elle peut être libérée par troncation du journal. La troncation libère les fichiers journaux virtuels inactifs afin qu'ils puissent être réutilisés. Par la suite, lorsqu'un nouvel enregistrement est écrit dans un journal virtuel libéré, ce fichier journal virtuel redevient actif.

L'une des informations consignées dans un point de contrôle est le numéro séquentiel dans le journal du premier enregistrement de journal qui doit être présent pour permettre une restauration à l'échelle de la base de données. Ce NSE porte le nom de NSE de récupération minimum (NSEmin). Le début de la partie active du journal est le journal virtuel qui contient le NSEmin. Lorsqu'un journal des transactions est tronqué, seuls les enregistrements de journal situés avant ce fichier journal virtuel sont libérés pour une réutilisation.

Les illustrations suivantes montrent un journal des transactions avant et après une troncation. La première illustration montre un journal des transactions qui n'a jamais été tronqué. Actuellement, quatre fichiers journaux virtuels sont utilisés par le journal logique. Le journal logique commence avant le premier fichier journal virtuel et se termine au journal virtuel 4. L'enregistrement NSEmin se trouve dans le journal virtuel 3. Les journaux virtuels 1 et 2 contiennent uniquement des enregistrements de journal inactifs. Ces enregistrements peuvent être tronqués. Le journal virtuel 5 est encore inutilisé et ne fait pas partie du journal logique actuel.

Journal des transactions avec quatre journaux virtuels

La deuxième illustration montre le journal après sa troncation. Les journaux virtuels 1 et 2 ont été libérés en vue de leur réutilisation. Le journal logique commence désormais au début du journal virtuel 3. Le journal virtuel 5 est encore inutilisé et ne fait pas partie du journal logique actuel.

Fichier journal divisé en quatre fichiers journaux virtuels