Sql server - restaurer une base et rejouer le log de transaction a un instant donne

Contenu du snippet

Dans une situation d'urgence sur une base de production, on doit pouvoir recharger une base jusqu'à un moment donné.
La solution est de :
- Recharger le dernier backup de base valide
- Recharger le dernier backup des logs de transaction en définissant la date et l'heure

On va donc partir de ces deux fichiers de backup (si on a plusieurs backup de log, il faut charger chaque log)

Cette source est basée sur la précédente :
- http://www.sqlfr.com/codes/SQL-SERVER-RESTAURER-BASE-DEPUIS-BACKUP_35528.aspx

Source / Exemple :


------------------------------------------------------
---- CHARGEMENT DE LA BASE AVEC LE BACKUP VALIDE -----
------------------------------------------------------
USE master

--- Restauration de la base de données - Fichier .BAK
RESTORE DATABASE NotreBase
    FROM      
        DISK = 'C:\Temp\NotreBaseProd.bak'
    WITH 
        MOVE 'NotreBase_dat' TO 'C:\NotreRépertoireDeStockage\NotreBase.mdf', 
        MOVE 'NotreBase_log' TO 'C:\NotreRépertoireDeStockage\NotreBase_log.LDF' 
	NORECOVERY
 
------------------------------------------------------
- CHARGEMENT DES TRANSACTIONS AVEC LE BACKUP VALIDE --
------------------------------------------------------
USE master

--- Restauration du log de transaction - Fichier .TRN
RESTORE LOG 
	MgePushPull
FROM 
	DISK = 'C:\Temp\NotreLogDeTransactionBaseProd.TRN' 
WITH 
	FILE = 1,
	RECOVERY,
	STOPAT='20060712 02:00:00' -- Date et heure au format SQL Server

------------------------------------------------------

Conclusion :


Bon coding

Romelard Fabrice

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.