3

任何人都可以澄清一个问题吗?我在自制备份实用程序*中使用 VSS API(使用 VSS2008 的 C++ 和在 XP SP3 上运行的最新 SDK)。

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

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

  • 我真的厌倦了那些花费大量船费并且每隔几天就会失败的垃圾车,所以我想我会自己动手。它会在某个时候进入 CodeProject。如果有人有兴趣让我知道,当它准备好时,你可以有一个(源)副本......

谢谢++

杰瑞

4

2 回答 2

4

你的问题令人困惑...

VSS 不能在“文件夹”级别工作。它工作在“音量”级别。

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

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

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

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

系统备份/恢复并不容易,有很多边缘情况(请参阅上面的一些问题)直到您遇到它们才知道。

祝你项目好运,我希望我没有让你失望太多,我只是说要交付一个大多数人不知道的备份应用程序还有很多工作要做。

于 2009-03-29T19:41:59.283 回答
1

对上述内容进行评论 - 如果“作家”正在玩 VSS 游戏,那么它将确保文件系统处于正常状态,作为 VSS 设置的一部分。

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

于 2009-08-10T13:14:58.707 回答