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

S’applique à :SQL Server

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

Dans cette rubrique

Avant de commencer

Limitations et restrictions

  • La commande RESTORE n'est pas autorisée 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, 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 (9.x) ou d’une version ultérieure.

Prerequisites

  • Que vous soyez en mode de récupération complète ou en mode de récupération utilisant les journaux de transactions, pour pouvoir restaurer une base de données, vous devez d'abord 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 restaurée n'existe pas, l'utilisateur doit posséder les autorisations CREATE DATABASE afin de pouvoir exécuter RESTORE. Si la base de données existe, les autorisations RESTORE reviennent par défaut aux membres des rôles serveur fixe 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 attribuées aux rôles dont les informations d'appartenance sont toujours immédiatement accessibles à partir du serveur. Étant donné que l’appartenance au rôle de base de données fixe ne peut être contrôlée que quand 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 ne détiennent 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èmeet 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, sur Restaurer, puis cliquez sur Base de données.

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

    • Database

      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 .

    Note

    Si la sauvegarde est prise à partir d'un serveur différent, le serveur de destination ne disposera pas des informations d'historique de sauvegarde pour la base de données spécifiée. Dans ce cas, sélectionnez Unité pour spécifier manuellement le fichier ou l'unité à restaurer.

    • Appareil

      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 .

      Dans la zone de liste Source : Unité : Base de données , sélectionnez le nom de la base de données à restaurer.

      Remarque Cette liste n'est disponible que lorsque Unité est sélectionné. Seules les bases de données qui ont des copies de sauvegarde sur l'unité sélectionnée 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 changer le nom de la base de données, entrez le nouveau nom dans la zone Base de données .

    Note

    Pour arrêter la restauration à un moment précis, cliquez sur Chronologie pour accéder à la boîte de dialogue Chronologie de 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 Jeux de sauvegarde à restaurer , sélectionnez les sauvegardes par la sauvegarde différentielle que vous souhaitez restaurer.

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

  7. Dans la page Options , dans le volet Options de restauration , vous pouvez choisir les options suivantes si elles s'appliquent à votre situation :

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

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

    • Demander confirmation avant chaque restauration de 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 à l'issue de l'opération de restauration.

    • RESTORE WITH RECOVERY est le comportement par défaut qui laisse la base de données opérationnelle en annulant les transactions non validées. Les journaux des transactions supplémentaires ne peuvent pas être restaurés. Choisissez 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 n’annule pas les transactions non validées. Les journaux des 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 lecture seule. Elle annule les transactions non validées, mais enregistre les actions d'annulation dans un fichier afin de rendre réversibles les effets de la récupération.

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

  9. Les opérations de restauration échoueront 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 Demander confirmation avant chaque restauration de sauvegarde si vous souhaitez être invité entre chaque opération de restauration. Cela n'est généralement pas nécessaire à moins que la base de données ne soit volumineuse et que vous ne souhaitiez surveiller l'état de l'opération de restauration.

  11. Utilisez éventuellement 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 précédant la sauvegarde différentielle. Pour plus d'informations, consultez Procédure : restaurer une sauvegarde complète.

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

    • le nom de la base de données à laquelle s'applique la sauvegarde différentielle ;

    • l’unité de sauvegarde à partir de laquelle la sauvegarde différentielle est restaurée ;

    • la clause NORECOVERY si vous devez appliquer des sauvegardes du journal des transactions après restauration de la sauvegarde différentielle. Dans le cas contraire, spécifiez la clause RECOVERY.

  3. Avec le mode de restauration complète ou de récupération utilisant les journaux de transactions, la restauration d'une sauvegarde différentielle restaure la base de données au point où la sauvegarde différentielle a été effectuée. Pour restaurer 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. Pour plus d’informations, consultez Appliquer les sauvegardes de fichier journal (SQL Server).

Exemples (Transact-SQL)

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

Cet exemple illustre la restauration et la sauvegarde différentielle de la base de données MyAdvWorks .

-- 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 illustre la restauration d'une base de données, la sauvegarde différentielle d'une base de données et la sauvegarde du journal des transactions de la base de données MyAdvWorks .

-- 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)