Effectuer une récupération jusqu’à un numéro de séquence dans le journal (SQL Server)

S’applique à :SQL Server

Cette rubrique ne concerne que les bases de données qui utilisent les modèles de récupération complet ou en bloc journalisé.

Vous pouvez utiliser un numéro séquentiel du journal (LSN) pour définir le point de récupération pour une opération de restauration. Toutefois, cette fonctionnalité est spécialement conçue pour les fournisseurs d'outils et ne devrait pas être nécessaire dans la plupart des cas.

Présentation des numéros de séquence du journal

Les LSN sont utilisés en interne au cours d’une séquence RESTORE pour indiquer le moment précis auquel les données ont été restaurées. Lorsqu'une sauvegarde est restaurée, les données sont restaurées par rapport au numéro LSN qui correspond au point dans le temps à partir duquel la sauvegarde a été effectuée. Les sauvegardes différentielles et de journaux font passer la base de données restaurée à une date ultérieure qui correspond à un numéro LSN supérieur. Pour plus d’informations sur les LSN, consultez Guide d’architecture et gestion du journal des transactions SQL Server.

Remarque

Les numéros LSN sont des valeurs de type données numeric(25,0). Les opérations arithmétiques (addition ou soustraction, par exemple) ne sont pas significatives et ne doivent pas être utilisées avec les numéros LSN.

Affichage des LSN utilisés lors de la sauvegarde et de la restauration

Le numéro LSN d'un enregistrement de journal dans lequel un événement de sauvegarde et de restauration s'est produit peut être affiché en utilisant une ou plusieurs des commandes suivantes :

Remarque

Les numéros LSN figurent également dans certains messages du journal des erreurs.

Syntaxe Transact-SQL pour une restauration vers un LSN

À l’aide de l’instruction RESTORE, vous pouvez vous arrêter au LSN ou immédiatement avant celui-ci, comme suit :

  • Utilisez la clause WITH STOPATMARK ='lsn:<numéro_lsn>', où lsn:<numéro_lsn> correspond à une chaîne précisant que l’enregistrement du journal qui contient le LSN spécifié équivaut au point de récupération.

    STOPATMARK permet la restauration par progression jusqu'au NSE et inclut l'enregistrement correspondant issu du journal, dans la restauration.

  • Utilisez la clause WITH STOPBEFOREMARK ='lsn:<lsn_number>', où lsn:<lsnNumber> est une chaîne de caractères qui spécifie que l’enregistrement du journal immédiatement antérieur à l’enregistrement du journal qui contient le numéro LSN spécifié constitue le point de récupération.

    STOPBEFOREMARK permet la restauration par progression jusqu'au NSE mais exclut l'enregistrement correspondant, se trouvant dans le journal, de la restauration par progression.

De façon générale, une transaction donnée est sélectionnée dans le but d'être incluse ou exclue. Dans la pratique, et ce même s'il n'est pas requis, l'enregistrement spécifié dans le journal correspond à un enregistrement de validation de transaction.

Exemples

L'exemple suivant suppose que la base de données AdventureWorks a été modifiée afin d'utiliser le mode de récupération complète.

RESTORE LOG AdventureWorks FROM DISK = 'c:\adventureworks_log.bak'   
WITH STOPATMARK = 'lsn:15000000040000037'  
GO  

Tâches associées

Voir aussi

Appliquer les sauvegardes du journal de transactions (SQL Server)
Journal des transactions (SQL Server)
RESTORE (Transact-SQL)
Vue d'ensemble de la restauration et de la récupération (SQL Server)
Guide d’architecture et gestion du journal des transactions SQL Server