Troncation du journal des transactions

Mis à jour : 15 septembre 2007

Si les enregistrements du journal des transactions n'étaient jamais supprimés, le journal finirait par occuper tout l'espace disque disponible pour les fichiers journaux physiques. La troncation de journal libère automatiquement de l'espace disque qui peut être réutilisé par le journal des transactions.

Sauf si elle est retardée pour une raison quelconque, la troncation de journal se produit automatiquement comme suit :

  • Selon le mode de récupération simple, après un point de contrôle.
  • Selon le mode de restauration complète ou le mode de récupération utilisant les journaux de transactions, après une sauvegarde de fichier 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 restauration complète et en mode de récupération utilisant les journaux de transactions », plus loin dans cette rubrique.

Bien qu'automatique, la troncation de journal peut être retardée par divers facteurs. Pour plus informations sur les facteurs qui peuvent retarder la troncation de journal, consultez Facteurs susceptibles de retarder la troncation de journal.

ms189085.note(fr-fr,SQL.90).gifImportant :
Dans le cas d'un long retard dans la troncation de journal, le journal des transactions peut finir par être plein. Pour plus d'informations sur la gestion d'un journal des transactions plein, consultez Résolution des problèmes en cas de journal des transactions saturé (erreur 9002).

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

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

Dans le mode de restauration complète ou le mode de récupération utilisant les journaux de transactions, la partie inactive du journal ne peut pas être tronquée jusqu'à ce que tous ses enregistrements du journal aient été capturés dans une sauvegarde de fichier journal. Cela est nécessaire pour maintenir la séquence de journaux de transactions consécutifs, qui est une série des enregistrements du journal ayant 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 journal. Un point de contrôle est essentiel mais pas suffisant pour tronquer le journal selon le mode de restauration complète ou le 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 susceptibles de retarder la troncation de journal.
  • L'instruction BACKUP LOG ne spécifie pas WITH NO_TRUNCATE, WITH NO_LOG ni WITH COPY_ONLY.
    ms189085.note(fr-fr,SQL.90).gifImportant :
    Les options NO_LOG et TRUNCATE_ONLY de l'instruction BACKUP LOG rompent la séquence de journaux de transactions consécutifs en effaçant la partie inactive du journal sans en faire de copie de sauvegarde. Jusqu'à la prochaine sauvegarde complète ou différentielle, la base de données n'est pas protégée contre une défaillance du support. Cette fonctionnalité sera supprimée dans la prochaine version de Microsoft SQL Server. Évitez d'utiliser cette fonctionnalité dans de nouveaux travaux de développement, et modifiez dès que possible les applications qui utilisent actuellement cette fonctionnalité.

Pour sauvegarder le journal des transactions

Fonctionnement de la troncation du journal

ms189085.note(fr-fr,SQL.90).gifRemarque :
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 du journal sont ajoutés à la fin du journal logique, qui s'étend 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 de journal libère de l'espace dans le journal logique en supprimant les fichiers journaux virtuels inactifs depuis le début du journal logique. Pour 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.

ms189085.note(fr-fr,SQL.90).gifRemarque :
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 de séquence d'enregistrement (NSE) 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

Voir aussi

Concepts

Points de contrôle et partie active du journal
Définition des options de base de données
Utilisation des sauvegardes de journaux de transactions
Choix du mode de récupération d'une base de données
Présentation des modes de récupération

Autres ressources

BACKUP (Transact-SQL)
Truncate Method

Aide et Informations

Assistance sur SQL Server 2005

Historique des modifications

Version Historique

15 septembre 2007

Contenu modifié :
  • Modification du texte d'introduction pour clarifier le fait que la troncation de journal est automatique à moins que chaque fichier journal virtuel contienne le journal actif.
  • Déplacement des informations relatives à l'architecture de l'introduction vers la section « Fonctionnement de la troncation de journal ».
  • Ajout de liens vers une rubrique relative à la sauvegarde du journal des transactions.

14 avril 2006

Contenu modifié :
  • Extension des explications relatives à l'impact du mode de récupération sur la troncation du journal.
  • Clarification des descriptions des illustrations.