SqlBak Blog

Cannot perform a differential backup because current backup does not exist

cannot perform a differential backupEncountering a  “Cannot perform a differential backup for database, because a current database backup does not exist” error might generate some confusion if you look into your backup log and can see that FULL backups have been successfully created.

This article will try to give you an answer as to why this happens and a solution, that will hopefully be applicable to your situation.

Before diving into the problem, we consider that it would be best to add some details and create a context regarding the problem as this would be better to understand the solution and why the cause is for this problem, so this issue won’t be encountered again in the future.

As you might know, differential backups are a type of backup which stores the changes which have occurred in your database since the last FULL database backup. In order to be able to create a differential backup, you will need to have a FULL database backup before. Multiple differential backups can be created later, which store the incremental changes in your database since your last FULL or DIFFERENTIAL backup, but having a FULL backup is mandatory as this is the base for your later backups which are of a different type (differential or transaction log).

Cannot perform a differential backup

Most of the time this message is encountered is if you are using another software solution (NTBackup, BE, Bacula, etc.) which takes snapshot-like backups (VSS copies – Volume Shadow Copy) of your databases. By creating snapshots backups of your database can cause the chain of backups to break and to invalidate your previous DIFFERENTIAL or FULL backups, which is why when your current DIFFERENTIAL backup process starts, it will fail due to the fact that it can’t see the initial FULL backup or another DIFFERENTIAL backup which has occurred before.

Solution

Because there are different backup software solutions that take snapshot types of backups, the solutions could most likely be different.

We will cover in continuation of this article NTBackup for which we can provide a clear and safe solution. If you do encounter this error while also using other backup software which takes snapshots of your database, please post a comment with the name of the application and provide a few more details about your situation (backup schedules – database and 3rd party snapshot backup tool, since when, have you started seeing this error, since when, have you started using the snapshot tool, etc.) which you consider relevant.

Solution for NTBackup

If you are also using NTBackup to take snapshots of your database along with a database backup schedule from SQL Server (or other tools) and you encounter a “Cannot perform a differential backup because current backup does not exist” error, the solution is to first check that the Service for SQL Server VSS Writer has its “Startup Type” set to “Manual” and that this service is Stopped.

If a VSS Copy (snapshot) is taken of the database while this service is running, then the VSS Writer will lock the Full Recovery model and by doing this the backup chain of your databases will be broken.

To change the service’s settings you’ll just have to go to “Start Menu” and then go to “Services” and search for the service called “SQL Server VSS Writer“.

After finding the service just right-click it and set the Startup Type to Manual and also make sure that the service is stopped so that if you ever restart the machine SQL Server is installed on, this service will not start again automatically and then cause the backup chain to break again.

In terms of why this issue occurs, it can suddenly appear if you have made an upgrade to your SQL Server, for example upgrading from 2005 to 2008R2. During this upgrade process, the default values for the VSS Writer service can change and be set to Automatic and the service can start.  By default, when installing SQL Server, this service is turned off and does not start automatically, but its settings can change due to a situation presented above or something similar.

If in your backup process you are also using other software solutions which take Shadow Copies of your database and you start to encounter this error, please leave a comment with more details about your situation and we will try to find a solution and update this article.

Also, if you have managed to solve this issue by yourself, please also leave a message and we will integrate your solution in this article so that if someone else encounters the same problem he will hopefully find a solution much easier.

3 thoughts on “Cannot perform a differential backup because current backup does not exist”

  1. On my test environment, the SQL server VSS writer is running on Automatic, and VSS is running on manual. The diff backups are completing successfully. Why is it failing on prod environment under thesame settings?

    Reply
  2. Differential backup fails for our db servers all the time. I am guessing it’s because SQLBak is looking for previous db backup in local for comparing the current instance of. However, since we have configured the job to move all backup to S3 and not keep any file in the server machine, it’s unable to find the previous backup and failing. Is there a way to configure job to look into S3 bucket rather than local for any previous backup?

    Reply
    • Hello Mahesh Tibrewal,

      Storing all backups locally may not be necessary; the issue is likely elsewhere. To resolve this matter, please reach out to our support team or provide us with the error message text you encountered.

      Reply

Leave a Comment