復原到記錄序號 (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 交易記錄架構與管理指南