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 en utilisant SQL Server Management Studio ou 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, 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 version ultérieure.

Prérequis

  • Sous le mode de récupération complète ou le mode de récupération en mode blocage minimal, avant de pouvoir restaurer une base de données, vous devez d'abord sauvegarder le journal de transactions actif (appelé la 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 CREATE DATABASE des autorisations nécessaires pour pouvoir s’exécuter RESTORE. Si la base de données existe, RESTORE les autorisations par défaut sont 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).

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

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 en développer l’arborescence.

  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 :

    • 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 .

    Remarque

    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 .

    Remarque

    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 concernant l’arrêt d’une restauration de base de données à un moment précis dans le temps, consultez Restaurer une base de données SQL Server jusqu’à une limite dans le temps (mode de récupération complète).

  6. Dans la grille Jeux de sauvegarde à restaurer, sélectionnez les sauvegardes jusqu’à 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 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 prête à être utilisée en supprimant 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. Des 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. 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. Activez l’option Fermer les connexions existantes pour garantir 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 concernant le déplacement d’une base de données, consultez Restaurer une base de données à 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 RESTOREDATABASE , 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 Procédure : restaurer une sauvegarde complète.

  2. Exécutez l’instruction RESTOREDATABASE pour restaurer la sauvegarde différentielle de 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 avez des sauvegardes du journal des transactions à appliquer après avoir restauré la sauvegarde différentielle de la base de données. Dans le cas contraire, spécifiez la clause RECOVERY.

  3. Avec le modèle de récupération complet ou le modèle de récupération en mode journalisation en bloc, la restauration d’une sauvegarde différentielle de la base de données restaure celle-ci jusqu’au moment où la sauvegarde différentielle de la base de données a été terminé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)

R : Restauration d'une sauvegarde différentielle de base de données

Cet exemple restaure une base de données et une sauvegarde différentielle de base de données 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)