Procédure : restaurer jusqu'au point de défaillance (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
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;
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;
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;
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;
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 :
Le mode de récupération par défaut de la base de données AdventureWorks2008R2 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 AdventureWorks2008R2 pour utiliser le mode de restauration complète en exécutant l'instruction ALTER DATABASE suivante :
USE master; GO ALTER DATABASE AdventureWorks2008R2 SET RECOVERY FULL;
Créez une sauvegarde de base de données complète à l'aide de l'instruction suivante BACKUP :
BACKUP DATABASE AdventureWork2008R2s TO DISK = 'C:\AdventureWorks2008R2_Data.bck';
Créez une sauvegarde de routine des journaux :
BACKUP LOG AdventureWorks2008R2 TO DISK = 'C:\AdventureWorks2008R2_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 AdventureWorks2008R2. (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.
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.
/* Example of restoring a to the point of failure */
-- Step 1: Create a tail-log backup by using WITH NORECOVERY.
BACKUP LOG AdventureWorks2008R2
TO DISK = 'C:\AdventureWorks2008R2_Log.bck'
WITH NORECOVERY;
GO
-- Step 2: Restore the full database backup.
RESTORE DATABASE AdventureWorks2008R2
FROM DISK = 'C:\AdventureWorks2008R2_Data.bck'
WITH NORECOVERY;
GO
-- Step 3: Restore the first transaction log backup.
RESTORE LOG AdventureWorks2008R2
FROM DISK = 'C:\AdventureWorks2008R2_Log.bck'
WITH NORECOVERY;
GO
-- Step 4: Restore the tail-log backup.
RESTORE LOG AdventureWorks2008R2
FROM DISK = 'C:\AdventureWorks2008R2_Log.bck'
WITH NORECOVERY;
GO
-- Step 5: Recover the database.
RESTORE DATABASE AdventureWorks2008R2
WITH RECOVERY;
GO
Voir aussi