卷影复制(VSS)

时间:2009-03-28 14:42:24

标签: c++ recursion shadow-copy

任何人都可以澄清一个问题吗?我在家庭酿造备份工具*中使用VSS API(使用VSS2008的C ++和在XP SP3上运行的最新SDK)。

VSS快照操作适用于没有子文件夹的文件夹 - 即我的电子邮件和SQL服务器卷。但是,当我拍摄包含子文件夹的文件夹的快照时,嵌套结构在快照中被“展平” - 所有子目录都不复存在。

所以这就是问题:我知道在XP上对VSS的支持有点受限但有没有办法指定快照是非递归的?文档不是很有用......

  • 我真的厌倦了需要花费大量船只并且每隔几天都会失败的垃圾垃圾,所以我想我会自己滚动。它会在某个时刻进入CodeProject。如果有人有兴趣让我知道,你可以准备一份(来源)副本......

THX ++

杰里

2 个答案:

答案 0 :(得分:4)

你的问题令人困惑......

VSS无法在“文件夹”级别工作。它工作在“音量”级别。

您“捕捉”一个卷,您将拥有一个设备路径,您可以使用文件系统api(它将使用文件系统自动挂载设备卷)“打开”文件或您可以直接访问设备(逐个部门)。

备份设备卷上的所有文件应该很容易(不要忘记NTFS文件的所有文件流和ACL),你的问题将是恢复它们...... VSS无法帮助你恢复。主要问题是恢复系统卷,在那里你需要另一个操作系统来启动,如WinPE或DOS或其他东西。如果您不担心系统卷,则可以轻松恢复。

如果您按扇区备份数据,那么您将获得额外的好处,如果您为其编写卷设备驱动程序(看起来像卷或HD),那么Windows将自动加载文件系统驱动程序。这为您提供了免费的资源管理器应用程序,这是大多数基于扇区的备份应用程序所做的它也为VM提供了可能性。

即使您正在进行简单的文件备份,也有助于理解文件系统(NTFS,FAT等),以便您知道可以/应该备份和还原的内容。你知道NTFS重新分析点是什么吗?如果你在备份期间遇到一个,你将如何处理它?你知道windows实际上是如何启动的,你需要备份和恢复哪些文件,并且“修补”以便有机会启动。在还原时,如何将NTFS卷布局为不影响还原卷上的NTFS性能?您是否支持将系统卷还原到新硬件,这需要您做些什么才能有效?问题是无止境的。

系统备份/恢复并不容易,有很多边缘情况(请参阅上面的一些问题),除非你碰到它们,否则你不知道。

祝你好运,我希望我没有太多关闭你,我只是说有很多工作可以提供大多数人都不知道的备份应用程序。 / p>

答案 1 :(得分:1)

评论上述内容 - 如果'作家'正在播放VSS游戏,那么它将确保文件系统处于快乐状态,作为VSS设置的一部分。

对于MS SQL Server - 检查它是否是VSS编写器。如果是,那么您的DB文件快照应该没问题。如果没有,那么它就处于所谓的“崩溃状态”。因此,例如,如果您使用MySQL或其他非MS,非VSS感知的SQL数据库 - 您的备份可能是也可能不一致('一个好的')。在那种情况下,它可能总比没有好,但它也可能仍然没用。使用VSS MAY 可以获得更好的完整性来进行备份,但是文件是打开的,它们是打开的,如果应用程序没有在VSS猪圈中播放那么你可能会或者可能不要被冲洗。