共用方式為


備份探索階段概觀

呼叫 IVssBackupComponents::GatherWriterMetadata之後,要求者會使用從此呼叫傳回的 IVssAsync 介面實例,判斷系統上的所有寫入器何時都已完成建構其寫入器元資料檔案。 如需詳細資訊,請參閱 在 VSS 下處理備份的概觀

此時,要求者可以開始探索階段,檢查中繼資料以判斷哪些應用程式正在執行,以及哪些磁片區必須陰影複製才能取得完整備份。 下表顯示備份探索階段所需的動作和事件順序。

要求者動作 事件 寫入器動作
擷取寫入器元資料檔案 (請參閱 IVssBackupComponents::GetWriterMetadataIVssEx) 在此期間,寫入器可能會繼續其正常作業。
使用元件及其 檔案集的清單以及排除的檔案,取得備份 (所涉及的磁片區和檔案清單,請參閱 IVssWMComponentIVssWMFiledesc) 。
選擇要備份寫入器寫入器元資料檔案中的哪些元件。 針對每個元件呼叫 IVssBackupComponents::AddComponent ,將其新增至備份元件檔。 (請參閱 使用備份的可選取性使用備份元件 Document.)
初始化陰影複製集、內容和檢查支援的磁片區 (請參閱 IVssBackupComponents::StartSnapshotSetIVssBackupComponents::IsVolumeSupported) 。
如果執行非元件備份,請針對每個磁片區呼叫 IVssBackupComponents::AddToSnapshotSet ,將所需的目標磁片區從寫入器元資料檔案新增至陰影複製集。 否則,對於寫入器元資料檔案中已透過呼叫 AddComponent) 新增至備份元件檔 (的元件,要求者也必須針對每個受影響的磁片區呼叫 IVssBackupComponents::AddToSnapshotSet

 

探索階段期間的寫入器動作

由於備份的探索階段主要是由處理從寫入器元資料檔案擷取之資訊的要求者所組成,因此,如果寫入器有任何需求,則很少。

理論上,寫入器目前可以繼續正常執行。 不過,寫入器可能需要開始準備即將推出的陰影複製和備份作業。

探索階段期間的要求者動作

要求者會使用透過IVssBackupComponents::GetWriterMetadata取得的IVssEx,WriterMetadata物件逐一查看所有寫入器的中繼資料,並選取想要備份其資料的寫入器。

此時,要求者必須使用 IVssEx,WriterMetadata::GetComponent逐一查看寫入器的元件,以產生每個寫入器備份候選項目的初始清單。 這會為要求者提供 IVssWMComponent 物件,您可以從中取得使用 IVssWMComponent::GetFileIVssWMComponent::GetDatabaseFileIVssWMComponent::GetDatabaseLogFile備份之檔案的規格。

因為 IVssWMFiledesc 物件可以使用萬用字元來保存檔案位置資訊,所以可能需要使用 FindFirstFileFindFirstFileExFindNextFile等函式。

在陰影複製完成之前,寫入器仍然可以在正常運作過程中從磁片新增或移除檔案,因此您不應該產生目前要備份的實際檔案清單。

相反地,此時會執行下列動作來找到要備份的檔案和磁片區初始清單:

  1. 檢查每個寫入器寫入器元資料檔案中所有可選取的備份和不可選取元件 (使用 IVssExriterMetadata) ,並將其組織成 元件集 使用 邏輯路徑 (請參閱 使用可選取性和邏輯路徑)
  2. 使用IVssBackupComponents::AddComponent在備份元件檔中,) 明確包含 (無法選取備份元件的所有必要元件)
  3. 選擇針對未使用 IVssBackupComponents::AddComponents (定義元件集的備份元件,明確包含選擇性的可選取專案)
  4. 使用IVssBackupComponents::AddComponents:AddComponent) 明確地新增元件來定義可選取的備份 (元件集,以隱含地包含元件集的子元件
  5. 在選取寫入器的寫入器元資料檔案和磁片區管理功能中使用 檔案集 資訊,要求者會決定要備份的檔案路徑,以及需要陰影複製的磁片區路徑

請注意,只有使用 IVssBackupComponents::AddComponent) 在備份中明確 (包含的元件,而且備份元件檔中的 IVssComponent 介面實例會新增至該檔。 這些實例將用來檢查和修改明確包含元件及其任何隱含子元件的元件設定, (請參閱 可選取性和使用元件屬性) 。

如果寫入器包含任何寫入器的元件,則必須新增其所有必要的元件。 不過,要求者也可以完全略過所有寫入器元件集。 如果未明確選取寫入器的元件,則不會選取寫入器,而且 VSS 會禁止該寫入器參與備份作業的其餘部分。

要求者會呼叫 IVssBackupComponents::StartSnapshotSet來起始陰影複製集,其中包含選取的磁片區。

如果磁片區可以參與陰影複製 (可以使用 IVssBackupComponents::IsVolumeSupported) 來檢查,要求者可以使用 IVssBackupComponents::AddToSnapshotSet將該磁片區新增至陰影複製集。

雖然這通常並不實用,但要求者有時也可以選擇哪一個 提供者 會維護指定磁片區的陰影複製 (請參閱 選取提供者 以取得詳細資料) 。

請小心處理包含已掛接資料夾或重新分析點的磁片區。 掛接的資料夾或重新分析點可以出現在陰影複製中,而且可以備份。 不過,無法在陰影複製的磁片區上周遊掛接的資料夾或重新分析點, (請參閱 使用掛接的資料夾和重新分析點) 。

此時,備份元件檔會初始化並填入。 在未來的作業中,寫入器和要求者可以使用 IVssComponent 介面彼此通訊。

處理PrepareForBackupPostSnapshotBackupComplete事件時,寫入器會獲得IVssComponent介面的存取權。