復原到記錄序號 (SQL Server)

適用於:SQL Server

本主題僅與使用完整或大量記錄復原模式的資料庫相關。

您可使用記錄序號 (LSN) 定義還原作業的復原點。 但是,這是為工具供應商所提供的特定功能,未必普遍適用。

記錄序號概觀

執行 RESTORE 順序期間,在內部會使用 LSN 追蹤已還原之資料的時間點。 還原備份時,資料會還原到備份執行時間點所對應的 LSN; 差異與記錄備份則可將已還原的資料庫推往更後面的時間點,因為它們對應到較高的 LSN。 如需 LSN 的詳細資訊,請參閱 SQL Server 交易記錄架構和管理指南

注意

LSN 是 numeric(25,0) 資料類型的值。 數學運算 (例如:加、減) 在此沒有意義,且絕不能搭配 LSN 使用。

檢視備份與還原所使用的 LSN

特定備份與還原事件發生時的記錄 LSN,可透過下列一種或多種方式進行檢視:

注意

LSN 也會出現在錯誤記錄檔中的某些訊息內。

還原至 LSN 的 Transact-SQL 語法

使用 RESTORE 陳述式,您可以在 LSN 上或剛好就在它之前停止,如下所述:

  • 使用 ='lsn:<lsn_number>' 子句,其中 lsn:<lsnNumber> 是會指定包含所指定的 LSN 的記錄檔記錄為復原點的字串。

    STOPATMARK 會向前復原到 LSN,並且將該筆記錄納入向前復原中。

  • 使用 WITH STOPBEFOREMARK ='lsn:<lsn_number>' 子句,其中 lsn:<lsnNumber> 是會指定緊接在包含指定的 LSN 號碼的記錄檔記錄之前的記錄檔記錄為復原點的字串。

    STOPBEFOREMARK 會向前復原到 LSN,並且從向前復原中排除該筆記錄。

通常會選取要納入或排除的特定交易。 實際上雖不需要這麼做,但指定的記錄是交易認可記錄。

範例

下列範例假設 AdventureWorks 資料庫已變更為使用完整復原模式。

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

相關工作

另請參閱

套用交易記錄備份 (SQL Server)
交易記錄 (SQL Server)
RESTORE (Transact-SQL)
還原和復原概觀 (SQL Server)
SQL Server 交易記錄架構與管理指南