Differential Backup

Differential backups are very similar to incremental backups, again, there’s a full backup performed first, and then there are additional backups closely linked to the full backup created, which take less space than the full backup and therefore save some space.

Instead of saving a copy of the new changes, as the incremental backup process do, differential backups take note of the differences between the original backup and the current filesystem.

Let’s say that we have a full string that is “1, 2, 3, 4, 5” and then we add 2 digits “6, 7”. An incremental backup would create the first full backup of the string and then create an additional backup with just the changes “6, 7”. If we then add another 2 digits to make it “1, 2, 3, 4, 5, 6, 7, 8, 9”, the incremental backup would create another backup copy including the last added digits “8, 9”.

Differential backups instead would record the changes between the original string and the current one, based on our previous example, if the original string is “1, 2, 3, 4, 5” and then we add “6, 7”, the differential backup approach would create a full backup containing the original string and then just add a note that there were 2 digits added “6, 7”. If after that we add 2 more digits to make it “1, 2, 3, 4, 5, 6, 7, 8, 9” it would create a new record with “4 digits added: 6, 7, 8, 9”. As you can see, instead of recording the changes from the last backup, which would result in just 2 new digits added (8, 9), the backup process compares the current string against the original one, that’s why it records a 4 digit change instead of having two 2 digits changes.

This process makes differential backups faster to restore, as the original full backup is restored first and then the changes from the last differential backup are applied to it. The incremental approach would have to copy over several copies of the incremental backups as it “adds changes” progressively, while the differential backup just applies the last difference record. It also makes it easier to restore to a specific point (i.e. a date) since the only “difference record” applied would be the one that matches that date. However as it’s faster to restore, it’s also slower to backup, since it has to compare the current filesystem against the original full backup, and this process can take some time on large filesystems.

The main drawback of differential backups is that since there’s a new record created with the latest changes everytime the backup is updated, it can take more space than other backup methods.