適用於:SQL Server
本主題僅與使用完整或大量記錄復原模式的資料庫相關。
您可使用記錄序號 (LSN) 定義還原作業的復原點。 但是,這是為工具供應商所提供的特定功能,未必普遍適用。
記錄序號概觀
LSN 在序列 RESTORE 中內部使用,以追蹤資料還原的時間點。 還原備份時,資料會還原到備份執行時間點所對應的 LSN; 差異與記錄備份則可將已還原的資料庫推往更後面的時間點,因為它們對應到較高的 LSN。 如需 LSN 的詳細資訊,請參閱 SQL Server 交易記錄架構和管理指南。
注意
LSN 是 numeric(25,0) 資料類型的值。 數學運算 (例如:加、減) 在此沒有意義,且絕不能搭配 LSN 使用。
檢視備份與還原所使用的 LSN
可使用下列一種或多種方式,查看特定備份與還原事件發生時某筆記錄檔記錄的 LSN:
注意
LSN 也會出現在錯誤記錄檔中的某些訊息內。
還原至 LSN 的 Transact-SQL 語法
使用 RESTORE 陳述式時,您可以在 LSN 處或其正前方立即停止,如下所示:
使用 WITH STOPATMARK ='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