Restaurer une sauvegarde différentielle de base de données (SQL Server)Restore a Differential Database Backup (SQL Server)

S’APPLIQUE À : ouiSQL Server nonAzure SQL Database nonAzure Synapse Analytics (SQL DW) nonParallel Data Warehouse APPLIES TO: yesSQL Server noAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

Cette rubrique explique comment restaurer une sauvegarde différentielle de base de données dans SQL Server 2019 (15.x)SQL Server 2019 (15.x) à l'aide de SQL Server Management StudioSQL Server Management Studio ou de Transact-SQLTransact-SQL.This topic describes how to restore a differential database backup in SQL Server 2019 (15.x)SQL Server 2019 (15.x) by using SQL Server Management StudioSQL Server Management Studio or Transact-SQLTransact-SQL.

Dans cette rubriqueIn this topic:

Avant de commencer

Before you begin:

Limitations et restrictionsLimitations and restrictions

  • La commande RESTORE n'est pas autorisée dans une transaction explicite ou implicite.RESTORE is not allowed in an explicit or implicit transaction.

  • Les sauvegardes créées avec une version plus récente de SQL ServerSQL Server ne peuvent pas être restaurées dans les versions antérieures de SQL ServerSQL Server.Backups that are created by more recent version of SQL ServerSQL Server cannot be restored in earlier versions of SQL ServerSQL Server.

  • Dans SQL Server 2019 (15.x)SQL Server 2019 (15.x), 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)SQL Server 2005 (9.x) ou version ultérieure.In SQL Server 2019 (15.x)SQL Server 2019 (15.x), you can restore a user database from a database backup that was created by using SQL Server 2005 (9.x)SQL Server 2005 (9.x) or a later version.

Conditions préalablesPrerequisites

  • 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).Under the full or bulk-logged recovery model, before you can restore a database, you must back up the active transaction log (known as the tail of the log). Pour plus d’informations, consultez Sauvegarder un journal des transactions (SQL Server).For more information, see Back Up a Transaction Log (SQL Server).

Sécurité

Security

Autorisations

Permissions
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.If the database being restored does not exist, the user must have CREATE DATABASE permissions to be able to execute 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).If the database exists, RESTORE permissions default to members of the sysadmin and dbcreator fixed server roles and the owner (dbo) of the database (for the FROM DATABASE_SNAPSHOT option, the database always exists).

Les autorisations RESTORE sont attribuées aux rôles dont les informations d'appartenance sont toujours immédiatement accessibles à partir du serveur.RESTORE permissions are given to roles in which membership information is always readily available to the server. É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.Because fixed database role membership can be checked only when the database is accessible and undamaged, which is not always the case when RESTORE is executed, members of the db_owner fixed database role do not have RESTORE permissions.

Utilisation de SQL Server Management StudioUsing SQL Server Management Studio.

Pour restaurer une sauvegarde différentielle de base de donnéesTo restore a differential database backup

  1. Après vous être connecté à l’instance appropriée du Moteur de base de données SQL ServerSQL Server Database Engine MicrosoftMicrosoft, dans l’Explorateur d’objets, cliquez sur le nom du serveur pour développer son arborescence.After you connect to the appropriate instance of the MicrosoftMicrosoftMoteur de base de données SQL ServerSQL Server Database Engine, in Object Explorer, click the server name to expand the server tree.

  2. Développez Bases de données.Expand Databases. 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.Depending on the database, either select a user database or expand System Databases, and then select a system database.

  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.Right-click the database, point to Tasks, point to Restore, and then click Database.

  4. Dans la page Général , utilisez la section Source pour préciser la source et l'emplacement des jeux de sauvegarde à restaurer.On the General page, use the Source section to specify the source and location of the backup sets to restore. Sélectionnez l’une des options suivantes :Select one of the following options:

    • Sauvegarde de la base de données Database

      Sélectionnez la base de données à restaurer dans la liste déroulante.Select the database to restore from the drop-down list. La liste contient uniquement les bases de données qui ont été sauvegardées selon l'historique de sauvegarde msdb .The list contains only databases that have been backed up according to the msdb backup history.

    Notes

    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.If the backup is taken from a different server, the destination server will not have the backup history information for the specified database. Dans ce cas, sélectionnez Unité pour spécifier manuellement le fichier ou l'unité à restaurer.In this case, select Device to manually specify the file or device to restore.

    • Appareil device

      Cliquez sur le bouton Parcourir ( ... ) pour ouvrir la boîte de dialogue Sélectionner les unités de sauvegarde .Click the browse (...) button to open the **** Select backup devices**** dialog box. Dans la zone Type du média de sauvegarde , sélectionnez l'un des types d'unités proposés.In the Backup media type box, select one of the listed device types. Pour sélectionner une ou plusieurs unités pour la zone Support de sauvegarde , cliquez sur Ajouter.To select one or more devices for the Backup media box, click Add.

      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 .After you add the devices you want to the Backup media list box, click OK to return to the General page.

      Dans la zone de liste Source : Appareil : Base de données, sélectionnez le nom de la base de données à restaurer.In the Source: Device: Database list box, select the name of the database which should be restored.

      Remarque Cette liste n'est disponible que lorsque Unité est sélectionné. NOTE: This list is only available when Device is selected. Seules les bases de données qui ont des copies de sauvegarde sur l'unité sélectionnée seront disponibles.Only databases that have backups on the selected device will be available.

  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.In the Destination section, the Database box is automatically populated with the name of the database to be restored. Pour changer le nom de la base de données, entrez le nouveau nom dans la zone Base de données .To change the name of the database, enter the new name in the Database box.

    Notes

    Pour arrêter la restauration à un moment précis, cliquez sur Chronologie pour accéder à la boîte de dialogue Chronologie de sauvegarde .To stop the restore at a specific point in time, click Timeline to access the Backup Timeline dialog box. 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).For help with stopping a database restore at a specific point in time, see Restore a SQL Server Database to a Point in Time (Full Recovery Model).

  6. Dans la grille Jeux de sauvegarde à restaurer , sélectionnez les sauvegardes par la sauvegarde différentielle que vous souhaitez restaurer.In the Backup sets to restore grid, select the backups through the differential backup that you wish to restore.

    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).For information about the columns in the Backup sets to restore grid, see Restore Database (General Page).

  7. Dans la page Options , dans le volet Options de restauration , vous pouvez choisir les options suivantes si elles s'appliquent à votre situation :On the Options page, in the Restore options panel, you can select any of the following options, if appropriate for your situation:

    • Remplacer la base de données existante (WITH REPLACE) Overwrite the existing database (WITH REPLACE)

    • Conserver les paramètres de la réplication (WITH KEEP_REPLICATION) Preserve the replication settings (WITH KEEP_REPLICATION)

    • Demander confirmation avant chaque restauration de sauvegarde Prompt before restoring each backup

    • Restreindre l'accès à la base de données restaurée (WITH RESTRICTED_USER) Restrict access to the restored database [WITH RESTRICTED_USER]

    Pour plus d’informations sur ces options, consultez Restaurer la base de données (page Options).For more information about these options, see Restore Database (Options Page).

  8. Sélectionnez une option pour la zone État de récupération .Select an option for the Recovery state box. Cette zone détermine l'état de la base de données à l'issue de l'opération de restauration.This box determines the state of the database after the restore operation.

    • 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. RESTORE WITH RECOVERY is the default behavior which leaves the database ready for use by rolling back the uncommitted transactions. Les journaux des transactions supplémentaires ne peuvent pas être restaurés.Additional transaction logs cannot be restored. Choisissez cette option si vous restaurez toutes les sauvegardes nécessaires maintenant.Select this option if you are restoring all of the necessary backups now.

    • RESTORE WITH NORECOVERY qui laisse la base de données non opérationnelle et n’annule pas les transactions non validées. RESTORE WITH NORECOVERY which leaves the database non-operational, and does not roll back the uncommitted transactions. Les journaux des transactions supplémentaires peuvent être restaurés.Additional transaction logs can be restored. La base de données ne peut pas être utilisée tant qu'elle n'est pas récupérée.The database cannot be used until it is recovered.

    • RESTORE WITH STANDBY qui laisse la base de données en lecture seule. RESTORE WITH STANDBY which leaves the database in read-only mode. 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.It undoes uncommitted transactions, but saves the undo actions in a standby file so that recovery effects can be reverted.

    Pour obtenir des descriptions des options, consultez Restaurer la base de données (page Options).For descriptions of the options, see Restore Database (Options Page).

  9. Les opérations de restauration échoueront s'il existe des connexions actives à la base de données.Restore operations will fail if there are active connections to the database. Activez l'option Fermer les connexions existantes pour garantir que toutes les connexions actives entre Management StudioManagement Studio et la base de données sont fermées.Check the Close existing connections option to ensure that all active connections between Management StudioManagement Studio and the database are closed.

  10. Sélectionnez Demander confirmation avant chaque restauration de sauvegarde si vous souhaitez être invité entre chaque opération de restauration.Select Prompt before restoring each backup if you wish to be prompted between each restore operation. 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.This is not usually necessary unless the database is large and you wish to monitor the status of the restore operation.

  11. Utilisez éventuellement la page Fichiers pour restaurer la base de données à un nouvel emplacement.Optionally, use the Files page to restore the database to a new location. 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).For help with moving a database, see Restore a Database to a New Location (SQL Server).

  12. Cliquez sur OK.Click OK.

Utilisation de Transact-SQL

Using Transact-SQL

Pour restaurer une sauvegarde différentielle de base de donnéesTo restore a differential database backup

  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.Execute the RESTORE DATABASE statement, specifying the NORECOVERY clause, to restore the full database backup that comes before the differential database backup. Pour plus d’informations, consultez Procédure : Restaurer une sauvegarde complète.For more information, see How to: Restore a Full Backup.

  2. Exécutez l'instruction RESTORE DATABASE pour restaurer la sauvegarde différentielle de la base de données, en spécifiant :Execute the RESTORE DATABASE statement to restore the differential database backup, specifying:

    • le nom de la base de données à laquelle s'applique la sauvegarde différentielle ;The name of the database to which the differential database backup is applied.

    • l’unité de sauvegarde à partir de laquelle la sauvegarde différentielle est restaurée ;The backup device where the differential database backup is restored from.

    • la clause NORECOVERY si vous devez appliquer des sauvegardes du journal des transactions après restauration de la sauvegarde différentielle.The NORECOVERY clause if you have transaction log backups to apply after the differential database backup is restored. Dans le cas contraire, spécifiez la clause RECOVERY.Otherwise, specify the RECOVERY clause.

  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.With the full or bulk-logged recovery model, restoring a differential database backup restores the database to the point at which the differential database backup was completed. 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.To recover to the point of failure, you must apply all transaction log backups created after the last differential database backup was created. Pour plus d’informations, consultez Appliquer les sauvegardes du journal de transactions (SQL Server).For more information, see Apply Transaction Log Backups (SQL Server).

Exemples (Transact-SQL)

Examples (Transact-SQL)

R.A. Restauration d'une sauvegarde différentielle de base de donnéesRestoring a differential database backup

Cet exemple illustre la restauration et la sauvegarde différentielle de la base de données MyAdvWorks .This example restores a database and differential database backup of the MyAdvWorks database.

-- 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.B. Restauration d'une base de données, d'une base de données différentielle et d'une sauvegarde du journal des transactionsRestoring a database, differential database, and transaction log backup

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 .This example restores a database, differential database, and transaction log backup of the MyAdvWorks database.

-- 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éesRelated tasks

Voir aussiSee Also

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