封存的 CLFS 支援
一般記錄檔案系統 (CLFS) 支援藉由維護封存結尾來封存專用記錄。 當您呼叫 ClfsCreateLogFile 來建立專用記錄時,您可以設定 fFlagsAndAttributes 參數的 FILE_ATTRIBUTE_ARCHIVE 旗標,以指定 CLFS 應該維護記錄的封存結尾。 CLFS 維護封存尾的記錄稱為 非暫時記錄檔。
假設您在資料庫上執行交易,而且每個交易都有數個記錄檔記錄所描述的更新。 在特定交易認可並寫入穩定儲存體之後,您可能不需要再描述該交易的記錄檔記錄。 也就是說,在系統失敗時,重新開機復原期間不需要記錄檔記錄。 不過,如果保存資料庫的穩定儲存媒體失敗,而且資料庫最近未在不同的媒體上封存,資料庫更新可能會遺失。
上一段描述封存資料庫記錄,但在其他情況下,您可能想要封存記錄檔記錄。 不論是哪一種情況,封存都是用戶端 (軟體) 的責任。 您可以藉由設定記錄的封存結尾來追蹤您已完成的封存。 封存結尾是尚未完成封存之最舊記錄的記錄序號 (LSN) 。
非暫時記錄實際上有兩個尾端:一個以基底 LSN 標示,另一個由封存尾標示。 您可以呼叫 ClfsAdvanceLogBase (或 ClfsWriteRestartArea) 和 ClfsSetArchiveTail,來放置兩個尾端。 通常基底 LSN 指向交易復原或重新開機復原所需的最舊記錄,而封存結尾會指向尚未執行封存的最舊記錄。 請注意,封存結尾可能小於基底 LSN,或可能大於基底 LSN。
當您重複呼叫 ClfsReadNextLogRecord 以讀取先前 LSN、復原下一個 LSN 或使用者 LSN 連結的記錄鏈結時,基底 LSN 和封存結尾很重要。 ClfsReadNextLogRecord 不會讀取 LSN 小於封存結尾和基底 LSN 的記錄。 不過,它會讀取其 LSN 在封存結尾與基底 LSN 之間的記錄。 如需下列記錄鏈結的詳細資訊,請參閱 從 CLFS 資料流程讀取資料記錄。