Récupérer un numéro séquentiel dans le journal (SQL Server)

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.

Vous pouvez utiliser un numéro séquentiel dans le journal pour définir le point de récupération d'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.

Vue d'ensemble des numéros séquentiels dans le journal

Les numéros LSN sont utilisés en interne pendant une séquence RESTORE pour rechercher le point dans le temps par rapport 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.

Chaque enregistrement du journal de transactions est identifié de manière unique par un numéro séquentiel dans le journal (LSN). Les numéros de séquence d'enregistrement sont ordonnés de sorte que si LSN2 est supérieur à LSN1, la modification décrite par l'enregistrement de journal référencé par LSN2 se produit après la modification décrite par le numéro LSN d'enregistrement de journal.

Le numéro LSN d'un enregistrement de journal qui correspond à l'occurrence d'un événement significatif peut s'avérer utile pour créer les séquences de restauration appropriées. Du fait que les numéros LSN sont ordonnés, il est possible de comparer leur égalité et leur inégalité (à savoir, <, >, =, <=, >=). Ces comparaisons sont utiles pour créer des séquences de restauration.

[!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.

[Haut de la page]

Affichage des numéros LSN utilisés par la sauvegarde et 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 les textes de message.

Syntaxe Transact-SQL relative à la restauration d'après un LSN

Grâce à l'instruction RESTORE, vous pouvez vous arrêter à un LSN ou immédiatement avant ce point de la façon suivante :

  • Utilisez la clause WITH STOPATMARK = 'lsn:<lsn_number>', où lsn:<lsnNumber> 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> correspond à une chaîne précisant que l'entrée se trouvant dans le journal immédiatement avant celle qui contient le NSE précisé équivaut au 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

Référence

RESTORE (Transact-SQL)

Concepts

Appliquer les sauvegardes du journal de transactions (SQL Server)

Journal des transactions (SQL Server)