没有编写器参与的还原
编写器参与 VSS 备份旨在允许应用程序控制其还原数据的使用方式。
通常,如果编写器在系统上可用,则不建议将数据还原到其原始位置,而无需编写器参与。 这种还原可能会遇到锁定的目标文件,并运行损坏数据的重大风险。
但是,备份应用程序可能需要或需要还原 VSS 备份而不需要编写器参与的原因如下:
数据由 VSS-unaware 应用程序管理。 几乎每个系统都有一些应用程序(文本编辑器、邮件阅读器、字处理器等),这些应用程序都不知道 VSS。 无法使用编写器参与还原此数据。
通常,这种类型的数据不是系统或服务关键型数据,还原数据不应有问题,或者至少不会比在传统还原期间更有问题。
与准备常规还原一样,如果可能,还原运算符应在启动 VSS 还原之前尝试暂停或终止此类应用程序。
缺少 VSS 编写器。 还原损坏的系统状态时,这种情况可能相当常见。 备份作必须确定是否需要为缺失的编写器还原文件。 如果需要还原,可以像传统备份还原一样还原文件。
编写器数据的专用还原。 请求者可以选择将正在运行的编写器的数据还原到某些专用位置,而无需通知编写器。 其中一个示例可能是还原编写器的数据以支持脱机比较。 在这种情况下,请求者不希望在执行还原时使用新的目标位置,因为它不希望编写器访问数据。
在还原期间,编写器不希望参与其中。 编写器通过为 IVssCreateWriterMetadata::SetRestoreMethod的 writerRestore 参数传入VSS_WRE_NEVER来指示这一点。
编写器需要自定义还原方法。 编写器通过传入 VSS_RME_CUSTOM IVssCreateWriterMetadata::SetRestoreMethod的 方法 参数来指示它需要自定义还原。 在这种情况下,除非该编写器的自定义还原文档指示否则不应参与还原过程。
请求方通过在调用 IVssBackupComponents::SetSelectedForRestore中指定该编写器的组件,在还原过程中涉及编写器。 只需在调用 IVssBackupComponents::SetSelectedForRestore时,即可还原编写器的数据,而无需涉及编写器。 如果编写器不需要任何还原事件,那么在还原过程中涉及该编写器可能会导致该编写器报告虚假错误。