Support

Akeeba Backup for Joomla!

#34474 New customer configuration questions

Posted in ‘Akeeba Backup for Joomla! 4 & 5’
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

Joomla! version
n/a
PHP version
n/a
Akeeba Backup version
n/a

Latest post by on Monday, 08 March 2021 20:17 CST

AllenK

I just purchased Akeeba Backup for Joomla. I've already successfully run a full site backup to Backblaze B2 as a test, and then configured and successfully tested a cron automated "Full site, incremental" backup. This successfully ran and completed too when I manually ran the cron job on the server.

Now I just want to confirm I have things configured properly for what I want to do.

  1. I want to run a weekly backup by cron. The cron is already set up and has been successfully tested.
  2. I want to restart a new backup chan once per month
  3. I don't want to maintain any old backup chains

Please see attached and tell me if my backup is configured properly to support #2 and #3 above.

Regards,

Allen

tampe125
Akeeba Staff

Hello,

first of all, some background. If you want to go to use the incremental feature, it means that when you're going to restore it you'll have to take the last full backup and then restore every incremental backup, until you reach the latest available one.

However, before doing this, my question is: do you really need it?
Usually the amount of files doesn't change very often, since they only provide the "logic" for your website, its contents are stored inside the database. Unless you have a very specific use case, my suggestion would be to take a full site backup every week, and a database only backup every day.
In this way, when you'll have to restore the site, you can take the last backup (which will be in the worst case one week before) and then restore the database, too.

When you're going to perform some sensitive action (like before a Joomla update or installing/updating a new extension), you can manually run a full site backup, just to have a new saving point.

This will be easier to manage and you won't have to remember to restore the full chain of incremental backups.

Would it be a good solution for you?

Davide Tampellini

Developer and Support Staff

🇮🇹Italian: native 🇬🇧English: good • 🕐 My time zone is Europe / Rome (UTC +1)
Please keep in mind my timezone and cultural differences when reading my replies. Thank you!

AllenK

Hi,

I understand what an incremental backup is, and I understand the restoring implications. I would prefer a differential backup with only two pieces, but such is not an option with Akeeba from what I can tell.

I am making changes to the site fairly regularly, often on a daily basis. The site also runs ecommerce, which generates and stores invoices that are critical new files. The site also hosts an LMS, which periodically generates course completion certificates for users as they are earned. This means that new and changed files are not a lot in terms of space and bandwidth, but are critical files to keep current.

Perhaps an even better method would be to perform a daily incremental backup, with a new chain started once per week since restoring 7 pieces is at the edge of tolerable.The incremental pieces past the first full backup would be small, but they would be mostly critical new files.

Does an incremental backup create a database backup with every increment? I would assume so, but I'd like to verify.

 

I had attached some screen captures of my configuration. Comments are included. Could you review and reply to those as well?

tampe125
Akeeba Staff

Ok,  I was just checking if we were on the same page. In the past customers had very different needs and the incremental backup wasn't the best solution for them.

Now, let's back to the question (please note that your attachment didn't upload, so maybe I'm stating something that you already did).

As reported in the docs, the incremental backup will only include files that got modified or added from the previous run. Akeeba Backup won't track file deletion.
There is no automatic way to start or end "chains", it's up to you to know which backups you're going to restore.

First of all you should have a profile of type Full Site. That will take care of backing up your whole site (files and database) and will be the starting point when you're going to restore your site. You can schedule this with less frequency (ie every week or 10 days).

Then create a new backup profile with type Full Site, incremental files. This will include all your database data and the files that were added/modified since the previous run of this profile.

In case of restoration, you will have to take the most recent Full Site and every entry of the Incremental one, until you reach the desired state.

Davide Tampellini

Developer and Support Staff

🇮🇹Italian: native 🇬🇧English: good • 🕐 My time zone is Europe / Rome (UTC +1)
Please keep in mind my timezone and cultural differences when reading my replies. Thank you!

AllenK

Ok, Now I am a bit confused. I rand a Full, incremental backup.  I did not use a different profile to perform a full backup, since I already fully expected the "Full, incremental" to perform a full backup for its first piece. That's what incremental backups normally do. The first time I ran the "full, incremental" profile, it performed a full back of the site on the first run - approximately 16GB compressed - just as expected. Are you sure I need to perform a full backup with a separate profile?

Then 2 days later I ran the same script again, and it created an incremental backup of about 62MB. I would expect that a full restoration would want me to restore all of these pieces, which should give me an up-to-date restoration, right?

As for creating new chains, this goes to my original question with the captures I thought I had attached. I am re-attaching them to this post.

nicholas
Akeeba Staff
Manager

Hello Allen,

I received the following email from you:

Nicholas,
 
I am trying to get some questions resolved on your forum, but I am getting answers that appear to be wrong: https://www.akeeba.com/support/akeeba-backup-3x/Ticket/34474:new-customer-configuration-questions.html
 
Davide Tampellini explained that to perform an incremental backup, I need to actually use 2 separate backup profiles. He says I need to perform a full backup under a full backup profile, and then perform incremental backups with the incremental profile, and that I would be restoring both if I ever need to restore.
 
Doesn’t the first run of the “Full, incremental” profile already perform a full backup to start from? Why would I need a separate full backup to work from. If anything, this would screw up the incremental since it is looking for a full backup start-point of its own that likely has a unique start-point identifier, not true?
 
Also Davide does not seem to be able to answer my questions about incremental chain management. It appears I can expire a given chain automatically after a set amount of days, which should cause a new chain to create – at least, I think so. That was one of my questions in the forum post. As you know, its common to re-start incremental chains periodically so there are not so many pieces vulnerable to corruption.
 
I attached a screen cap to my forum ticket, but Davide can’t find it. I checked. It’s there. Now I’m troubleshooting your troubleshooter.

I am replying here because, as I told you, my availability is pretty low since I have a sick toddler to tend to. Davide is more than capable of answering any further questions.

First things first, it’s a support ticket system, not a forum. You get personalised support from the developers of the software. This information is printed at the bottom of every ticket page on our site. Davide is indeed one of the two developers in the company, me being the other one. We both do development and support. You don’t get support from a random outsourced person who doesn’t know what they are talking about. 
 
For what it’s worth, your use case (a site with an LMS) is indeed the original use case for which the “Full site, incremental files” backup type feature was developed a decade ago. That is to say, we know your use case very well and we are confident that what we describe will work for you. Towards the end of this reply I’ll let you know how to test it.
 
I reviewed Davide's replies and the information he’s giving you is accurate, it’s exactly what I have already told you since my first reply to your pre-sales email and it’s consistent with our documentation. Since you seem to have trouble locating the documentation, it’s under Support, Documentation at the top menu on our site. Direct link: https://www.akeeba.com/documentation/akeeba-backup-documentation.html You can also download it as a PDF file. Go to our Download page, find Akeeba Backup for Joomla and click on All Files. Click on the “Documentation in PDF format” item. Direct link for the documentation to version 7.5.3: Documentation in PDF format
 
Regarding your screenshot, you only uploaded one showing your quota management configuration, NOT the configuration of two separate backup profiles or which backup types you selected. Since Davide was describing how to set up your backup profile and he only saw a screenshot about quotas which doesn’t apply in context he’s of course assuming that you had another screenshot which you didn’t upload. He put it in a tactful way instead of telling you that the only way an attachment wouldn't upload is if it was never included by you a different file extension than the ones we tell you we support under the attachment area, bigger than the maximum size we tell you we support in the same place or contained suspicious code, it was rejected by our security filter (but you'd have gotten an error anyway) for you had a network issue (again, you'd have seen an error). He wasn't telling you our site was broken. He was just trying not to offend you for something that seemed to be a user caused problem. In any case, the problem was that the screenshot you uploaded was unrelated to what Davide was talking about so it makes sense he though something is missing.
 
Please read Davide’s replies again. He explained very well how incremental backups work, how they need to be restored and why you need two separate backup profiles. This is in line with what I already told you myself and what I have already documented in https://www.akeeba.com/documentation/akeeba-backup-documentation/configuration.html#basic-configuration under Backup Type. Do note that I have written this documentation myself. As you can see, I do state the need for two backup profiles:
Restoring an incremental backup set is a manual process. You have to manually extract the files from your "base" backup (an archive made with a Full Site Backup profile), then extract all incremental archives on top of it. Finally, used this collection of extracted files to restore your site. This process should only be used if you really know what you are doing. Do not trust that Akeeba Backup can sort out the collection of incremental backups and help you restore them. It won't.
Please do remember that I was very upfront with this detail answering your pre-sales email before you subscribed.
 
Regarding quota management, I was also very upfront with this information and gave you the setup information you need. Furthermore, I have documented how they work in the Quota management documentation page. So, no, they will not restart the incremental chain. Doing so requires removing all backup records from the incremental backup profile, i.e. having no backups. This is most definitely NOT what you want.
 
Please remember that I have already told you how you need to set up Akeeba Backup. In the interest of keeping the information in one place I am repeating myself below.
 
1. Full backup profile. Backup type set to “Full site backup”. Only count quotas enabled and set to 4 (two weeks of two backups per week equals four backups to be kept). Apply remote quotas enabled since you are using BackBlaze B2. Set up a CRON job to run this backup profile twice a week, e.g. Sunday and Wednesday.
 
2. Incremental backup profile. Backup type set to “Full site, incremental files”. Only count quotas enabled and set to 5 (an entire week of incremental backups is 5 backups). Apply remote quotas enabled since you are using BackBlaze B2. Set up a CRON job to run this backup profile five times a week when your full site backup is not running, e.g. Monday, Tuesday, Thursday, Friday, Saturday.
 
Alternatively to count quotas you could of course use date quotas — only do that if you plan to also take manual backups and don’t want quotas to accidentally delete a backup you’d have liked to keep! In this case you need check the Enable maximum backup age quotas. Set the maximum backup age to 14 days for the Full backup profile and 7 days for the Incremental backup profile. In both cases set “Don’t delete backups taken on this day of the month” to 0 so nothing is kept forever.
 
As stated in the documentation (which I quoted above) and explained by me in our email exchange and Davide in the ticket the restoration process is multi step. First, you completely restore the latest full site backup (taken with the profile “FULL BACKUP PROFILE” I described above). Then you need to restore each and every backup taken with the “INCREMENTAL BACKUP PROFILE” I described above, as long as they are taken after the full site backup you have already restored.
 
If you want to be on the safe side, when restoring the full site backup and only then you can choose the Kickstart option to delete all files and folders before extracting the backup. This will delete all files and folders under your site before extracting the full site backup, ensuring that any files added after the last backup you’re restoring won’t be present. This may be necessary if you’re recovering from a bad Joomla / extension update that broke your site.
 
I’ll give you a few examples, given the following list of backups and assuming the current date is Saturday, February 6th, 2021 early in the morning (before the daily backup ran)
 
Backup #34 — Incremental backup profile — Friday, February 5th, 2021
Backup #33 — Incremental backup profile — Thursday, February 4th, 2021
Backup #32 — Full backup profile — Wednesday, February 3rd, 2021
Backup #31 — Incremental backup profile — Tuesday, February 2nd, 2021
Backup #30 — Incremental backup profile — Monday, February 2nd, 2021
Backup #29 — Full backup profile — Sunday, February 1st, 2021
Backup #28 — Incremental backup profile — Saturday, January 31st, 2021
Backup #27 — Incremental backup profile — Friday, January 30th, 2021 (DELETED due to quotas)
Backup #26 — Incremental backup profile — Thursday, January 29th, 2021 (DELETED due to quotas)
Backup #25 — Full backup profile — Wednesday, January 28th, 2021
Backup #24 — Incremental backup profile — Tuesday, January 27th, 2021 (DELETED due to quotas)
Backup #23 — Incremental backup profile — Monday, January 26th, 2021 (DELETED due to quotas)
Backup #22 — Full backup profile — Sunday, January 25th, 2021
Backup #21 — Incremental backup profile — Saturday, January 24th, 2021 (DELETED due to quotas)
Backup #20 — Incremental backup profile — Friday, January 23rd, 2021 (DELETED due to quotas)
Backup #19 — Incremental backup profile — Thursday, January 22nd, 2021 (DELETED due to quotas)
Backup #18 — Full backup profile — Wednesday, January 21st, 2021 (DELETED due to quotas)
 
Example 1. You want to restore the site to its state on January 24th
 
You can’t, because both the full site backups and the incremental backups from that date are deleted. At best, you could restore your site on its January 25th state.
 
Example 2. Restore the site to its state on January 25th
 
You only need to restore backup #22. It’s a full site backup profile.
 
Example 3. Restore the site to its state on January 26th
 
You can’t, because you only have full site backups for the 25th and 28th. The incremental backups in between were deleted due to quota settings (you only keep a week's worth of incremental backups). So, you need to only restore your full site backup from the 25th or the 28th; your choice.
 
Example 4. Restore the site to its state on January 31st
 
January 31st’s backup is incremental. Go back the backup list and find its immediately previous full site backup. It’s backup #25 taken on the 28th of January. Therefore you need to restore the following backups in this order:
  • #25 from January 28th
  • #26 from January 29th
  • #27 from January 30th
  • #28 from January 31st
 
Example 5. Restore the site to its last known good state i.e. February 5th
 
February 5th’s backup (#34) is an incremental backup. Go back the backup list and find its immediately previous full site backup. It’s backup #32 taken on the 3rd of February. Therefore you need to restore the following backups in this order:
  • #32 from February 3rd
  • #33 from February 4th
  • #34 from February 5th
 
Finally note that you can test your backups without touching your live site. Set up a local server e.g. with MAMP, XAMPP, WAMPserver or something similar. Download Kickstart Core (don’t use Pro, it’s only meant for specific use cases which have to do with downloading files from a different server or Amazon S3 and is harder to use) from our site and extract the ZIP file. Copy kickstart.php to your local site’s root. Download the backup archives from BackBlaze B2, the same backup archives you’d need to restore your site per the documentation, what Davide explained and my examples. Restore your backups one at a time on your local server. We do that all the time with our own sites. We never work changes on our live sites. We test everything on a local copy first using a backup taken and restored with Akeeba Backup.
 
I hope this information helps. If you need clarifications you can ask Davide. So far he's given you nothing but accurate replies.

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!

System Task
system
This ticket has been automatically closed. All tickets which have been inactive for a long time are automatically closed. If you believe that this ticket was closed in error, please contact us.

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!