Restaurer une sauvegarde de journal des transactions (SQL Server)

S’applique à :SQL Server

Cette rubrique explique comment restaurer une sauvegarde de fichier journal dans SQL Server, à l’aide de SQL Server Management Studio ou de Transact-SQL.

Dans cette rubrique

Avant de commencer

Prérequis

  • Ces sauvegardes doivent être restaurées dans l'ordre de leur création. Avant de pouvoir restaurer une sauvegarde donnée du journal des transactions, vous devez restaurer les sauvegardes antérieures suivantes sans annuler les transactions non validées, autrement dit avec l'option WITH NORECOVERY.

    • La sauvegarde complète de la base de données et la dernière sauvegarde différentielle, s'il en existe, effectuée avant la sauvegarde donnée du journal des transactions. Avant de créer la sauvegarde complète ou différentielle de base de données la plus récente, la base de données devait utiliser le mode de restauration complète ou le mode de récupération utilisant les journaux de transactions.

    • Toutes les sauvegardes du journal des transactions effectuées après la sauvegarde complète de la base de données ou la sauvegarde différentielle (si vous la restaurez), mais avant la sauvegarde donnée du journal des transactions. Les sauvegardes du journal des transactions doivent être appliquées dans l’ordre où elles ont été créées, sans aucune interruption dans la chaîne des journaux.

      Pour plus d’informations sur les sauvegardes du journal des transactions, consultez Sauvegardes des journaux de transactions (SQL Server) et Appliquer les sauvegardes du journal de transactions (SQL Server).

Sécurité

autorisations

RESTORE les autorisations sont accordées aux rôles dans lesquels les informations d’appartenance sont toujours facilement disponibles pour le serveur. Étant donné que l’appartenance au rôle de base de données fixe ne peut être vérifiée que lorsque la base de données est accessible et non endommagée, ce qui n’est pas toujours le cas lorsqu’elle RESTORE est exécutée, les membres du rôle de base de données fixe db_owner n’ont RESTORE pas d’autorisations.

Utilisation de SQL Server Management Studio

Avertissement

La procédure de restauration normale consiste à sélectionner les sauvegardes des journaux dans la boîte de dialogue Restaurer la base de données en même temps que les sauvegardes de données et les sauvegardes différentielles.

Pour restaurer une sauvegarde de journal des transactions

  1. Après vous être connecté à l’instance appropriée du moteur de base de données Microsoft SQL Server, dans l’Explorateur d’objets, cliquez sur le nom du serveur pour développer l’arborescence du serveur.

  2. Développez Bases de donnéespuis, selon la base de données, sélectionnez une base de données utilisateur ou développez Bases de données système et sélectionnez une base de données système.

  3. Cliquez avec le bouton droit sur la base de données, pointez sur Tâches, pointez sur Restaurer, puis cliquez sur Journal des transactions, pour ouvrir la boîte de dialogue Restaurer le journal des transactions .

    Remarque

    Si Journal des transactions est grisé, vous devrez peut-être d’abord restaurer une sauvegarde complète ou différentielle. Utilisez la boîte de dialogue Sauvegarde de la base de données .

  4. Dans la zone de liste Base de données de la page Général , sélectionnez le nom d'une base de données. Seules les bases de données en état de restauration sont répertoriées.

  5. Pour préciser la source et l'emplacement des jeux de sauvegarde à restaurer, cliquez sur l'une des options suivantes :

    • À partir de sauvegardes précédentes de la base de données

      Sélectionnez la base de données à restaurer dans la liste déroulante. La liste contient uniquement les bases de données qui ont été sauvegardées selon l'historique de sauvegarde msdb .

    • À partir d'un fichier ou d'une bande

      Cliquez sur le bouton Parcourir (...) pour ouvrir la boîte de dialogue Sélectionner les unités de sauvegarde . Dans la zone Type du média de sauvegarde , sélectionnez l'un des types d'unités proposés. Pour sélectionner une ou plusieurs unités pour la zone Support de sauvegarde , cliquez sur Ajouter.

      Après avoir ajouté les unités souhaitées à la zone de liste Support de sauvegarde , cliquez sur OK pour revenir à la page Général .

  6. Dans la grille Sélectionner les sauvegardes du journal des transactions à restaurer , sélectionnez les sauvegardes à restaurer. Cette grille répertorie les sauvegardes du journal des transactions disponibles pour la base de données sélectionnée. Une sauvegarde du journal n'est disponible que si son Premier NSE est supérieur au Dernier NSE de la base de données. Les sauvegardes du journal sont répertoriées selon l’ordre des numéros de séquence du journal (LSN) qu’elles contiennent et doivent être restaurées dans cet ordre.

    Le tableau suivant répertorie les en-têtes de colonnes de la grille et décrit leur valeur.

    En-tête Valeur
    Restaurer Les cases à cocher indiquent les jeux de sauvegarde à restaurer.
    Nom Nom de l’ensemble de sauvegarde.
    Composant Composant sauvegardé : Base de données, Fichier ou <vide> (pour les journaux des transactions).
    Base de données Nom de la base de données impliquée dans la sauvegarde.
    Date de début Date et heure de début de la sauvegarde, d'après les paramètres régionaux du client.
    Date de fin Date et heure de fin de la sauvegarde, d'après les paramètres régionaux du client.
    Premier LSN Numéro de séquence du journal de la première transaction du jeu de sauvegarde. Vide pour les sauvegardes de fichiers.
    Dernier LSN Numéro séquentiel du journal de la dernière transaction du jeu de sauvegarde. Vide pour les sauvegardes de fichiers.
    LSN du point de contrôle Numéro de séquence du journal du checkpoint le plus récent au moment de la création de la sauvegarde.
    LSN complet Numéro séquentiel dans le journal correspondant à la sauvegarde complète la plus récente de la base de données.
    Serveur Nom de l'instance du moteur de base de données qui a effectué l'opération de sauvegarde.
    Nom d’utilisateur Nom de l'utilisateur qui a effectué la restauration.
    Taille Taille du jeu de sauvegarde en octets.
    Position Position du jeu de sauvegarde dans le volume
    Expiration Date et heure d'expiration du jeu de sauvegardes.
  7. Sélectionnez l’un des suivants :

    • Limite dans le temps

      Conservez la valeur par défaut (Le plus récent possible) ou sélectionnez une date et une heure données en cliquant sur le bouton d’exploration pour ouvrir la boîte de dialogue Limite de restauration dans le temps .

    • Transaction marquée

      Restaurez la base de données vers une transaction précédemment marquée. Cette option ouvre la boîte de dialogue Sélectionner une transaction marquée . Celle-ci affiche une grille qui répertorie les transactions marquées disponibles dans les sauvegardes du journal des transactions sélectionnées.

      Par défaut, la restauration s'effectue jusqu'à la transaction marquée, en l'excluant. Pour restaurer également la transaction marquée, sélectionnez Inclure la transaction marquée.

      Le tableau suivant répertorie les en-têtes de colonnes de la grille et décrit leur valeur.

      En-tête Valeur
      <vide> Affiche une case à cocher permettant de sélectionner le repère.
      Marque de transaction Nom de la transaction marquée spécifiée par l'utilisateur lors de la validation de la transaction.
      Date Date et heure de la validation de la transaction. La date et l’heure de la transaction sont affichées telles qu’elles sont enregistrées dans la table msdbgmarkhistory, et non selon la date et l’heure de l’ordinateur client.
      Description Description de la transaction marquée spécifiée par l'utilisateur lorsque la transaction a été validée (le cas échéant).
      LSN Numéro de séquence du journal de la transaction marquée.
      Base de données Nom de la base de données où la transaction marquée a été validée.
      Nom d’utilisateur Nom de l'utilisateur de la base de données qui a validé la transaction marquée.
  8. Pour afficher ou sélectionner les options avancées, cliquez sur Options dans le volet Sélectionner une page .

  9. Dans la section Options de restauration , les options sont les suivantes :

    • Conserver les paramètres de la réplication (WITH KEEP_REPLICATION)

      Conserve les paramètres de réplication lors de la restauration d'une base de données publiée sur un serveur autre que celui sur lequel la base de données a été créée.

      Cette option est disponible uniquement avec l’option Laisser la base de données opérationnelle en restaurant les transactions non validées (décrite plus loin). Cela équivaut à la restauration d’une base de données avec l’option RECOVERY .

      La vérification de cette option équivaut à utiliser l’option KEEP_REPLICATION dans une instruction Transact-SQLRESTORE.

    • Demander confirmation avant chaque restauration de sauvegarde

      Avant de restaurer chaque jeu de sauvegarde (après le premier), cette option affiche la boîte de dialogue Poursuivre la restauration, qui vous invite à indiquer si vous souhaitez continuer la séquence de restauration. Cette boîte de dialogue affiche le nom du prochain jeu de médias (s'il est disponible), le nom du jeu de sauvegarde et la description du jeu de sauvegarde.

      Cette option est particulièrement utile lorsque vous devez changer des bandes de différents supports de sauvegarde. Vous pouvez par exemple l'utiliser lorsque le serveur n'a qu'un périphérique à bandes. Attendez d'être prêt à continuer avant de cliquer sur OK.

      Cliquez sur Non pour laisser la base de données dans l'état de restauration. Si vous le souhaitez, vous pouvez poursuivre la séquence de restauration lorsque la dernière restauration est terminée. Si la sauvegarde suivante est une sauvegarde de données ou différentielle, utilisez à nouveau la tâche Restaurer la base de données . S'il s'agit d'une sauvegarde de journal, utilisez la tâche Restaurer le journal des transactions .

    • Restreindre l'accès à la base de données restaurée (WITH RESTRICTED_USER)

      Limite l’accès à la base de données restaurée aux membres de db_owner, dbcreatorou sysadmin.

      La vérification de cette option est synonyme d’utilisation de l’option RESTRICTED_USER dans une instruction Transact-SQLRESTORE.

  10. Pour les options État de récupération , spécifiez l'état de la base de données après la restauration.

    • Laisser la base de données prête à l’emploi en annulant les transactions non validées. Les journaux des transactions supplémentaires ne peuvent pas être restaurés. (RESTORE AVEC RÉCUPÉRATION)

      Récupère la base de données. Cette option équivaut à l’option RECOVERY dans une instruction Transact-SQLRESTORE.

      Choisissez cette option uniquement si vous ne voulez restaurer aucun fichier journal.

    • Laisser la base de données non opérationnelle, et ne pas restaurer les transactions non validées. Des journaux de transactions supplémentaires peuvent être restaurés. (RESTORE AVEC NORECOVERY)

      Laisse la base de données non récupérée dans l'état RESTORING . Cette option équivaut à utiliser l’option NORECOVERY dans une instruction Transact-SQLRESTORE.

      Lorsque vous la choisissez, l'option Conserver les paramètres de réplication n'est pas disponible.

      Important

      Pour une base de données secondaire ou miroir, sélectionnez toujours cette option.

    • Laisser la base de données en lecture seule. Annulez les transactions non validées, mais enregistrez les actions d'annulation dans un fichier d'annulation afin de rendre réversibles les effets de la récupération. (RESTORE AVEC MISE EN VEILLE)

      Laisse la base de données dans un état de secours. Cette option équivaut à utiliser l’option STANDBY dans une instruction Transact-SQLRESTORE.

      Le choix de cette option vous oblige à spécifier un fichier de secours.

  11. Éventuellement, spécifiez un nom de fichier d'annulation dans la zone de texte Fichiers d'annulation . Cette option est indispensable si vous laissez la base de données en lecture seule. Vous pouvez rechercher le fichier de secours ou taper son chemin d'accès dans la zone de texte.

Utilisation de Transact-SQL

Important

Nous vous recommandons de toujours spécifier explicitement WITH NORECOVERY ou WITH RECOVERY dans chaque RESTORE instruction pour éliminer l’ambiguïté. Cela est particulièrement important lors de l'écriture de scripts.

Pour restaurer une sauvegarde de journal des transactions

  1. Exécutez l’instruction RESTORE LOG pour appliquer la sauvegarde du journal des transactions, en spécifiant :

    • le nom de la base de données à laquelle sera appliqué le journal des transactions ;

    • l'unité de sauvegarde à partir de laquelle sera restaurée la sauvegarde du journal des transactions ;

    • La clause NORECOVERY.

    La syntaxe de base pour cette instruction est la suivante :

    RESTORE LOG database_name FROM <backup_device> WITH NORECOVERY.

    nom_base_de_données représente le nom de la base de données et <unité_de_sauvegarde> correspond au nom de l’unité qui contient la sauvegarde du journal en cours de restauration.

  2. Répétez l'étape 1 pour chaque sauvegarde du journal des transactions à appliquer.

  3. Après avoir restauré la dernière sauvegarde de votre séquence de restauration, pour récupérer la base de données, utilisez l'une des instructions suivantes :

    • Récupérez la base de données dans le cadre de la dernière RESTORE instruction LOG :

      RESTORE LOG <database_name> FROM <backup_device> WITH RECOVERY;  
      GO  
      
    • Attendez de récupérer la base de données à l’aide d’une instruction distincte RESTOREDATABASE :

      RESTORE LOG <database_name> FROM <backup_device> WITH NORECOVERY;   
      RESTORE DATABASE <database_name> WITH RECOVERY;  
      GO  
      

      Attendre de récupérer la base de données vous permet de vérifier si vous avez restauré toutes les sauvegardes de journaux nécessaires. Cette méthode est souvent conseillée si vous effectuez une restauration limitée dans le temps.

    Important

    Si vous créez une base de données miroir, omettez l'étape de récupération. Une base de données miroir doit rester dans l'état RESTORING.

Exemples (Transact-SQL)

Par défaut, la base de données AdventureWorks2025 utilise le mode de récupération simple. Les exemples suivants nécessitent la modification de la base de données pour utiliser le mode de restauration complète, comme suit :

ALTER DATABASE AdventureWorks2022 SET RECOVERY FULL;  

R : Application d'une sauvegarde unique du journal des transactions

Dans cet exemple, nous commençons par restaurer la base de données AdventureWorks2025 à l'aide d'une sauvegarde complète de base de données qui réside sur une unité de sauvegarde nommée AdventureWorks2022_1. Nous appliquons ensuite la première sauvegarde du journal des transactions qui réside sur une unité de sauvegarde nommée AdventureWorks2022_log. Enfin, l’exemple restaure la base de données.

RESTORE DATABASE AdventureWorks2022  
   FROM AdventureWorks2022_1  
   WITH NORECOVERY;  
GO  
RESTORE LOG AdventureWorks2022  
   FROM AdventureWorks2022_log  
   WITH FILE = 1,  
   NORECOVERY;  
GO  
RESTORE DATABASE AdventureWorks2022  
   WITH RECOVERY;  
GO  

B. Application de plusieurs sauvegardes du journal des transactions

Dans cet exemple, nous commençons par restaurer la base de données AdventureWorks2025 à l'aide d'une sauvegarde complète de base de données qui réside sur une unité de sauvegarde nommée AdventureWorks2022_1. Nous appliquons ensuite, successivement, les premières sauvegardes du journal des transactions qui résident sur une unité de sauvegarde nommée AdventureWorks2022_log. Enfin, l’exemple récupère la base de données.

RESTORE DATABASE AdventureWorks2022  
   FROM AdventureWorks2022_1  
   WITH NORECOVERY;  
GO  
RESTORE LOG AdventureWorks2022  
   FROM AdventureWorks2022_log  
   WITH FILE = 1,  
   NORECOVERY;  
GO  
RESTORE LOG AdventureWorks2022  
   FROM AdventureWorks2022_log  
   WITH FILE = 2,  
   NORECOVERY;  
GO  
RESTORE LOG AdventureWorks2022  
   FROM AdventureWorks2022_log  
   WITH FILE = 3,  
   NORECOVERY;  
GO  
RESTORE DATABASE AdventureWorks2022  
   WITH RECOVERY;  
GO  

Tâches associées

Voir aussi

RESTORE (Transact-SQL)
Appliquer les sauvegardes du journal de transactions (SQL Server)