Appliquer les sauvegardes du journal de transactions (SQL Server)
S’applique à : SQL Server
Cette rubrique concerne uniquement le mode de récupération complète ou le mode de récupération utilisant les journaux de transactions.
Cette rubrique décrit l’application de sauvegardes du journal des transaction dans le cadre de la restauration d’une base de données SQL Server.
Conditions requises pour la restauration des sauvegardes du journal des transactions
Pour appliquer une sauvegarde du journal des transactions, les conditions suivantes doivent être remplies :
Sauvegardes de journal en nombre suffisant pour une séquence de restauration Vous devez disposer de suffisamment d'enregistrements de journal sauvegardés pour exécuter une séquence de restauration. Les sauvegardes de journal nécessaires, notamment la sauvegarde de la fin du journal le cas échéant, doivent être disponibles avant le début de la séquence de restauration.
Ordre de restauration correct : La sauvegarde différentielle ou la sauvegarde complète de base de données effectuée juste avant doit d'abord être restaurée. Puis, 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 séquence de journaux de transactions consécutifs est perdue ou endommagée, vous ne pouvez restaurer que les journaux des transactions antérieurs au journal des transactions manquant.
Base de données pas encore récupérée : La base de données ne peut pas être récupérée tant que le dernier journal des transactions n'a pas été appliqué. Si vous récupérez la base de données après avoir restauré l'une des sauvegardes du journal des transactions intermédiaires, c'est-à-dire avant la fin de la séquence de journaux de transactions consécutifs, vous ne pouvez pas restaurer la base de données au-delà de ce point sans redémarrer toute la séquence de restauration, en commençant par la sauvegarde complète de base de données.
Conseil
Il est recommandé de restaurer toutes les sauvegardes des journaux (
RESTORE LOG *database_name* WITH NORECOVERY
). Puis, après la restauration de la dernière sauvegarde du journal, récupérez la base de données dans une opération séparée (RESTORE DATABASE *database_name* WITH RECOVERY
).
Récupération et journaux des transactions
Lorsque vous terminez l’opération de restauration et récupérez la base de données, le processus de récupération est exécuté pour garantir l’intégrité de la base de données. Pour plus d’informations sur le processus de récupération, consultez Vue d’ensemble de la restauration et de la récupération (SQL Server).
Une fois le processus de restauration terminé, la base de données passe en ligne, et aucune autre sauvegarde du journal des transactions ne peut être appliquée à la base de données. Par exemple, une série de sauvegardes du journal des transactions contient une transaction longue. Le démarrage 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 seconde sauvegarde du journal des transactions. Il n’y a pas d'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 est exécutée lors de l'application de la première sauvegarde du journal des transactions, la longue transaction 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 ne permet pas l’application de la deuxième sauvegarde du journal des transactions après ce stade.
Remarque
Dans certains cas, vous pouvez ajouter un fichier de façon explicite pendant la restauration du journal.
Utiliser les sauvegardes du journal des transactions pour effectuer une restauration jusqu’au point d’échec
Supposons la séquence d'événements suivante.
Temps | Événement |
---|---|
8h00 | Sauvegardez la base de données pour créer une sauvegarde complète de base de données. |
Midi | Sauvegarde du journal des transactions. |
16h00 | Sauvegarde du journal des transactions. |
18h00 | Sauvegardez la base de données pour créer une sauvegarde complète de base de données. |
20h00 | Sauvegarde du journal des transactions. |
21h45 | Une défaillance se produit. |
Pour une explication de cet exemple de cette séquence de sauvegardes, consultez Sauvegardes des journaux de transactions (SQL Server).
Pour restaurer la base de données dans l’état où elle se trouvait à 21 h 45 (point de défaillance), vous pouvez utiliser l’une ou l’autre des procédures suivantes :
Solution 1 : restaurer la base de données en utilisant la sauvegarde complète de base de données la plus récente
Créez une sauvegarde de la fin du journal du journal des transactions actuellement actif comme point d'échec.
Ne restaurez pas la sauvegarde complète de la base de données de 8 h 00. Au lieu de cela, restaurez la sauvegarde complète de la base de données de 18 h 00, plus récente, puis appliquez la sauvegarde de fichier journal de 20 h 00 et la sauvegarde de la fin du journal.
Solution 2 : restaurer la base de données en utilisant une sauvegarde complète de base de données antérieure
Cette autre solution est utile si un problème vous empêche d’utiliser la sauvegarde complète de la base de données à 18 heures. Ce processus prend plus de temps que la restauration de la sauvegarde complète de la base de données effectuée à 18 heures.
Créez une sauvegarde de la fin du journal du journal des transactions actuellement actif comme point d'échec.
Restaurez la sauvegarde complète de la base de données de 8 h 00, puis les quatre sauvegardes du journal des transactions dans l’ordre. Cette procédure restaure par progression toutes les transactions achevées jusqu'à 21h45.
Cette solution souligne la sécurité redondante offerte par le maintien d'une séquence de sauvegardes de journaux de transactions dans une série de sauvegardes complètes de base de données.
Dans certains cas, vous pouvez utiliser des journaux de transactions pour restaurer une base de données à un point spécifique dans le temps. Pour plus d’informations, consultez Restaurer une base de données SQL Server jusqu’à une limite 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 au point de récupération
Restaurer une base de données jusqu’au point d’échec en mode de récupération complète (Transact-SQL)
SqlRestore (SMO)
Récupération de bases de données associées contenant une transaction marquée
Pour récupérer une base de données après la restauration de sauvegardes à l'aide de WITH NORECOVERY
Voir aussi
Journal des transactions (SQL Server)
Guide d’architecture et gestion du journal des transactions SQL Server