Sauvegardes de la fin du journal (SQL Server)

S’applique à :SQL Server

Cet article s’applique uniquement à la sauvegarde et à la restauration des bases de données SQL Server qui utilisent les modèles de récupération complètes ou journalisées en bloc.

Une sauvegarde de la fin du journal capture tous les enregistrements de journal qui n’ont pas encore été sauvegardés (la fin du journal), afin d’éviter toute perte de travail et de conserver la chaîne de journaux intacte. Avant de pouvoir récupérer une base de données SQL Server à son dernier point dans le temps, vous devez sauvegarder la fin de son journal des transactions. La sauvegarde de la fin du journal est la dernière sauvegarde intéressante dans le plan de récupération de la base de données.

Les scénarios de restauration ne nécessitent pas tous une sauvegarde de la fin du journal. Vous n’avez pas besoin d’une sauvegarde de la fin du journal si le point de récupération est contenu dans une sauvegarde de journal antérieure. Une sauvegarde de la fin du journal n’est pas nécessaire si vous déplacez ou remplacez (remplacez) une base de données et n’avez pas besoin de la restaurer à un point de temps après sa sauvegarde la plus récente.

Scénarios nécessitant une sauvegarde de la fin du journal

Nous vous recommandons d'effectuer une sauvegarde de la fin du journal dans les scénarios suivants :

  • Si la base de données est en ligne et que vous envisagez d'effectuer une opération de restauration de la base de données, commencez par sauvegarder la fin du journal. Pour éviter une erreur pour une base de données en ligne, vous devez utiliser l’option WITH NORECOVERY de l’instruction BACKUP Transact-SQL.

  • Si une base de données est hors connexion, ne démarre pas et que vous devez restaurer la base de données, sauvegardez d'abord la fin du journal. Étant donné qu’aucune transaction ne peut se produire pour l’instant, utilisez l’option WITH NO_TRUNCATE . NO_TRUNCATE est effectivement identique à une sauvegarde du journal des transactions de copie uniquement. L’utilisation WITH NORECOVERY est facultative, car aucune transaction ne peut se produire pour l’instant.

  • Si une base de données est endommagée, essayez de effectuer une sauvegarde de la fin du journal à l’aide de l’option WITH CONTINUE_AFTER_ERROR de l’instruction BACKUP .

    Sur une base de données endommagée, la sauvegarde de la fin du journal peut réussir uniquement si les fichiers journaux ne sont pas endommagés, la base de données est dans un état qui prend en charge les sauvegardes de la fin du journal et la base de données ne contient aucune modification journalisée en bloc. Si aucune sauvegarde de la fin du journal ne peut être créée, toutes les transactions validées après la dernière sauvegarde du journal sont perdues.

Le tableau suivant récapitule les NORECOVERYoptions , et CONTINUE_AFTER_ERROR les options pour BACKUPNO_TRUNCATE.

Option BACKUP LOG Commentaires
NORECOVERY Utilisez chaque fois que vous envisagez NORECOVERY de poursuivre une opération de restauration sur la base de données. NORECOVERY prend la base de données dans l’état de restauration. Cette étape garantit que la base de données ne change pas après la sauvegarde de la fin du journal. Le journal est tronqué, sauf si l’option ou COPY_ONLY l’option NO_TRUNCATE est également spécifiée.

Important : Évitez d’utiliser NO_TRUNCATE, sauf lorsque la base de données est endommagée ou hors connexion. Vous devrez peut-être placer la base de données en mode mono-utilisateur pour obtenir un accès exclusif avant d’effectuer la restauration avec NORECOVERY. Après la restauration, rétablissez la base de données en mode multi-utilisateur.
CONTINUE_AFTER_ERROR Utilisez CONTINUE_AFTER_ERROR uniquement si vous sauvegardez la fin d’une base de données endommagée.

Lorsque vous sauvegardez la fin du journal d’une base de données endommagée, certaines des métadonnées généralement capturées dans les sauvegardes de journaux peuvent être indisponibles. Pour plus d'informations, consultez la section suivante.

Sauvegardes de la fin du journal qui ont des métadonnées de sauvegarde incomplètes

Les sauvegardes de la fin du journal capturent la fin du journal même si la base de données est hors connexion ou endommagée, ou s'il y manque des fichiers de données. Cela peut entraîner des métadonnées incomplètes à partir des commandes d’informations de restauration et msdb. Mais seules les métadonnées sont incomplètes ; le journal capturé est complet et exploitable.

Si une sauvegarde de la fin du journal comporte des métadonnées incomplètes, dans la table du jeu de sauvegarde , has_incomplete_metadata est définie sur 1. En outre, dans la sortie de RESTORE HEADERONLY, HasIncompleteMetadata est définie sur 1.

Si les métadonnées d’une sauvegarde de la fin du journal sont incomplètes, la table backupfilegroup manque la plupart des informations sur les groupes de fichiers au moment de la sauvegarde de la fin du journal. La plupart des colonnes de backupfilegroup table sont NULL; les seules colonnes significatives sont les suivantes :

  • backup_set_id
  • filegroup_id
  • type
  • type_desc
  • is_readonly

Tâches associées

Pour créer une sauvegarde de la fin du journal, consultez Sauvegarder le journal des transactions lorsque la base de données est endommagée (SQL Server).

Pour restaurer une sauvegarde du journal des transactions, consultez Restaurer une sauvegarde du journal des transactions (SQL Server).