恢复到日志序列号 (LSN)

本主题仅与使用完整恢复模式或大容量日志恢复模式的数据库相关。

通过 SQL Server 2005 及更高版本,可以使用日志序列号 (LSN) 定义还原操作的恢复点。这是为工具供应商提供的专用功能,不太可能广泛使用。

注意注意

有关还原到特定恢复点的要求的信息,请参阅将数据库还原到备份中的某个时间点

还原到 LSN 的 Transact-SQL 语法

通过使用 RESTORE 语句,可以在 LSN 处或刚好在 LSN 之前停止,如下所示:

  • 使用 WITH STOPATMARK ='lsn:<lsn_number>' 子句,其中 lsn:<lsnNumber> 是一个字符串,它指出包含指定 LSN 的日志记录是恢复点。

    STOPATMARK 前滚到 LSN,并且前滚中包括该日志记录。

  • 使用 WITH STOPBEFOREMARK ='lsn:<lsn_number>' 子句,其中 lsn:<lsnNumber> 是一个字符串,它指出位于包含指定 LSN 的日志记录之前的日志记录是恢复点。

    STOPBEFOREMARK 前滚到 LSN,并从前滚中排除该日志记录。

通常会选择要包括或排除的特定事务。虽然实践中并不总是如此,但指定的日志记录就是事务提交记录。

有关如何使用 LSN 的详细信息,请参阅日志序列号和还原计划

有关时点还原的详细信息,请参阅将数据库还原到备份中的某个时间点

示例

以下示例假定 AdventureWorks2008R2 数据库已更改为使用完整恢复模式。

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