在没有编写器参与的情况下进行还原

编写器参与 VSS 备份旨在允许应用程序控制其还原数据的使用方式和方式。

通常,如果编写器在系统上可用,则不建议在没有编写器参与的情况下将数据还原到其原始位置。 此类还原可能会遇到锁定的目标文件,并存在损坏数据的重大风险。

但是,备份应用程序可能需要或需要还原 VSS 备份而无需编写器参与的原因如下:

  • 数据由 VSS 不识别的应用程序管理。 几乎每个系统都有一些 VSS 无法识别的应用程序(文本编辑器、邮件阅读器、字处理器等)。 无法使用编写器参与还原此数据。

    通常,这种类型的数据不是系统或服务关键型数据,还原它应该不会有问题,或者至少不会比传统还原期间出现问题。

    与传统还原的准备工作一样,如果可能,还原操作员应在开始 VSS 还原之前尝试挂起或终止此类应用程序。

  • 缺少 VSS 编写器。 在还原已损坏系统的状态时,这种情况可能相当常见。 备份操作必须确定是否需要还原缺少的编写器的文件。 如果需要还原,可以像传统备份还原文件一样还原文件。

  • 编写器数据的专用还原。 请求者可以选择将正在运行的编写器的数据还原到某个专用位置,而无需通知编写器。 例如,还原编写器的数据以支持脱机比较。 在这种情况下,请求者不希望在执行还原时使用 新的目标位置 ,因为它不希望编写器访问数据。

  • 还原期间不希望涉及编写器。 编写器通过传入 IVssCreateWriterMetadata::SetRestoreMethodwriterRestore 参数VSS_WRE_NEVER来指示这一点。

  • 编写器需要自定义还原方法。 编写器通过为 IVssCreateWriterMetadata::SetRestoreMethod的方法参数传入VSS_RME_CUSTOM来指示它需要自定义还原。 在这种情况下,除非该编写器的自定义还原文档另有指示,否则还原过程中不应涉及此编写器。

请求者通过在对 IVssBackupComponents::SetSelectedForRestore 的调用中指定编写器组件之一,使编写器参与还原过程。 只需在调用 IVssBackupComponents::SetSelectedForRestore 时不指定编写器的任何组件,即可还原编写器的数据,而无需涉及编写器。 如果编写器不需要任何还原事件,在还原过程中涉及该编写器可能会导致针对该编写器报告虚假错误。