寫入器
寫入器 是應用程式或服務,這些應用程式或服務會將持續性資訊儲存在磁片上的檔案中,並使用陰影複製介面將這些檔案的名稱和位置提供給要求者。
在備份作業期間,寫入器可確保其資料會靜止且穩定,適用于陰影複製和備份。 寫入器會盡可能解除鎖定檔案,並在必要時指出替代位置,以與還原共同作業。
如果在 VSS 備份作業期間沒有寫入器存在,仍然可以建立陰影複製。 在此情況下,陰影複製磁片區上的所有資料都會處於 損毀一致狀態。
寫入器狀態
寫入器會在 XML 型中繼資料物件中維護其狀態,也就是 寫入器元資料檔案。
此寫入器中繼資料是唯一包含要備份和還原之資料的 檔案集、路徑、檔案規格和遞迴旗標的資料結構。
寫入器元資料檔案會將寫入器的檔案集組織成群組或 元件。 在備份和還原作業期間,這些元件與寫入器所管理的其他元件之間的關聯性,會依元件的 備份可選取性、 還原的可選取性,以及其 邏輯路徑來描述寫入器元資料檔案中。 (如需詳細資訊,請參閱設定元件組織和使用可選取性和邏輯路徑。)
本檔也包含控管檔案還原和其他問題的其他資訊。
要求者需要寫入器中繼資料及其本身的備份元件檔,才能處理備份或還原。
不同于備份元件檔,寫入器元資料檔案應該視為唯讀結構。 寫入器建立後,檔就不會改變。
寫入器事件處理
寫入器的 VSS 作業會透過接收 COM 事件來起始。
當沒有任何事件存在時,寫入器不會執行 VSS 作業 (,例如 VSS 備份或還原) 。 相反地,它會執行其正常工作,例如回應資料庫查詢、管理使用者資料或提供其他服務。
若要確保正確執行多個平行備份和還原會話的錯誤處理,並確保一個備份或還原會話不會損毀另一個備份或還原會話,您必須執行下列動作:
- 如果寫入器的事件處理常式 (例如 CVssWriter::OnFreeze) 呼叫 CVssWriterEx2::GetSessionId、 CVssWriter::SetWriterFailure或 CVssWriterEx2::SetWriterFailureEx 方法,事件處理常式必須在呼叫事件處理常式的相同執行緒中呼叫 方法。
- 您的寫入器實作事件處理常式,例如 OnFreeze 可以視需要將工作卸載給背景工作執行緒,只要每個背景工作執行緒封送處理任何所需的錯誤,就會回報回原始事件處理常式執行緒。
處理識別事件
除了 Identify 事件之外,寫入器接收的事件種類和順序取決於目前進行中的 VSS 作業類型。
識別事件需要寫入器提供其組態的系統資訊,以及他們透過寫入 器元資料檔案管理的檔案。 識別事件是在支援幾乎所有 VSS 作業時產生,包括系統查詢,以及陰影複製和備份和還原作業。 因此,任何寫入器的識別事件處理常式 CVssWriter::OnIdentify 實作都必須能夠隨時處理 Identify 事件,包括處理另一個 VSS 作業的中間,例如備份或還原。 識別事件絕對不應該視為 VSS 作業生命週期的一部分,即使在開始該作業之前可能預期且需要產生事件也一樣。
在 CVssWriter::OnIdentify中,不會修改 VSS 作業的狀態資訊特別重要,因為收到順序錯亂的事件會重設該資訊。
備份和還原事件
根據它是否參與備份或還原,寫入器除了初始識別事件之外,還會在兩到七個事件之間收到。
處理這些事件會從寫入器的觀點 () 備份或還原作業的生命週期。
在典型的備份作業 (請參閱 在 VSS) 下處理備份 的概觀,寫入器除了初始識別事件) 之外,還會處理下列事件 (:
- PrepareForBackup
- PrepareForSnapshot
- 凍結
- 解除凍結
- PostSnapshot
- BackupComplete
- BackupShutdown
在典型的還原作業 (請參閱 在 VSS) 下處理還原 的概觀,寫入器會處理下列事件:
- PreRestore
- PostRestore