Sauvegarde avec le mode de récupération utilisant les journaux de transactions
Cette rubrique concerne l'optimisation des opérations en bloc sur les bases de données SQL Server employant habituellement le mode de récupération complète.
Le mode de récupération utilisant les journaux de transactions est un mode de récupération spécial à utiliser seulement par intermittence pour améliorer les performances de certaines opérations en bloc à grande échelle, notamment les importations en bloc de grandes quantités de données. L'essentiel des informations relatives aux sauvegarde en mode de récupération complète s'applique également au mode de récupération utilisant les journaux de transactions. Cette rubrique aborde uniquement les considérations spécifiques au mode de récupération utilisant les journaux de transactions.
[!REMARQUE]
Pour obtenir des informations sur les opérations minimales journalisées dans le cadre du mode de récupération utilisant les journaux de transactions, consultez Opérations pouvant faire l'objet d'une journalisation minimale.
Nous vous recommandons de réduire votre utilisation du mode de récupération utilisant les journaux de transactions. Il est recommandé de basculer en mode de récupération utilisant les journaux de transactions juste avant un ensemble d'opérations en bloc, d'effectuer les opérations puis de repasser immédiatement en mode de récupération complète. Pour plus d'informations, consultez Considérations relatives au remplacement du mode de récupération complet ou du mode de récupération utilisant les journaux de transactions.
Fonctionnement du mode de récupération utilisant les journaux de transactions
Comparé au mode de récupération complète qui journalise l'ensemble de toutes les transactions, le mode de récupération utilisant les journaux de transactions journalise de façon minimale les opérations effectuées en bloc, bien qu'il journalise complètement les autres transactions. Le mode de récupération utilisant les journaux de transactions protège contre les défaillances de support et, en ce qui concerne les opérations en bloc, apporte les meilleures performances et une moindre utilisation de l'espace de journalisation.
Cependant, ce mode accroît les risques de pertes de données de ces opérations massives, dans la mesure où les opérations journalisées en bloc excluent la possibilité de récupérer les modifications réalisées, transaction par transaction. Si une sauvegarde de journal contient des opérations journalisées en bloc, la restauration à un point précis dans le temps n'est pas possible dans cette sauvegarde de journal, vous ne pouvez restaurer que l'intégralité de la sauvegarde de journal.
En mode de récupération utilisant les journaux de transactions, si une sauvegarde de journal couvre des opérations en bloc, la sauvegarde de journal inclut aussi bien des pages de données et des enregistrements de journaux modifiés par des opérations en bloc. Cela est nécessaire pour capturer les résultats des opérations journalisées en bloc. Les étendues de données incorporées peuvent accroître considérablement la taille d'une sauvegarde de journal. De plus, la sauvegarde d’un journal nécessite un accès à tous les fichiers de données qui contiennent les transactions journalisées en bloc. Si les fichiers de base de données concernés ne sont pas accessibles, le journal des transactions ne peut pas être sauvegardé et toutes les opérations validées dans ce journal sont perdues.
Pour assurer le suivi des pages de données, une opération de sauvegarde de journal repose sur une page de bitmap de modifications en masse qui contient un bit pour chaque étendue. Pour chaque étendue mise à jour par une opération journalisée en bloc depuis la dernière sauvegarde de journal, le bit a la valeur 1 dans la bitmap. Les étendues de données sont copiées dans le journal suivies des données du journal. La figure suivante illustre la manière dont une sauvegarde de journal est construite.
Important
Dans les modes de récupération utilisant les journaux de transactions ou de restauration complète, tant que la première sauvegarde complète de données n'a pas eu lieu, les points de contrôle automatiques tronquent la partie inutilisée du journal des transactions, sauf si d'autres facteurs gardent les enregistrements du journal actifs. Après la première sauvegarde complète, les troncatures nécessitent la sauvegarde du journal des transactions. Pour des informations sur les facteurs qui retardent les troncatures, consultez Facteurs pouvant retarder la troncation du journal.
Restrictions sur les sauvegardes en mode de récupération utilisant les journaux de transactions
Le mode de récupération utilisant les journaux de transactions impose les restrictions suivantes sur les sauvegardes :
Si un groupe de fichiers qui contient des modifications journalisées en bloc est défini comme étant en lecture seule avant qu'une sauvegarde du fichier journal ne soit effectuée, toutes les sauvegardes de journal suivantes contenant les extensions modifiées par les opérations journalisées en bloc ainsi que le groupe de fichiers restent en lecture seule. Ces sauvegardes de journal prennent plus de place et de temps que dans le mode de récupération complète.
Pour éviter cette situation, passez en mode de récupération complète et sauvegardez le journal avant de mettre le groupe de fichiers en lecture seule. Puis définissez le groupe de fichiers comme étant en lecture seule.
Si des opérations en bloc ont été effectuées depuis la dernière sauvegarde du fichier journal, des modifications en bloc figurent dans la base de données. Dans ce cas, tous les fichiers doivent être en ligne ou ne plus exister. La sauvegarde d’un journal qui contient des opérations journalisées en bloc nécessite donc un accès aux fichiers de données qui contiennent les transactions journalisées en bloc.
Pour plus d'informations sur les restrictions de restauration, consultez Restauration en mode de récupération utilisant les journaux de transactions.
Définition d'une base de données en mode lecture seule après des transactions journalisées en bloc
Avec le mode de récupération utilisant les journaux de transactions, les sauvegardes de journaux fonctionnent correctement lorsqu'une base de données contient des modifications effectuées en bloc. Toutefois, si la base de données en lecture-écriture est convertie en base de données en lecture seule après une opération en bloc, les sauvegardes de journaux suivantes peuvent capturer des données inutiles. Ceci s'explique par le fait que le fichier de données ne peut pas être mis à jour pour rechercher les extensions qui ont été modifiées par une opération en bloc. Toutes les sauvegardes de journaux ultérieures contiennent les mêmes informations.
Recommandation Avant de convertir la base de données en base de données en lecture seule, passez en mode de récupération complète et effectuez la sauvegarde du journal. Ensuite, convertissez la base de données en base de données en lecture seule. Dans la pratique, la sauvegarde du journal d'une base de données en lecture seule n'a pas de sens. Une fois la conversion de la base de données en base de données en lecture seule effectuée, créez plutôt une sauvegarde complète de la base de données ou un jeu complet de sauvegardes du fichier. Pour plus d'informations sur le passage en mode de récupération, consultez Considérations relatives au remplacement du mode de récupération complet ou du mode de récupération utilisant les journaux de transactions.
[!REMARQUE]
Pour savoir comment sauvegarder une base de données en lecture seule, consultez Sauvegarde des bases de données en lecture seule.
Restaurations de sauvegardes en mode de récupération utilisant les journaux de transactions
Pour des information sur la restauration des sauvegardes d'une base de données en mode de récupération utilisant les journaux de transactions, consultez Restauration en mode de récupération utilisant les journaux de transactions.
Voir aussi