通用記錄檔案系統
System.IO.Log 命名空間會定義介面來記錄到記錄導向的循序 I/O 系統。您可以使用這個命名空間中的類別來實作自己的診斷記錄或交易處理系統。此命名空間也會為這個介面提供使用簡單檔案記錄的實作,並另外提供使用 ws2003r2 和 Windows Vista 隨附之一般記錄檔系統 (CLFS) 的替代實作。
System.IO.Log 命名空間
System.IO.Log 命名空間會定義介面來記錄到記錄導向的循序 I/O 系統。這個介面的實作可以用來讀取和寫入記錄檔記錄。將記錄檔記錄附加到這類實作時,每一筆記錄都會被賦予唯一的序號。序號會在指定的記錄順序中嚴謹地以固定方式增加,而不同記錄順序中的序號是不可比較的。序號是以 SequenceNumber 結構來表示。此外,記錄順序還提供可在基礎儲存區中保留空間的機制。您可以利用這種保留機制,為將來的記錄檔記錄預留必要的空間。
FileRecordSequence 和 LogRecordSequence 類別為這個介面提供了兩種不同的實作。FileRecordSequence 是根據檔案系統中單一記錄檔的記錄順序。
另一方面,LogRecordSequence 類別會在一般記錄檔系統 (CLFS) 記錄上層提供記錄順序介面實作。如需這個實作的詳細資訊,請參閱<System.IO.Log 抽象類別>一節。
CLFS
CLFS 提供一般用途的高效能檔案記錄服務,專屬用戶端應用程式可以用來最佳化記錄存取,而多個用戶端也可以共用這個服務進行記錄存取最佳化。
記錄檔架構
CLFS 是 ARIES 記錄管理員。它會循序儲存記錄檔記錄,而且可以確實保留清除的記錄檔記錄,即使在系統失敗後也是如此。您可以使用 CLFS 來管理記錄檔並設定應用程式原則。CLFS 會使用下列抽象概念來實作記錄:
記錄是用戶端寫入資料的單位。
實體記錄檔是檔案和屬性的實體集合,其中可以儲存一個或許多記錄資料流。記錄資料流是用戶端所記錄的一串記錄檔記錄,與實體記錄檔相似。專用記錄檔只有一個未命名的資料流。多工記錄檔含有一或多個具名資料流,而您將來也可以為多工記錄檔建立更多的資料流。用戶端可以在任何類型的記錄檔中記錄一或多個記錄資料流。不過,記錄檔一經建立後,用戶端就無法將其類型轉換為其他類型。
多工記錄檔代表兩個共用同一記錄檔之應用程式或子系統間的合約。多工記錄檔中的每個資料流對其用戶端擁有者而言,看起來就像是儲存在專用記錄檔中一般。使用多工記錄檔的主要優點是系統 I/O 成本可由多個資料流共同分擔,所以系統效能可能比使用數個專用記錄檔更好。多工記錄檔中的記錄和記錄區塊通常會寫入相同的磁柱,這樣可以減少搜尋動作並縮短 I/O 延遲時間。
您可以將記錄檔存取導向至本機磁碟,或者透過內部主從式架構支援將其導向至遠端系統上的磁碟。記錄檔可以在叢集中使用標準的 OS 機制容錯移轉至其他系統。記錄檔的所有寫入動作都會在用戶端獲得緩衝,直到必須清除或需要新的緩衝區為止。只要可能,資料就會從用戶端緩衝區直接寫入磁碟,而不加複製。讀取動作會經過快取,以降低在復原作業、備份作業或突發的交易中止期間進行磁碟存取的機會。
實體記錄檔會實際儲存為可保存中繼資料以及任何數目之容器檔案 (或檔案內資料流) 的「基底記錄檔」(blf)。您可以定義要建立記錄檔所在的位置,也可以直接建立記錄容器。您必須在記錄檔中新增至少兩個容器,才可以使用這個記錄檔。然而,不需使用任何容器,就可以設定記錄原則。
System.IO 記錄檔抽象類別
LogRecordSequence 類別會在一般記錄檔系統 (CLFS) 記錄頂端提供記錄順序介面實作。除了標準的記錄導向功能之外,它還提供了一個原則模型,可用來避免記錄檔已滿狀況,以及在同一實體檔案上進行用戶端多工。它會搭配使用 LogStore 類別,這個類別會提供用來直接操作和管理 CLFS 記錄檔的介面。LogStore 類別與 LogRecordSequence 類別的關係就如同磁碟檔案與 FileStream 物件的關係。磁碟檔案提供實際的儲存區且具有「長度」和「上次存取時間」等屬性,而 FileStream 物件則提供檔案的檢視,可用來讀取和寫入檔案。同樣地,LogStore 類別也具有原則和延伸磁碟區集合等屬性,而 LogRecordSequence 類別則會提供用來讀取和寫入資料的記錄導向機制。
與 FileRecordSequence 類別所代表的檔案記錄順序不同,LogStore 執行個體會將它的資料儲存在 LogExtent 執行個體所代表的延伸磁碟區集合中。指定 LogStore 執行個體中的延伸區大小均等,而在 LogStore 執行個體中新增和移除空間時,將會以延伸區累加的方式來進行。
實際的記錄檔記錄由 LogRecord 類別的執行個體表示。
原則
LogStore 執行個體可能會有與它相關聯的原則。這些由 LogPolicy 執行個體表示。原則會規定記錄檔所要遵循的規則,例如延伸區的數目上限和大小下限,以及在特定條件下擴大或縮小 LogStore 的相關指示。此外,您還可以指定是否可以封存 LogStore 執行個體。
原則是針對個別記錄檔設定的,而且是變動的 (Volatile),代表一旦關閉記錄檔的所有控制代碼,就不再會有原則存在。
安全性
記錄檔會受到標準 NTFS ACL (存取控制清單) 保護。不建議您在 FAT 磁碟機上儲存記錄檔,因為它不會提供保護。
請參閱
概念
Copyright © 2007 by Microsoft Corporation. All rights reserved.