使用 VShadows 恢复文件不起作用

使用 VShadows 恢复文件不起作用

我一直在开发基于这是微软示例

一开始我用的是测试工具测试我的应用程序

> betest.exe /B /S backup.xml /D C:\BackupDestination /X BetestSample.xml
> betest.exe /R /S backup.xml /D C:\BackupDestination /X BetestSample.xml

效果很好。我能够:

  • 来自 c:\testPath 的备份文件
  • 删除它们
  • 将它们恢复(到选定的备用位置 c:\testPath2)。

但每当我尝试备份/恢复 10GB 文件时,BETest 就会在恢复操作时崩溃。每次都是这样。我查看了其他工具:

  • 垂直阴影
  • 管理控制台
  • 管理员

使用 VShadow,我输入:

> vshadow -p -t=c:\bc.xml c:

我可以看到我的 Writer 正在打印:

enter: DepWriter::Initialize
enter: DepWriter::OnIdentify
enter: DepWriter::OnPrepareBackup
enter: DepWriter::OnPrepareSnapshot
enter: DepWriter::OnFreeze
enter: DepWriter::OnThaw
enter: DepWriter::OnPostSnapshot
enter: DepWriter::OnIdentify
enter: DepWriter::OnBackupComplete
enter: DepWriter::OnBackupShutdown

我能够使用 MKLink 链接卷影副本并浏览它:

> mklink /D c:\snapshots \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy6\

我可以看到我想要备份的文件。

然后我输入:

> vshadow -r=c:\bc.xml

输出内容(除其他外):

Sending the PreRestore event ...

(Waiting for the asynchronous operation to finish...)
Set restore status for all components components for restore...
  * Writer 'DFS Replication service writer':
    - Select component \SYSVOL\3E53186A-7D53-4667-A3D1-D278B3564CDC-DF424FA9-3080-403E-B7CE-2A81A03A79FA
  * Writer 'MSDNSampleWriter':
    - Select component \TestFiles

Sending the PostRestore event ...
Restore done.

然后我得到了我的作家印刷品:

enter: DepWriter::OnIdentify
enter: DepWriter::OnPreRestore
enter: DepWriter::OnPostRestore

但在 c:\testPath 和 c:\testPath2 中都找不到我的文件。它们没有被恢复。



我的 VSS Writer 是 MSDN 中示例 Writer 的直接修改版,对于小文件,它运行良好,并且测试结果良好。

为什么 VShadow 无法恢复我的文件并说它已完成? 我在 Windows Server 2008 R2 64Bits 上使用它

答案1

我找到了一个方法...

需要使用 exec={command} 开关。

就我而言,命令很简单:

vshadow -p -t=c:\bc.xml -exec="robocopy pathA pathB"

不过我猜正常的请求者会做比这更聪明的事情。最有可能的是它会自己找到替代位置,并制定失败时的策略……但到目前为止我还没能找到比 vshadow 更好的工具。

https://msdn.microsoft.com/en-us/library/windows/desktop/aa384575%28v=vs.85%29.aspx

相关内容