Backup restore testing routine?

Hi,

After my (former) webhost managed to fry both the a webserver and the backup server, I never took backups for granted. So I am happy with all the backup features on Virtualmin! I made sure they are downloaded daily and not only stay on the server.

However, please advice me about this. What is a smart way to test these backups? I cannot just restore them because all data in between backup and restore will be lost.

Do I need a second test server for this? Or is there another smart way to test your backups from time to time? Looking forward to some ideas from experienced users on this subject.

This is something that is one of those discussions that all companies and institutions debate with regularity and ultimately comes down to the “Disaster Recovery Plan” — you have one don’t you?

It starts with the question "how critical - to the world - is the data you have control over?

I would guess that probably for most of us it is well below what we might like to believe and well above our pay grade to worry about.

Hi Stegan,

Thanks for your input. The data is not extreme important, but if it is lost it will take me a tremendous work to rebuild it.

But it is more practical. I have not done a restore in Virtualmin yet (other controlpanels yes). So far I assume that the backups will run fine when I needed them. But to test it is better right?

Therefor I was wondering, what would be a good way to do this. At this moment I lean towards the idea to just import them on a different Virtualmin server, change the domain in my local DNS to that server and then see if everything is working correctly. And after that remove that Virtual Server again.

But since I’m new into Virtualmin, I thought maybe experienced members here got a got strategy for this on a single server. But if not, I will just go for the second testing server.

if you are talking about the files you have downloaded from you server and they are in gz format try

gzip -t -v domain.com.tar.gz

replace domain.com with the actual file name, this assumes gzip is available on your machine, but zip does the same & so does bz2

Thank jmir1, it results in OK. So that is at least a first check, to see if the files are zipped correctly.

I have done a restore from backup quite a few times. Just like implementing a new package that will (or be likely to cause a reboot) I usually wait until requests on the VS website are “out of hours” then do the restore.

It is not perfect - it is only as good as the last backup state (most of our sites use NodeJS with MongoDB that is external so I only have to worry about Virtualmin MariaDB.) I don’t have any critical WP sites or any PHP to worry about.

But putting down a “Recovery Plan” is the first step. What will be affected and why. along with steps to mitigate. It may end up being just a few lines but helps to reassure yourself (and maybe others) that at least it was given some careful thought.

1 Like

Alright, I went for the restore option on a second sever. Same OS, almost exactly the same Virtualmin settings.

After the restore operation, which went very smooth, I setup a manual ‘DNS change’. In windows this is done in the C:\Windows\System32\drivers\etc\hosts file, add a line like: 123.123.123.124 thewebsite.com

Now I can surf the website and check if everything is working fine.

Stegan, you recommend a backup plan. This is mine, simple but should be effective.

  • Daily backup of all virtual servers
  • 4 times a day backup of DB’s only (since this just takes a minute)
  • Daily download of backups to local, stored by day so I can go back every day of the week.
  • Backups stored local once a month too, so we can go back a little further if needed, but not too much space needed.
  • Backups duplicated to NAS automatic
  • Once a month or so, I do this extra test of restoring a website on a second server

I think I will never need it, but in case I do, thinks will be up and running fast. Give me some peace of mind. And since it is all automated, it only takes me the restore and check work once a month. Maybe 15 minutes.

Looks pretty good to me. I would only add to the “once a month” - Review and revise the plan. I am not so happy about “local” it needs a definition my “local” are on a cloud backup (often provided by the box provider (eg DO, Linode, etc)) these are in addition to my really local - the Virtualmin backups and could be better described as “image” backups.

1 Like