共用方式為


還原增量和差異備份

在 VSS 下還原增量或差異備份,與任何其他 VSS 還原作業並不明顯不同。

寫入器可以修改還原目標或要求導向目標,而且要求者必須處理替代位置對應和新目標,就像任何其他還原一樣。 不過,處理增量或差異備份的還原有兩個重要問題:其他還原和備份戳記。

其他還原

第一個問題是其他還原的問題。 備份操作員可能需要使用初始完整和後續的增量或差異備份媒體作為來源來執行數個還原作業。

某些寫入器通常是使用CVssWriter::OnPostRestore處理PostRestore事件的一部分,使用還原的檔案在磁片上執行資料更新。 對於其中一些寫入器而言,從還原的檔案重複更新磁片資料是效率不佳或危險的。

因此,備份應用程式務必指出元件或元件集何時可能需要後續的還原,方法是呼叫 IVssBackupComponents::SetAdditionalRestores

寫入器會呼叫 IVssComponent::GetAdditionalRestores ,以判斷備份操作員是否已規劃更多元件或元件集的還原。

如果要求者未呼叫 IVssBackupComponents::SetAdditionalRestores則 IVssComponent::GetAdditionalRestores 會傳回 false,而且寫入器可以執行它所需的任何還原後處理。

如果已呼叫 IVssBackupComponents::SetAdditionalRestores則 IVssComponent::GetAdditionalRestores 會傳回 true,而寫入器應該決定如何處理還原後作業,例如,寫入器可能選擇不要更新其磁片上的資料。

備份戳記

在先前的完整備份作業中,寫入器可能已將備份戳記儲存在要求者的備份元件檔中。

備份戳記會儲存為字串,而且其格式和資訊對要求者無法辨識。 因此,要求者無法直接使用備份戳記資訊。

相反地,其工作是呼叫 IVssBackupComponents::SetPreviousBackupStamp 方法,讓寫入器能夠使用該資訊,再產生 PrepareForBackup 事件以進行增量備份。

要求者會逐一對元件執行這項作業。 要求者會使用 IVssComponent::GetBackupStamp來檢查儲存的元件或元件集備份戳記資訊。

如果備份戳記資訊適用于要求者正在執行的還原類型,它會讓它成為元件最後一次備份的時間戳記,並搭配 IVssBackupComponents::SetPreviousBackupStamp 方法使用。

寫入器會使用 IVssComponent::GetPreviousBackupStamp來復原備份戳記資訊。 這個類別的寫入器會產生初始備份戳記,因此寫入器能夠解碼此戳記並使用資訊。 根據此情況,處理 PreRestore 事件時,寫入器可以選擇採取動作,例如變更還原目標或要求導向目標。