Procédure : restaurer jusqu'à une date et heure (Transact-SQL)

Cette rubrique explique comment restaurer une sauvegarde dans le temps.

Pour restaurer à un point précis dans le temps

  1. Exécutez l'instruction RESTORE DATABASE à l'aide de l'option NORECOVERY.

    [!REMARQUE]

    Si une séquence de restauration partielle exclut tout groupe de fichiers FILESTREAM, la limite de restauration dans le temps n'est pas prise en charge. Vous pouvez imposer à la séquence de restauration de continuer. Cependant, les groupes de fichiers FILESTREAM omis à partir de l'instruction RESTORE ne pourront jamais être restaurés. Pour forcer une restauration limitée dans le temps, spécifiez l'option CONTINUE_AFTER_ERROR avec l'option STOPAT, STOPATMARK ou STOPBEFOREMARKx, que vous devez également spécifier dans vos instructions RESTORE LOG suivantes. Si vous spécifiez l'option CONTINUE_AFTER_ERROR, la séquence de restauration partielle réussit et le groupe de fichiers FILESTREAM devient irrécupérable.

  2. Exécutez l'instruction RESTORE LOG pour l'appliquer à chaque sauvegarde du journal, en spécifiant :

    • Le nom de la base de données à laquelle est appliqué le journal des transactions.

    • L’unité de sauvegarde à partir de laquelle est restaurée la sauvegarde du journal des transactions.

    • Options RECOVERY et STOPAT. Si la sauvegarde du journal des transactions ne contient pas l'heure demandée (par exemple, si l'heure spécifiée dépasse la dernière heure figurant dans le journal des transactions), un avertissement est émis et la base de données n'est pas récupérée.

Exemple

L'exemple suivant restaure une base de données dans l'état où elle se trouvait le April 15, 2020 à 12:00 AM et décrit une opération de restauration impliquant plusieurs sauvegardes de fichiers journaux. Sur l'unité de sauvegarde AdventureWorksBackups, la sauvegarde de base de données complète à restaurer correspond au troisième jeu de sauvegarde (FILE = 3), la première sauvegarde de fichier journal correspond au quatrième jeu de sauvegarde (FILE = 4) et la seconde sauvegarde de fichier journal correspond au cinquième jeu de sauvegarde (FILE = 5).

Important

La base de données AdventureWorks utilise le mode de récupération simple. Afin de permettre des sauvegardes de fichiers journaux, avant de procéder à une sauvegarde complète de la base de données, cette dernière a été définie pour l'utilisation du mode de récupération complète avec ALTER DATABASE AdventureWorks SET RECOVERY FULL.

RESTORE DATABASE AdventureWorks
   FROM AdventureWorksBackups
   WITH FILE=3, NORECOVERY;

RESTORE LOG AdventureWorks
   FROM AdventureWorksBackups
   WITH FILE=4, NORECOVERY, STOPAT = 'Apr 15, 2020 12:00 AM';

RESTORE LOG AdventureWorks
   FROM AdventureWorksBackups
   WITH FILE=5, NORECOVERY, STOPAT = 'Apr 15, 2020 12:00 AM';
RESTORE DATABASE AdventureWorks WITH RECOVERY; 
GO