Восстановление до номера LSN

Этот раздел относится только к тем базам данных, которые используют модель полного восстановления или модель восстановления с неполным протоколированием.

SQL Server 2005 и более поздних версий позволяет в качестве точки восстановления во время операции восстановления использовать номер LSN. Эта специальная возможность предназначена для разработчиков средств, и представляется сомнительным, чтобы она могла оказаться полезной в общем случае.

ПримечаниеПримечание

Сведения о требованиях для восстановления к заданной точке восстановления см. в разделе Восстановление базы данных на момент времени в пределах резервной копии.

Синтаксис языка Transact-SQL при восстановлении до номера LSN

Инструкция RESTORE позволяет остановить восстановление на транзакции по номеру LSN или непосредственно перед ней следующим образом:

  • Используйте предложение WITH STOPATMARK ='lsn:<lsn_number>', где lsn:<lsnNumber> — это строка, указывающая, что точкой восстановления является запись в журнале, которая содержит указанный номер LSN.

    Предложение STOPATMARK выполняет накат до номера LSN, включая указанную запись журнала.

  • Используйте предложение WITH STOPBEFOREMARK ='lsn:<lsn_number>', где lsn:<lsnNumber> — строка, указывающая, что точкой восстановления является запись журнала, расположенная непосредственно перед записью журнала с указанным номером LSN.

    Параметр STOPBEFOREMARK выполняет накат до номера LSN, не включая в него указанную запись журнала.

Обычно включается или исключается конкретная транзакция. Хотя это необязательно, на практике задаваемая запись журнала обычно является записью фиксации транзакции.

Дополнительные сведения об использовании номеров LSN см. в разделе Номера LSN и планирование восстановления.

Дополнительные сведения о восстановлении на момент времени см. в разделе Восстановление базы данных на момент времени в пределах резервной копии.

Примеры

В следующем примере предполагается, что база данных AdventureWorks2008R2 была переключена в модель полного восстановления.

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