Partager via


Appliquer des sauvegardes de journal des transactions (SQL Server)

Ce sujet s’applique uniquement au modèle de récupération complète ou au modèle de récupération avec journalisation en masse.

Cette rubrique décrit l’application des sauvegardes de journal des transactions dans le cadre de la restauration d’une base de données SQL Server.

Dans cette rubrique :

Configuration requise pour la restauration des sauvegardes du journal des transactions

Pour appliquer une sauvegarde du journal des transactions, les exigences suivantes doivent être remplies :

  • Suffisamment de sauvegardes de journaux pour une séquence de restauration : Vous devez avoir suffisamment d’enregistrements de journal sauvegardés pour terminer une séquence de restauration. Les sauvegardes de journaux nécessaires, y compris le log de fin le cas échéant, doivent être disponibles avant le début de la séquence de restauration.

  • Ordre de restauration correct : La sauvegarde complète de base de données ou la sauvegarde différentielle de base de données immédiatement précédente doit être restaurée en premier. Ensuite, tous les journaux de transactions créés après cette sauvegarde complète ou différentielle de base de données doivent être restaurés dans l’ordre chronologique. Si une sauvegarde du journal des transactions dans cette chaîne de journaux est perdue ou endommagée, vous pouvez restaurer uniquement les journaux des transactions avant le journal des transactions manquant.

  • Base de données non encore récupérée : Impossible de récupérer la base de données tant que le journal des transactions final n’a pas été appliqué. Si vous récupérez la base de données après avoir restauré l'une des sauvegardes intermédiaires du journal des transactions, et que cette restauration a lieu avant la fin de la chaîne de journaux, vous ne pouvez pas restaurer la base de données au-delà de ce point sans redémarrer la séquence complète de restauration, en commençant par la sauvegarde complète de la base de données.

    Conseil / Astuce

    Une bonne pratique consiste à restaurer toutes les sauvegardes de journal (RESTORE LOG database_name WITH NORECOVERY). Ensuite, après avoir restauré la dernière sauvegarde du journal, récupérez la base de données dans une opération distincte (RESTORE DATABASE database_name WITH RECOVERY).

Journaux de récupération et de transaction

Lorsque vous terminez l’opération de restauration et récupérez la base de données, la récupération restaure toutes les transactions incomplètes. Cette étape est connue sous le nom de phase d’annulation. Le retour en arrière est nécessaire pour restaurer l’intégrité de la base de données. Après la restauration, la base de données est en ligne et aucune sauvegarde du journal des transactions ne peut être appliquée à la base de données.

Par exemple, une série de sauvegardes de journal des transactions contient une transaction de longue durée. Le début de la transaction est enregistré dans la première sauvegarde du journal des transactions, mais la fin de la transaction est enregistrée dans la deuxième sauvegarde du journal des transactions. Il n’existe aucun enregistrement d’une opération de validation ou de restauration dans la première sauvegarde du journal des transactions. Si une opération de récupération s’exécute lorsque la première sauvegarde du journal des transactions est appliquée, la transaction de longue durée est traitée comme incomplète et les modifications de données enregistrées dans la première sauvegarde du journal des transactions pour la transaction sont restaurées. SQL Server n’autorise pas l’application de la deuxième sauvegarde du journal des transactions après ce point.

Remarque

Dans certaines circonstances, vous pouvez ajouter explicitement un fichier lors de la restauration du journal.

Utilisation des sauvegardes de journaux de transaction pour restaurer jusqu’au point de défaillance

Supposons la séquence d’événements suivante.

Heure Événement
8:00 A.M. Sauvegardez la base de données pour créer une sauvegarde complète de base de données.
Midi Sauvegarder le journal des transactions.
14h00 Sauvegarder le journal des transactions.
18h00 Sauvegardez la base de données pour créer une sauvegarde complète de base de données.
18h00 Sauvegarder le journal des transactions.
9h45 du soir L’échec se produit.

Remarque

Pour obtenir une explication de cet exemple de séquence de sauvegardes, consultez Sauvegardes du journal des transactions (SQL Server).

Pour restaurer la base de données à son état à 9 h 45 (point de défaillance), l’une des autres procédures suivantes peut être utilisée :

Alternative 1 : Restaurer la base de données à l’aide de la sauvegarde complète la plus récente de la base de données

  1. Créez une sauvegarde du journal des transactions actif à partir du moment de la défaillance.

  2. Ne restaurez pas la sauvegarde complète de la base de données de 8h00 du matin. Au lieu de cela, restaurez la sauvegarde complète de la base de données la plus récente de 18 h, puis appliquez la sauvegarde du journal de 20 h et la sauvegarde de la fin du journal.

Alternative 2 : Restaurer la base de données à l’aide d’une sauvegarde complète antérieure de la base de données

Remarque

Ce processus alternatif est utile si un problème vous empêche d’utiliser la sauvegarde complète de la base de données de 18h00. Ce processus prend plus de temps que la restauration à partir de la sauvegarde complète de la base de données de 18h00.

  1. Créez une sauvegarde du journal des transactions actuel jusqu'au point de panne.

  2. Restaurez la sauvegarde complète de la base de données à 8h00 du matin, puis restaurez en séquence les quatre sauvegardes du journal de transactions. Cette opération transfère toutes les transactions terminées jusqu’à 9 h 45.

    Cette alternative souligne la sécurité redondante offerte par la maintenance d’une chaîne de sauvegardes de journaux de transactions sur une série de sauvegardes complètes de base de données.

Remarque

Dans certains cas, vous pouvez également utiliser les journaux des transactions pour restaurer une base de données à un point spécifique dans le temps. Pour plus d’informations, restaurez une base de données SQL Server à un point dans le temps (mode de récupération complète).

Tâches associées

Pour appliquer une sauvegarde du journal des transactions

Pour effectuer une restauration vers votre point de récupération

Pour récupérer une base de données après la restauration des sauvegardes à l’aide de WITH NORECOVERY

Voir aussi

Journal des transactions (SQL Server)