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 2012 à l'aide de SQL Server Management Studio ou de Transact-SQL.

Dans cette rubrique

  • Avant de commencer :

    Limitations et restrictions

    Conditions préalables

    Sécurité

  • Pour restaurer une sauvegarde différentielle de base de données, utilisez :

    SQL Server Management Studio

    Transact-SQL

  • Tâches associées

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 2012, 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 version ultérieure. Cependant, les sauvegardes des bases de données master, model et msdb créées avec SQL Server 2005 ou SQL Server 2008 ne peuvent pas être restaurées par SQL Server 2012.

Conditions préalables

  • 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 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 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 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 ne détiennent pas d'autorisations RESTORE.

Icône de flèche utilisée avec le lien Retour en haut[Top]

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, dans l'Explorateur d'objets, cliquez sur le nom du serveur pour développer son arborescence.

  2. Développez le dossier 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 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, 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.

    • Unité

      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 sur l'arrêt d'une restauration de base de données à un moment précis, 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 par la sauvegarde différentielle que vous souhaitez restaurer.

    Pour obtenir des 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 opérationnelle en annulant les transactions non validées. Les journaux de transaction 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 de transaction 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 une description 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 sur 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.

Icône de flèche utilisée avec le lien Retour en haut[Top]

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 du journal de transactions (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

Icône de flèche utilisée avec le lien Retour en haut[Top]

Voir aussi

Référence

RESTORE (Transact-SQL)

Concepts

Sauvegardes différentielles (SQL Server)