Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

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,

share|improve this question

3 Answers 3

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.

share|improve this answer
    
There is a couple of scheduled tasks that use ntbackup.exe to backup certain folders on the server. Wouldn't disabling SQL VSS writer mess up these ntbackup tasks? Thanks... –  user44127 Jun 2 '10 at 15:57
    
@krimerd, no it wouldn't harm the backups. Since you are using LS to do the SQL backups, you should exclude the directories containing the DBs anyway. When NTbackup runs, it calls all the VSS writers available, whether or not you are going to use them. Disabling the SQL writer won't hurt you in this case. –  Holocryptic Jun 2 '10 at 16:04
    
I might give this a shot but first I'd like to make sure that this is what's causing the error. I'll disable the ntbackup tasks, take a full sql backup and see if I get any errors trying to take a diff backups. If I dont get the error it's pretty safe to say that the ntbackup caused the issue. Thanks Holocryptic. –  user44127 Jun 2 '10 at 16:25
    
@krimerd, no problem. 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. –  Holocryptic Jun 2 '10 at 16:44
    
Holocryptic, you're right...I just checked the SQL logs and at the time when ntbackup task is scheduled to run I can see several logs (one for each database) and all of them having 'Backup' as source and 'type = virtual_device". There are no backup jobs scheduled at those times and no one took any backups manually at those times so the only other thing left is the ntbackup task. This is little strange because the ntbackup that is scheduled @ that time only backups one folder and I don't see why it would touch any databases or sql server in general...thanks again –  user44127 Jun 2 '10 at 17:55

it's been a few years since i used lightspeed so this may have changed, but doesn't light speed provide its own extended stored procedures to performs backups? in which case, you should be calling these to do a differential. You probably shouldn't be calling the native BACKUP DATABASE commands. I don't think you can mix & match native/lightspeed backups.

I tried to poke around Quests online product doco, but alas you need to be a customer.

From SQL Server's perspective of native backups if you've never taken a full backup then you can't take a differential.

The VSS service allows for file level backups of sql server via volume shadow copy. If you're using lightspeed for backups & excluding the sql server directory from server level (OS) backups it's probably ok to turn this off. This is probably got nothing to do with not being able to take differential backups.

Does restarting the sql server instance fix the issue? if so, you may want to look at increasing sql servers memtoleave check this out.

share|improve this answer
    
Thanks for your answer Nick. You're right, LS does provide its own storeprocs and I call these from my maintenance SSIS package. However, I still get the above mentioned error. Thanks again... –  user44127 Jun 2 '10 at 14:11
    
looks like a quest specific issue! –  Nick Kavadias Jun 2 '10 at 14:15
    
Yeah, it might but all the other people are getting this same error by doing the native backups. Thanks again –  user44127 Jun 2 '10 at 14:36

I had the same issue albeit with Bacula taking snapshots of the database as well as my own SQL Server backups. There's some kind of bug that was making this happen on a subset of the DBs on the server which was most annoying. In the end my resolution was to change backup timings so that a SQL Backup ran after the Bacula backup to ensure that SQL Servers internal flags got correctly reset to note that a full backup had been taken. That was on 2005 - I guess the same VDI problems are affecting 2008 as well.

For ref here was my earlier question.

share|improve this answer
    
Yeah, it looks like the same situation I'm in. The only difference is that my databases are in the simple recovery mode (since I don't need to take tlog backups) and that in my case all 4 databases that I'm trying to backup fail with the same error. If nothing else, I'll try to stop the VSS writer and see if that helps and hoepfully that won't cause some other problems. Thanks Chris –  user44127 Jun 2 '10 at 14:57

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.