使用装载的文件夹和重新分析点

处理组件的某个文件集可能需要请求者以递归方式遍历目录树,这可能要求请求者处理装载的文件夹并重新分析 (点,例如指向当前卷上未指向数据的链接) 。

请求者在遍历目录树时应遵循装载的文件夹并重新分析点,VSS 为备份和还原操作处理这些文件夹提供了明确定义的准则。

为了说明这些准则,请考虑以下示例:

  • 卷 \\?\Volume{GUID_1} 具有驱动器号 C:\。
  • 文件集的路径为 C:\WriterData。
  • 文件集使用文件规范 *.dat。
  • 文件集的递归设置为 TRUE
  • 目录 C:\WriterData 位于卷 \\?\Volume{GUID_1} 上。
  • 目录 C:\WriterData\Archive 是装载的文件夹。
  • 卷 \\?\Volume{GUID_2} 与装载的文件夹 C:\WriterData\Archive 相关联。

在备份期间处理装载的文件夹和重新分析点

执行递归备份时处理装载的文件夹和重新分析点的基本规则可以总结如下:

  • 路径在已装载的文件夹和重新分析点之间遵循。
  • 如果装载的文件夹或重新分析点指向卷,则应复制该卷卷。
  • 如果卷包含已装载的文件夹或重新分析点,则它们将显示在卷的卷影副本中。
  • 装载的文件夹或重新分析点下的数据在装载文件夹或重新分析点指向的卷的卷的卷影副本中捕获。

为了说明上述示例的用法,由于设置了递归标志,因此请求者必须检查 C:\WriterData\Archive 和下面的所有数据。

请求者必须将具有驱动器号 C:\ (\\?\Volume{GUID_1}) 的卷和与装载的文件夹 C:\WriterData\Archive (\\?\Volume{GUID_2}) 关联的卷添加到使用 IVssBackupComponents::AddToSnapshotSet 的卷影副本集。

装载的文件夹 C:\WriterData\Archive 显示在卷 \\?\Volume{GUID_1} 的卷影副本中,该卷具有名为 deviceObject1 的设备对象。

但是,VSS 不会将该装载文件夹下的任何数据 (\\?\volume{GUID_2}) 上的数据复制到 deviceObject1 引用的卷影副本。 相反,该数据在 \\?\Volume{GUID_2} 的卷影副本中捕获,该卷影副本具有名为 deviceObject2 的设备对象。

因此,在 C:\WriterData 下备份卷影复制文件的请求者将使用 deviceObject1\WriterData 的路径来搜索与 C:\WriterData\*.dat 匹配的文件。

若要备份 C:\WriterData\Archive 下的卷影复制文件,请求者将使用 deviceObject2 (路径,因为 \\?\Volume{GUID_2} 的根目录与装载的文件夹 C:\Writer\Archive) 相关联,以搜索与 C:\WriterData\Archive\*.dat 匹配的文件。

请注意,重新分析点的处理方式与装载的文件夹相同。 重分析点显示在第一个卷的卷影副本中。 重分析点下的数据显示在第二个卷的卷影副本中。

在备份期间,请求者应存储有关已装载文件夹及其关联的卷的信息,以及重新分析点及其目标,以确保正确备份和还原所有数据。

在还原期间处理装载点和重新分析点

还原文件时,请求者必须遵循与备份期间使用的准则略有不同, (忽略 备用位置映射新的目标位置) 等问题:

  • 与以前一样,如果需要递归,则会在装载的文件夹和重新分析点之间遵循路径。
  • 要还原装载的文件夹。
  • 装载的文件夹和重新分析点的还原位置由其原始路径确定。

如果卷名称在备份和还原之间保留(即不重新创建卷),则还原的装载文件夹和重新分析点应指向正确的卷。

因此,在上面讨论的示例中,如果将装载的文件夹 C:\WriterData\Archive 还原到 (\\?\Volume{GUID_1}) 并且以前与之关联的卷还原为 (\\?\Volume{GUID_2}) ,则还原的文件和文件结构将正确且一致。

可能会将数据还原到卷名称更改的系统。 这可能是由于磁盘崩溃,可能需要执行手动系统恢复并重新创建卷。 在这种情况下,还原后,装载的文件夹和重新分析点将不再有效。 若要在还原卷上重新创建文件和文件结构,需要删除还原的装载文件夹并重新分析点,并在磁盘上重新创建它们。 由备份应用程序决定这是否合适。

请注意,装载文件夹的还原目标可能已占用。 例如,C:\WriterData\Archive 可能已包含一些文件。 由备份应用程序决定如何处理这种情况。