要求者使用元件
除了執行備份或還原,以及監督陰影複製之外,要求者還必須管理與其互動之寫入器元件的相關資訊。 元件可選取性和邏輯路徑可用來包含或排除備份中的資料,以及決定備份元件檔中包含哪些元件資訊。
備份期間的要求者元件選取
在備份作業期間,要求者會使用 IVssBackupComponents::GatherWriterMetadata 和 IVssBackupComponents::GetWriterMetadata 方法匯入寫入器中繼資料元件資料 (如需詳細資訊,請參閱 備份初始化 概觀以取得) 。
在檢查寫入器資訊與 IVssExrovWriterMetadata 介面之後,要求者會決定要備份的寫入器資訊,以及要備份的特定寫入器元件。
備份寫入器時,要求者:
- 必須使用IVssBackupComponents::AddComponents 將元件新增至備份元件檔,明確包含所有寫入器無法選取的備份元件
- 使用 IVssBackupComponents::AddComponents 明確 包含任何寫入器可選取的寫入器,以將元件新增至備份元件檔
- 如果可選取的備份元件定義 元件集,則其明確 包含會隱含包含 所有元件集的成員,無論是否可選取進行備份。 這些元件不會新增至備份元件檔。
在新增可選取的備份元件,或針對備份元件新增不可選取的備份元件,而無法選取備份上階至其備份元件檔,要求者會指定下列專案:
- 管理元件的寫入器實例
- 寫入器的類別識別碼
- 元件 (的 邏輯路徑 ,可能是 Null)
- 元件的名稱
如果元件不符合規格,則會傳回錯誤。
如果這類元件存在,VSS 會為備份元件檔中的元件建立 IVssComponent 介面。 寫入器和要求者將可存取和修改此資訊。 對於定義 元件集的可選取元件,它不僅描述元件的屬性,也會描述它所包含的所有子元件。
備份元件檔中無法使用隱含新增元件的相關資訊。 此外,備份元件檔中沒有可用的檔案資訊。 若要取得該資訊,要求者必須檢查寫入器元資料檔案 (,這些檔已在備份元件檔中選取的預存元件內容中讀取) 。
還原期間要求者元件選取
在還原作業期間,要求者不應該透過 IVssBackupComponents::GatherWriterMetadata,從系統上目前作用中的寫入器匯入元件資訊,因為目前執行中的進程狀態不一定會反映備份時的進程狀態。
它仍應該透過IVssBackupComponents::GatherWriterMetadata產生識別事件,以建立識別事件,並判斷系統上目前有哪些寫入器及其狀態。
要求者會在初始化期間擷取預存的備份元件檔,以及儲存的寫入器元資料檔案 (如需詳細資訊,請參閱 還原初始化 概觀) 。
備份期間的元件與還原的元件大致相同,不同之處在于您必須考慮 可選取進行還原 以及 邏輯路徑,無法 選取進行備份。
不過,有一些差異:
- 如果元件已在備份期間 明確包含 至備份元件檔,如果它已包含在備份元件檔中, (明確或隱含地) , 則會使用 IVssBackupComponents::SetSelectedForRestore 來明確將它新增至備份元件檔以進行還原。
- 如果元件 已隱含地包含在 備份中,且無法選取還原上階,但無法選取還原上階,在備份案例中,這表示未明確包含元件 (,則不會使用 IVssBackupComponents::SetSelectedForRestore 將它新增至備份元件檔) 。 這類元件應該視為隱含選取以進行還原。
- 對於隱含選取的備份元件, (該元件是否可供備份) ,只能使用 IVssBackupComponents::AddRestoreSubcomponent將可選取的元件新增至備份元件檔。
- 可選取的還原元件可能會定義用於還原的 元件集 ,就像備份元件可選取一樣。 這個可選取的還原元件接著會定義還原作業的這個元件集。
在 產生 PreRestore 事件之前,未明確選取任何元件的寫入器,將不會接收任何 VSS 事件。
要求者和寫入器可以使用 IVssComponent 介面來存取儲存的元件資訊。 透過 IVssComponent 介面,寫入器可以修改備份元件檔中明確包含之元件的一些設定,以支援還原 (,例如 還原目標) 。 如果它定義元件集,明確包含元件的寫入器修改將會傳播至其 子元件。 此外,介面提供一種機制,可在寫入器和要求者之間傳遞還原成功和失敗的相關資訊。
如同備份期間,備份元件檔本身的資訊不足,無法實作還原。 同樣地,需要寫入器元資料檔案,才能提供要還原之檔案的實際路徑資訊,以及探索哪些不可選取的元件是可選取元件元件集的一部分,因此必須還原。
如需可選取性及其使用方式的相關資訊,請參閱 使用可選取性和邏輯路徑 。
要求者使用寫入器元件檔資訊
每個元件都是由其父 寫入器的寫入器類別識別碼 、其名稱和 邏輯路徑唯一識別。
要求者可以使用IVssBackupComponents::GetWriterComponents方法傳回的IVssWriterComponentsExt介面,以取得每個預存元件的相關資訊。
您可以透過IVssWriterComponentsExt::GetComponent傳回的IVssComponent介面,找到元件的名稱和邏輯 (路徑) 。
注意
在還原階段,要求者應該只在呼叫IVssBackupComponents::P reRestore之後呼叫IVssWriterComponentsExt::GetComponentsExt::GetComponentCount,以允許寫入器更新備份元件檔的時間。 這類更新的其中一個範例是變更還原目標。
您可以使用 IVssWriterComponentsExt::GetWriterInfo找到每個已儲存可選取元件父寫入器的相關資訊。
透過這項資訊,可以查詢寫入器元資料檔案,並識別相符的檔。 然後,藉由使用 邏輯路徑,要求者可以識別每個可選取元件的相依不可選取元件,也就是識別可選取元件 元件集的所有成員。
使用 IVssExableWriterMetadata 介面時,要求者現在具有完整的元件資訊,包括 IVssWMComponent 介面 (路徑規格) ,適用于需要備份或還原的可選取和不可選取的元件。
這是要求者儲存自己備份元件檔的狀態和寫入器元資料檔案的寫入器元資料檔案的其中一個原因。
如需詳細資訊,請參閱 使用可選取性和邏輯路徑 。