sql-server – “无法对数据库”myDb“执行差异备份,因为当前数据库备份不存在.”

前端之家收集整理的这篇文章主要介绍了sql-server – “无法对数据库”myDb“执行差异备份,因为当前数据库备份不存在.”前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
尝试进行差异备份时,我有一个相当常见的问题.我们有一个sql Server 2008 Standard(64位),我们使用Litespeed v 5.0.2.0来进行备份.我们每周进行一次完整备份,每天进行差异备份.问题是,每次我尝试进行差异备份时都会出现以下错误

VDI open Failed due to requested abort
BACKUP DATABASE is terminating abnormally.

Cannot perform a differential backup
for database “myDb”,because a current
database backup does not exist.
Perform a full database backup by
reissuing BACKUP DATABASE,omitting
the WITH DIFFERENTIAL option.

问题是,我知道100%我有一个完整的备份,因为我只是双重检查.只有一次我能够进行差异备份,那是在我完成备份后立即使用它.

我已经四处搜索并注意到这是非常常见的(尽管主要是使用sql 2005),并且很多人建议并且我还没有尝试过的解决方案是禁用sql Server VSS编写器服务.问题是#1我认为我可能需要这项服务,因为我使用的是第三方备份软件和#2我不确定服务的确切做什么,也不想像那样禁用它.

你有没有遇到过这个问题,你是如何解决它的?

谢谢,

解决方法

您是否在服务器(NTbackup,BE等)上运行VSS备份以获取sql数据之外的其他内容?根据 this,如果备份软件使用VSS进行快照,则sql差异备份可能会失效.

据我所知,LS不像Nick那样使用VSS.根据this thread,修复是禁用sql编写器服务.

根据评论更新:

因为您使用NTbackup备份服务器上的其他文件,所以修复将禁用sql编写器服务.

当NTbackup运行时,它会调用所有可用的VSS编写器,即使您不需要它们也是如此.这意味着sql编写器将在创建快照时将数据库置于一致状态(刷新缓存到磁盘).然后,DB会认为它已备份,即使您没有从卷影副本中复制信息.这就是破坏备份的原因.

有一件事你可以查看VSS是否针对数据库运行(我是肯定的并打破了链),请查看sql日志(我认为它在错误日志中).您应该在NTbackup作业运行期间看到冻结/解冻事件.

猜你在找的MsSQL相关文章