C++ 无法使用SQL Server VSS编写器进行差异备份
我一直在尝试开发一种工具,使用SQL Server VSS Writer备份/恢复MS SQL Server。我不能让不同的备份工作!我只是好奇是否有人使用VSS进行过差异备份。以下是我一直在做的事情:C++ 无法使用SQL Server VSS编写器进行差异备份,c++,sql-server,shadow-copy,volume-shadow-service,C++,Sql Server,Shadow Copy,Volume Shadow Service,我一直在尝试开发一种工具,使用SQL Server VSS Writer备份/恢复MS SQL Server。我不能让不同的备份工作!我只是好奇是否有人使用VSS进行过差异备份。以下是我一直在做的事情: 创建完整备份并存储文件以及与其关联的备份组件文档 更新数据库中的表 通过将“SetBackupState”设置为VSS\u BT\u DIFFERENTIAL来创建新备份 现在,在将现有组件添加到备份组件文档时,我在步骤1中从文档中找到该组件的时间戳,然后使用“SetPreviousBackup
我是不是遗漏了什么?我们是否需要使用某些参数或其他东西启动SQL Server VSS编写器?我尝试了不同的配置,包括(Windows Server 2008/SQL Server 2008)我想更新这篇文章有一段时间了,但是我发现了程序中的所有错误。微软的几个人帮我解决了这个问题。我只想感谢迪利普和拉梅什(出于明显的原因,我省略了他们的姓氏)帮助我度过了难关 以下是我的发现:
- SQL VSS编写器不支持差异备份
- 进行差异备份时,不要将“主”组件作为备份组件
- 始终使用以下API序列在每个阶段后检查写入程序状态错误:GatherWriterStatus()、GetWriterStatusCount()、GetWriterStatus()
- 如果writer状态指向错误,那么从那以后事情就不可预测了
- 开始寻找工作的最佳位置是作为VSS SDK的一部分提供的BETest源代码
- BETest允许备份单个数据库(完整/差异)和恢复(完整/差异),只要您正确获得/C选项。组件语法为:“{Writer Id}”:“完整组件名” 例如,对于我机器上的数据库“Person”,我的组件信息文件包含: “{A65FAA63-5EA8-4EBC-9DBD-A0C4DB26912A}”:“ABP-PC\SQLEXPRESS\Person”
- 执行差异恢复时,需要使用“/AdditionalRestores”选项执行完全恢复
希望这有帮助。如果有人需要帮助,请更新此帖子,我会得到通知。我会帮忙的。您好,我在另一个writer和增量备份方面遇到了问题,我在这里写到:您能帮我吗?:)