Restaurer la base de données au point d’échec – récupération complèteRestore Database to Point of Failure - Full Recovery

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 jusqu'au point d'échec.This topic explains how to restore to the point of failure. Cette rubrique s'applique uniquement aux bases de données employant les modes de restauration complète ou de récupération utilisant les journaux de transactions.The topic is relevant only for databases that are using the full or bulk-logged recovery models.

Pour restaurer jusqu'au point d'échecTo restore to the point of failure

  1. Sauvegardez la fin du journal en exécutant l’instruction BACKUP de base suivante :Back up the tail of the log by running the following basic BACKUP statement:

    BACKUP LOG <database_name> TO <backup_device>   
       WITH NORECOVERY, NO_TRUNCATE;  
    
  2. Restaurez une sauvegarde de base de données complète en exécutant l’instruction RESTORE DATABASE de base suivante :Restore a full database backup by running the following basic RESTORE DATABASE statement:

    RESTORE DATABASE <database_name> FROM <backup_device>   
       WITH NORECOVERY;  
    
  3. Restaurez, éventuellement, une sauvegarde de base de données différentielle en exécutant l'instruction de base suivante RESTORE DATABASE :Optionally, restore a differential database backup by running the following basic RESTORE DATABASE statement:

    RESTORE DATABASE <database_name> FROM <backup_device>   
       WITH NORECOVERY;  
    
  4. Appliquez chaque journal des transactions, y compris la sauvegarde de la fin du journal que vous avez créée à l'étape 1, en spécifiant WITH NORECOVERY dans l'instruction RESTORE LOG :Apply each transaction log, including the tail-log backup you created in step 1, by specifying WITH NORECOVERY in the RESTORE LOG statement:

    RESTORE LOG <database_name> FROM <backup_device>   
       WITH NORECOVERY;  
    
  5. Récupérez la base de données en exécutant l'instruction RESTORE DATABASE suivante :Recover the database by running the following RESTORE DATABASE statement:

    RESTORE DATABASE <database_name>   
       WITH RECOVERY;  
    

ExempleExample

Avant de pouvoir exécuter cet exemple, vous devez terminer les préparations suivantes :Before you can run the example, you must complete the following preparations:

  1. Le mode de récupération par défaut de la base de données AdventureWorks2012AdventureWorks2012 est le mode de récupération simple.The default recovery model of the AdventureWorks2012AdventureWorks2012 database is the simple recovery model. Étant donné que ce mode de récupération ne prend pas en charge la restauration jusqu’au point de défaillance, définissez AdventureWorks2012AdventureWorks2012 pour utiliser le mode de restauration complète en exécutant l’instruction ALTER DATABASE suivante :Because this recovery model does not support restoring to the point of a failure, set AdventureWorks2012AdventureWorks2012 to use the full recovery model by running the following ALTER DATABASE statement:

    USE master;  
    GO  
    ALTER DATABASE AdventureWorks2012 SET RECOVERY FULL;  
    
  2. Créez une sauvegarde de base de données complète à l'aide de l'instruction suivante BACKUP :Create a full database back of the database by using the following BACKUP statement:

    BACKUP DATABASE AdventureWorks2012 TO DISK = 'C:\AdventureWorks2012_Data.bck';  
    
  3. Créez une sauvegarde de routine des journaux :Create a routine log backup:

    BACKUP LOG AdventureWorks2012 TO DISK = 'C:\AdventureWorks2012_Log.bck';  
    

L'exemple suivant restaure les sauvegardes créées précédemment, après la création d'une sauvegarde de la fin du journal de la base de données AdventureWorks2012AdventureWorks2012 .The following example restores the backups that are created previously, after creating a tail-log backup of the AdventureWorks2012AdventureWorks2012 database. (Cette étape suppose que le disque du journal est accessible).(This step assumes that the log disk can be accessed.)

Commencez par créer une sauvegarde de la fin du journal de la base de données qui capture le journal actif et laisse la base de données à l'état de restauration.First, the example creates a tail-log backup of the database that captures the active log and leaves the database in the Restoring state. Puis, l'exemple restaure la sauvegarde de base de données, applique la sauvegarde de routine des journaux créée précédemment et applique la sauvegarde de la fin du journal.Then, the example restores the database backup, applies the routine log backup created previously, and applies the tail-log backup. Enfin, l'exemple récupère la base de données dans une étape séparée.Finally, the example recovers the database in a separate step.

Notes

Le comportement par défaut consiste à récupérer une base de données en même temps que l'instruction qui restaure la sauvegarde finale.The default behavior is to recover a database as part of the statement that restores the final backup.

/* Example of restoring a to the point of failure */  
-- Step 1: Create a tail-log backup by using WITH NORECOVERY.  
BACKUP LOG AdventureWorks2012  
   TO DISK = 'C:\AdventureWorks2012_Log.bck'  
   WITH NORECOVERY;  
GO  
-- Step 2: Restore the full database backup.  
RESTORE DATABASE AdventureWorks2012  
   FROM DISK = 'C:\AdventureWorks2012_Data.bck'  
   WITH NORECOVERY;  
GO  
-- Step 3: Restore the first transaction log backup.  
RESTORE LOG AdventureWorks2012  
   FROM DISK = 'C:\AdventureWorks2012_Log.bck'  
   WITH NORECOVERY;  
GO  
-- Step 4: Restore the tail-log backup.  
RESTORE LOG AdventureWorks2012  
   FROM  DISK = 'C:\AdventureWorks2012_Log.bck'  
   WITH NORECOVERY;  
GO  
-- Step 5: Recover the database.  
RESTORE DATABASE AdventureWorks2012  
   WITH RECOVERY;  
GO  

Voir aussiSee Also

BACKUP (Transact-SQL) BACKUP (Transact-SQL)
RESTORE (Transact-SQL)RESTORE (Transact-SQL)