Akeeba Solo

#22920 How to make automatic backups only of changes in the site

Posted in ‘Akeeba Solo (standalone)’
This is a public ticket

Everybody will be able to see its contents. Do not include usernames, passwords or any other sensitive information.

Environment Information

PHP version
Akeeba Solo version

Latest post by user1042 on Tuesday, 07 July 2015 03:45 CDT

How to make automatic backups only of changes I did in the site since the last backup?

Akeeba Staff
You can't. This is a very long discussion but it comes down to the following issues which make it an non-well-defined problem to solve:

  • Tracking file changes. The only way to tell if a file has changed, added or deleted is holding a list of all files with their modified dates and SHA-1 hashes and compare it to the current filesystem status before taking a backup. This is a very lengthy and intensive process, 5x slower than taking a full site backup. We already know that from our experience with Admin Tools' PHP File Change Scanner. This would cause the backup to fail on most servers. In the best case scenario it would cause the server to be almost unresponsive while the backup takes place. That's unacceptable.
  • Tracking database changes. Simply put: not possible. One would have to back up the database, restore it in a temporary database and compare it against the last known copy of the database (which means that you have to restore the entire site's database on a third database on the server). Then you need to scan the table row by row and sort out which rows have been added, removed and modified. This is 10x slower than backing up the database and requires hundreds of Gigabytes (yes, Gigabytes) of memory to run. Of course this is unacceptable as it would make the backup fail, not to mention that it's outright impractical.
  • Restoration strategy. Even if you somehow managed to store these file and database deltas you would have a problem restoring the site. You'd need to first restore the full site backup, then all the deltas in the same order they were taken. This would eventually become more than 1000x slower than restoring a full site backup in the period of one month of daily backups – if not for any other reason, uploading so many deltas and running N restorations in the correct order is dead slow and error prone.

For these simple reasons such a feature is not going to be ever pursued. There are other more technical reasons –depending on which site building solution you are using such as Joomla!, WordPress, Magento etc– but we don't even have to go there. If an idea fails the basic sanity check we don't have to go into the technicalities of nested sets, foreign keys, data consistency and so on.

Nicholas K. Dionysopoulos

Lead Developer and Director

πŸ‡¬πŸ‡·Greek: native πŸ‡¬πŸ‡§English: excellent πŸ‡«πŸ‡·French: basic β€’ πŸ• My time zone is Europe / Athens
Please keep in mind my timezone and cultural differences when reading my replies. Thank you!

ok, thanks

Support Information

Working hours: We are open Monday to Friday, 9am to 7pm Cyprus timezone (EET / EEST). Support is provided by the same developers writing the software, all of which live in Europe. You can still file tickets outside of our working hours, but we cannot respond to them until we're back at the office.

Support policy: We would like to kindly inform you that when using our support you have already agreed to the Support Policy which is part of our Terms of Service. Thank you for your understanding and for helping us help you!