实际文件还原概述
执行 还原初始化概述 和 准备还原概述中所述的操作后,请求者有足够的信息开始还原文件。 文件还原不涉及编写器交互或事件生成。 有关详细信息,请参阅 在 VSS 下处理还原的概述。
下表显示了还原文件所需的操作和事件序列。
请求者操作 | 事件 | 编写器操作 |
---|---|---|
为备份介质上的文件生成还原集列表。 | 无 | 无 |
处理 定向目标 或 部分文件 还原 (请参阅 IVssComponent::GetDirectedTarget、 IVssComponent::GetPartialFile) 。 | 无 | 无 |
如有必要,请忽略所有指定的还原位置,并还原到之前对 IVssBackupComponents::AddNewTarget 的调用中指定的新位置。 | 无 | 无 |
如果还原是增量还原,并且需要进一步还原,请指示 (请参阅 IVssBackupComponents::SetAdditionalRestores 和 增量备份和差异备份) 。 | 无 | 无 |
若要了解编写器是否已修改备份组件文档的内容,请调用 IVssBackupComponents::GetWriterComponents。 例如,编写器可能已更改还原目标。 | 无 | 无 |
还原文件时的请求者操作
对于备份介质上的大多数文件,请求者需要确定其原始位置以及适用于这些文件的任何新位置或备用位置映射。 (请参阅 生成还原集 ,了解确定要还原的文件和还原位置的最佳做法。)
此外,某些文件可能 已定向目标 或支持 部分文件 还原。 可以通过调用 IVssComponent::GetDirectedTargetCount 和 IVssComponent::GetPartialFileCount 找到此类文件的数量,通过调用 IVssComponent::AddDirectedTarget 和 IVssComponent::GetPartialFile 可以找到有关详细还原说明的信息。 (部分文件和定向文件可以是隐式或显式添加到原始备份的组件的一部分,有关详细信息,请参阅 使用适用于还原和子组件的可选性 。)
使用 IVssBackupComponents::SetFileRestoreStatus 逐个组件指示还原成功或失败。 此外,还使用 IVssBackupComponents::SetAdditionalRestores 逐个组件指示在增量还原或差异还原) (进一步还原操作的需求。
通常,VSS 不会指定用于从存储介质检索数据的机制、选择的存储介质,也不指定如何确定应将哪些文件还原到何处。
但是,对于某些编写器,还原文件可能涉及使用记录的自定义接口和过程。 特殊 VSS 用例中记录了当前需要此类支持的 Windows 系统编写器。
通常,建议将每个 编写器实例 的每个组件的文件作为一个单元进行处理。 这需要以下条件:
- 将要还原的每个文件与管理它的组件相关联。 这需要使用编写器元数据文档。
- 获取正确的还原目标信息。 这需要备份组件文档中的信息。