Sql-server – “Cannot perform a differential backup for database “theDb”, because a current database backup does not exist.”

backuplitespeedsql server

I have what seems to be a pretty common problem when trying to take a differential backup. We have a SQL Server 2008 Standard (64bit) and we use Litespeed v 5.0.2.0 to take our backups. We take full backups once a week and a differential on a daily basis. The problem is, every time I try to take a diff backup I get the following error:

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.

The problem is that I know 100% I have a full backup because I just double checked. Only once I was able to take a diff backup and that was when I took it immediately after I took a full backup.

I have searched around and noticed that this is pretty common (although mostly with SQL 2005) and a solution that a lot of ppl suggest and that I haven't tried yet is to disable the SQL Server VSS Writer service. The problem with this is #1 I think I might need this service since I am using a third party backup software and #2 I am not sure exactly what the service does and don't want to disable it just like that.

Has any of you ever experienced this problem and how did you go about fixing it?

Thank you,

Best Answer

Are you running VSS backups on the server (NTbackup, BE, etc.) for stuff other than the SQL data? According to this, the SQL differential backups can be invalidated if a backup software uses VSS for snapshots.

As far as I know, LS does not use VSS just like Nick said. According to this thread the fix was to disable the SQL Writer Service.

Update based on comments:

Because you are using NTbackup to backup other files on the server, the fix would be to disable the SQL Writer Service.

When NTbackup runs it calls ALL the available VSS writers, even if you don't need them. This means that the SQL writer will put the DB into a consistent state (flush cache to disk) while the snapshot is created. The DB then thinks it has been backed up, even if you didn't copy the information from the shadow copy. This is what's breaking your backups.

One thing you can check to see if VSS is running against the DBs (which I'm positive it is and breaking the chain), is look in the SQL log (I think its in the error log). You should see freeze/thaw events during the time your NTbackup jobs run.