Восстановление до номера LSN (SQL Server)Recover to a Log Sequence Number (SQL Server)

Применимо к:Applies to: даSQL ServerSQL Server (все поддерживаемые версии) yesSQL ServerSQL Server (all supported versions) Применимо к:Applies to: даSQL ServerSQL Server (все поддерживаемые версии) yesSQL ServerSQL Server (all supported versions)

Этот раздел относится только к тем базам данных, которые используют модель полного восстановления или модель восстановления с неполным протоколированием.This topic is relevant only for databases that are using the full or bulk-logged recovery models.

Можно в качестве точки восстановления во время операции восстановления использовать номер LSN.You can use a log sequence number (LSN) to define the recovery point for a restore operation. Однако эта специальная возможность предназначена для средств поставщика, и представляется сомнительным, чтобы она могла оказаться в целом полезной.However, this is a specialized feature that is intended for tools vendors and is unlikely to be generally useful.

Общие сведения о регистрационных номерах транзакций в журналеOverview of Log Sequence Numbers

Регистрационные номера транзакций (LSN) в журнале используются во время последовательности восстановления для отслеживания момента времени, на который восстанавливаются данные.LSNs are used internally during a RESTORE sequence to track the point in time to which data has been restored. При восстановлении резервной копии данные восстанавливаются к регистрационному номеру транзакции в журнале, который соответствует моменту времени создания резервной копии.When a backup is restored, the data is restored to the LSN corresponding to the point in time at which the backup was taken. Разностные резервные копии и резервные копии журналов продвигают восстанавливаемую базу данных к более позднему моменту, которому соответствует больший регистрационный номер транзакции в журнале.Differential and log backups advance the restored database to a later time, which corresponds to a higher LSN. Дополнительные сведения о номерах LSN см. в разделах Руководство по архитектуре журнала транзакций SQL Server и управлению им.For more information about LSNs, see the SQL Server Transaction Log Architecture and Management Guide.

Примечание

Регистрационные номера транзакций в журнале — это значения типа numeric(25,0).LSNs are values of data type numeric(25,0). Арифметические операции (например сложение или вычитание) не имеют смысла и не должны использоваться для регистрационных номеров транзакций в журнале.Arithmetic operations (for example, addition or subtraction) are not meaningful and must not be used with LSNs.

Просмотр регистрационных номеров транзакций в журнале, используемых при создании резервных копий и восстановленииViewing LSNs used by Backup and Restore

Регистрационный номер транзакции в журнале, которому соответствует данное событие создания резервной копии или восстановления можно просмотреть в следующих источниках:The LSN of a log record at which a given backup and restore event occurred is viewable using one or more of the following:

Примечание

Регистрационные номера транзакций также появляются в некоторых текстовых сообщениях в журнале ошибок.LSNs also appear in some messages in the error log.

Синтаксис языка Transact-SQL при восстановлении до номера LSNTransact-SQL Syntax for restoring to an LSN

Инструкция RESTORE позволяет остановить восстановление на транзакции по номеру LSN или непосредственно перед ней следующим образом:By using a RESTORE statement, you can stop at or immediately before the LSN, as follows:

  • Используйте предложение WITH STOPATMARK =' lsn: <lsn_number> ' , где lsn: <lsnNumber>  — это строка, указывающая, что точкой восстановления является запись в журнале, которая содержит указанный номер LSN.Use the WITH STOPATMARK =' lsn:<lsn_number>' clause, where lsn:<lsnNumber> is a string that specifies that the log record that contains the specified LSN is the recovery point.

    Предложение STOPATMARK выполняет накат до номера LSN, включая указанную запись журнала.STOPATMARK roll forwards to the LSN and includes that log record in the roll forward.

  • Используйте предложение WITH STOPBEFOREMARK =' lsn: <lsn_number> ' , где lsn: <lsnNumber>  — это строка, указывающая, что запись журнала, стоящая непосредственно перед записью журнала, содержащей номер LSN, является точкой восстановления.Use the WITH STOPBEFOREMARK =' lsn:<lsn_number>' clause, where lsn:<lsnNumber> is a string that specifies that the log record immediately before the log record that contains the specified LSN number is the recovery point.

    Параметр STOPBEFOREMARK выполняет накат до номера LSN, не включая в него указанную запись журнала.STOPBEFOREMARK rolls forward to the LSN and excludes that log record from the roll forward.

Обычно включается или исключается конкретная транзакция.Typically, a specific transaction is selected to be included or excluded. Хотя это необязательно, на практике задаваемая запись журнала обычно является записью фиксации транзакции.Although not required, in practice, the specified log record is a transaction-commit record.

ПримерыExamples

В следующем примере предполагается, что база данных AdventureWorks была переведена в модель полного восстановления.The following example assumes that the AdventureWorks database has been changed to use the full recovery model.

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

См. также:See Also

Применение резервных копий журналов транзакций (SQL Server) Apply Transaction Log Backups (SQL Server)
Журнал транзакций (SQL Server) The Transaction Log (SQL Server)
RESTORE (Transact-SQL) RESTORE (Transact-SQL)
Обзор процессов восстановления (SQL Server) Restore and Recovery Overview (SQL Server)
Руководство по архитектуре журнала транзакций SQL Server и управлению имSQL Server Transaction Log Architecture and Management Guide