Appliquer les sauvegardes du journal de transactions (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 .
Dans cette rubrique :
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 complète de la base de données ou la sauvegarde différentielle de base de données immédiatement précédente 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 non encore récupérée : La base de données ne peut pas être récupérée 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 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 nom_base_de_données WITH NORECOVERY). Ensuite, 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 nom_base_de_données 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, la récupération annule toutes les transactions incomplètes. Cette phase se nomme phase de restauration. Cette opération est nécessaire pour restaurer l'intégrité de la base de données. Après la restauration, 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.
Notes
Dans certains cas, vous pouvez ajouter un fichier de façon explicite pendant la restauration du journal.
Utilisation des 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. |
Notes
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 à 21h45 (point d'échec), les procédures suivantes peuvent être utilisées :
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 base de données de 8h00. Restaurez plutôt la sauvegarde complète de base de données la plus récente de 18h00, puis appliquez la sauvegarde du journal de 20h00 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
Notes
Cette autre solution est utile si un problème vous empêche d'utiliser la sauvegarde complète de base de données de 18h00. Ce processus prend plus de temps que la restauration de la sauvegarde complète de base de données de 18h00.
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 base de données de 8h00, puis restaurez dans l'ordre les quatre sauvegardes du journal des transactions. 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.
Notes
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 à un point dans le temps (modèle 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 des bases de données associées qui contiennent une transaction marquée
Pour récupérer une base de données après la restauration de sauvegardes à l'aide de WITH NORECOVERY