恢复到日志序列号 (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