Partager via


Restaurer une sauvegarde différentielle de base de données (SQL Server)

Cette rubrique explique comment restaurer une sauvegarde différentielle de base de données dans SQL Server 2014 à l’aide de SQL Server Management Studio ou de Transact-SQL.

Dans cette rubrique

Avant de commencer

Limitations et restrictions

  • RESTORE n’est pas autorisé dans une transaction explicite ou implicite.

  • Les sauvegardes créées avec une version plus récente de SQL Server ne peuvent pas être restaurées dans les versions antérieures de SQL Server.

  • Dans SQL Server 2014, vous pouvez restaurer une base de données utilisateur à partir d’une sauvegarde de base de données créée à l’aide de SQL Server 2005 ou d’une version ultérieure.

Conditions préalables

  • Sous le modèle de récupération complète ou journalisée en bloc, avant de pouvoir restaurer une base de données, vous devez sauvegarder le journal des transactions actif (appelé fin du journal). Pour plus d’informations, consultez Sauvegarder un journal des transactions (SQL Server).

Sécurité

Autorisations

Si la base de données en cours de restauration n’existe pas, l’utilisateur doit disposer des autorisations CREATE DATABASE pour pouvoir exécuter RESTORE. Si la base de données existe, les autorisations RESTORE sont par défaut accordées aux membres des rôles serveur fixes sysadmin et dbcreator et au propriétaire (dbo) de la base de données (pour l’option FROM DATABASE_SNAPSHOT, la base de données existe toujours).

Les autorisations RESTORE 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 lorsque RESTORE est exécuté, les membres du rôle de base de données fixe db_owner n’ont pas d’autorisations RESTORE.

Utilisation de SQL Server Management Studio

Pour restaurer une sauvegarde différentielle de base de données

  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ées. Selon la base de données, sélectionnez une base de données utilisateur ou développez bases de données système, puis 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 Base de données.

  4. Dans la page Général , utilisez la section Source pour spécifier la source et l’emplacement des jeux de sauvegarde à restaurer. Sélectionnez l’une des options suivantes :

    • 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 sauvegardées en fonction de l’historique de sauvegarde msdb .

    Remarque

    Si la sauvegarde est effectuée à partir d’un autre serveur, le serveur de destination ne dispose pas des informations d’historique de sauvegarde pour la base de données spécifiée. Dans ce cas, sélectionnez Appareil pour spécifier manuellement le fichier ou l’appareil à restaurer.

    • Appareil

      Cliquez sur le bouton Parcourir (...) pour ouvrir la boîte de dialogue Sélectionner des appareils de sauvegarde . Dans la zone Type de support de sauvegarde , sélectionnez l’un des types d’appareils répertoriés. Pour sélectionner un ou plusieurs appareils pour la zone de support de sauvegarde , cliquez sur Ajouter.

      Après avoir ajouté les appareils que vous souhaitez dans la zone de liste des supports de sauvegarde , cliquez sur OK pour revenir à la page Général .

      Dans la zone de liste Source : Appareil : Base de données , sélectionnez le nom de la base de données qui doit être restaurée.

      Note Cette liste est disponible uniquement lorsque l’appareil est sélectionné. Seules les bases de données qui ont des sauvegardes sur l’appareil sélectionné seront disponibles.

  5. Dans la section Destination , la zone Base de données est automatiquement renseignée avec le nom de la base de données à restaurer. Pour modifier le nom de la base de données, entrez le nouveau nom dans la zone Base de données .

    Remarque

    Pour arrêter la restauration à un point spécifique dans le temps, cliquez sur Chronologie pour accéder à la boîte de dialogue Chronologie de la sauvegarde . Pour obtenir de l’aide sur l’arrêt d’une restauration de base de données à un moment spécifique, consultez Restaurer une base de données SQL Server à un point dans le temps (modèle de récupération complète).

  6. Dans la grille des jeux de sauvegarde à restaurer, sélectionnez les sauvegardes, y compris la sauvegarde différentielle, que vous souhaitez restaurer.

    Pour plus d’informations sur les colonnes de la grille Jeux de sauvegarde à restaurer, consultez Restaurer la base de données (page Général).

  7. Dans la page Options , dans le volet Options de restauration , vous pouvez sélectionner l’une des options suivantes, le cas échéant pour votre situation :

    • Remplacer la base de données existante (WITH REPLACE)

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

    • Demande de confirmation avant de restaurer chaque sauvegarde

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

    Pour plus d’informations sur ces options, consultez Restaurer la base de données (page Options).

  8. Sélectionnez une option pour la zone État de récupération . Cette zone détermine l’état de la base de données après l’opération de restauration.

    • RESTORE WITH RECOVERY est le comportement par défaut qui laisse la base de données prête à être utilisée en supprimant les transactions non validées. Les journaux des transactions supplémentaires ne peuvent pas être restaurés. Sélectionnez cette option si vous restaurez toutes les sauvegardes nécessaires maintenant.

    • RESTORE WITH NORECOVERY qui laisse la base de données non opérationnelle et ne restaure pas les transactions non validées. Les journaux de transactions supplémentaires peuvent être restaurés. La base de données ne peut pas être utilisée tant qu’elle n’est pas récupérée.

    • RESTORE WITH STANDBY qui laisse la base de données en mode lecture seule. Il annule les transactions non validées, mais enregistre les actions d’annulation dans un fichier de secours afin que les effets de récupération puissent être rétablis.

    Pour obtenir des descriptions des options, consultez Restaurer la base de données (page Options).

  9. Les opérations de restauration échouent s’il existe des connexions actives à la base de données. Vérifiez l’option Fermer les connexions existantes pour vous assurer que toutes les connexions actives entre Management Studio et la base de données sont fermées.

  10. Sélectionnez Invite avant de restaurer chaque sauvegarde si vous souhaitez être invité entre chaque opération de restauration. Cela n’est généralement pas nécessaire, sauf si la base de données est volumineuse et que vous souhaitez surveiller l’état de l’opération de restauration.

  11. Si vous le souhaitez, utilisez la page Fichiers pour restaurer la base de données à un nouvel emplacement. Pour obtenir de l’aide sur le déplacement d’une base de données, consultez Restaurer une base de données vers un nouvel emplacement (SQL Server).

  12. Cliquez sur OK.

Utilisation de Transact-SQL

Pour restaurer une sauvegarde différentielle de base de données

  1. Exécutez l’instruction RESTORE DATABASE, en spécifiant la clause NORECOVERY, pour restaurer la sauvegarde complète de la base de données fournie avant la sauvegarde différentielle de la base de données. Pour plus d’informations, consultez Guide pratique pour restaurer une sauvegarde complète.

  2. Exécutez l’instruction RESTORE DATABASE pour restaurer la sauvegarde différentielle de base de données, en spécifiant :

    • Nom de la base de données à laquelle la sauvegarde différentielle de base de données est appliquée.

    • Périphérique de sauvegarde à partir duquel la sauvegarde différentielle de base de données est restaurée.

    • La clause NORECOVERY doit être utilisée si vous avez des sauvegardes de journal des transactions à appliquer après la restauration de la sauvegarde différentielle de la base de données. Sinon, spécifiez la clause RECOVERY.

  3. Avec le modèle de récupération complète ou journalisée en bloc, la restauration d’une sauvegarde différentielle de base de données restaure la base de données au point auquel la sauvegarde différentielle de base de données a été effectuée. Pour effectuer une récupération jusqu’au point de défaillance, vous devez appliquer toutes les sauvegardes du journal des transactions créées après la dernière sauvegarde différentielle de base de données. Pour plus d’informations, consultez Appliquer les sauvegardes du journal de transactions (SQL Server).

Exemples (Transact-SQL)

A. Restauration d’une sauvegarde différentielle de base de données

Cet exemple restaure la base de données MyAdvWorks et sa sauvegarde différentielle.

-- Assume the database is lost, and restore full database,   
-- specifying the original full database backup and NORECOVERY,   
-- which allows subsequent restore operations to proceed.  
RESTORE DATABASE MyAdvWorks  
   FROM MyAdvWorks_1  
   WITH NORECOVERY;  
GO  
-- Now restore the differential database backup, the second backup on   
-- the MyAdvWorks_1 backup device.  
RESTORE DATABASE MyAdvWorks  
   FROM MyAdvWorks_1  
   WITH FILE = 2,  
   RECOVERY;  
GO  

B. Restauration d’une base de données, d’une base de données différentielle et d’une sauvegarde du journal des transactions

Cet exemple restaure une base de données, une base de données différentielle et une sauvegarde du journal des transactions de la MyAdvWorks base de données.

-- Assume the database is lost at this point. Now restore the full   
-- database. Specify the original full database backup and NORECOVERY.  
-- NORECOVERY allows subsequent restore operations to proceed.  
RESTORE DATABASE MyAdvWorks  
   FROM MyAdvWorks_1  
   WITH NORECOVERY;  
GO  
-- Now restore the differential database backup, the second backup on   
-- the MyAdvWorks_1 backup device.  
RESTORE DATABASE MyAdvWorks  
   FROM MyAdvWorks_1  
   WITH FILE = 2,  
   NORECOVERY;  
GO  
-- Now restore each transaction log backup created after  
-- the differential database backup.  
RESTORE LOG MyAdvWorks  
   FROM MyAdvWorks_log1  
   WITH NORECOVERY;  
GO  
RESTORE LOG MyAdvWorks  
   FROM MyAdvWorks_log2  
   WITH RECOVERY;  
GO  

Tâches associées

Voir aussi

Sauvegardes différentielles (SQL Server)
RESTORE (Transact-SQL)