Partager via


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.

    Notes

    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 forcer la séquence de restauration à continuer. Cependant, les groupes de fichiers FILESTREAM omis de l'instruction RESTORE ne peuvent jamais être restaurés. Pour forcer une limite de restauration 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 AdventureWorks2008R2Backups, 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 AdventureWorks2008R2 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 AdventureWorks2008R2 SET RECOVERY FULL.

RESTORE DATABASE AdventureWorks2008R2
   FROM AdventureWorks2008R2Backups
   WITH FILE=3, NORECOVERY;

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

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