Share via


Procédure : restaurer jusqu'au point d'échec (Transact-SQL)

Cette rubrique explique comment restaurer jusqu'au point d'échec. 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.

Pour restaurer jusqu'au point d'échec

  1. Sauvegardez la fin du journal en exécutant l'instruction de base suivante BACKUP :

    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 de base suivante RESTORE DATABASE :

    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 :

    RESTORE DATABASE <database_name> FROM <backup_device> 
       WITH NORECOVERY;
    
  4. Appliquez chaque journal des transactions, y compris la sauvegarde de fichier journal après défaillance que vous avez créée à l'étape 1, en spécifiant WITH NORECOVERY dans l'instruction RESTORE LOG :

    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

    RESTORE DATABASE <database_name> 
       WITH RECOVERY;
    

Exemple

Avant de pouvoir exécuter cet exemple, vous devez terminer les préparations suivantes :

  1. Le mode de récupération par défaut de la base de données AdventureWorks est le mode de récupération simple. Étant donné que ce mode de récupération ne prend pas en charge la restauration jusqu'au point de défaillance, définissez AdventureWorks pour utiliser le mode de restauration complète en exécutant l'instruction ALTER DATABASE suivante :

    USE master;
    GO
    ALTER DATABASE AdventureWorks SET RECOVERY FULL;
    
  2. Créez une sauvegarde de base de données complète à l'aide de l'instruction suivante BACKUP :

    BACKUP DATABASE AdventureWorks TO DISK = 'C:\AdventureWorks_Data.bck';
    
  3. Créez une sauvegarde de routine des journaux :

    BACKUP LOG AdventureWorks TO DISK = 'C:\AdventureWorks_Log.bck';
    

L'exemple suivant restaure les sauvegardes créées précédemment, après la création d'une sauvegarde de fichier journal après défaillance de la base de données AdventureWorks. (Cette étape suppose que le disque du journal est accessible).

Commencez par créer une sauvegarde de fichier journal après défaillance de la base de données qui capture le journal actif et laisse la base de données à l'état de restauration. 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 fichier journal après défaillance. Enfin, l'exemple récupère la base de données dans une étape séparée.

[!REMARQUE]

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.

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