Backup Development and Production Data – Web Disaster Recovery Plans

I have recently, not through choice, left the banking sector to become a full time, self employed web developer / content manager. I mentioned on that I did not have a back up policy in place, and one of Cre8asiteforums’ mods, Iamlost, provided an excellent suggestion / explanation of the various back up options. Here it is:

You mentioned that you have tens of websites. And that you do not have a backup methodology. I believe you can see the catastrophic potential in those two sentences. I would point a whole litany of likely other problematic issues but those can wait for subsequent threads.

A webdev has two points needing backup: the production site (typically a web server) and the development site (typically on your home computer). The loss of a production site loses your revenue, similar to closing a B&M store. The loss of a development site loses planned alterations – wasted time and effort.

Whether and how you decide to backup either or both is personal choice. There are a number of methodology, hardware and software choices. Given your lack of techie knowledge I would suggest you start by developing and becoming familiar with backing up your own computer (your development computer). If you also hold a current copy of your live site(s) on that home computer then they too are backed up if your host(s) go(es) down. A 2-fer sale.

Note: at a later date you may want to investigate versioning.

There are two basic approaches to backups:

  1. full backup plus differential backups.
  2. full backup plus incremental backups.

A full backup is similar to a full inventory. Everything is backed up as of that point. Differential and incremental backups only backup the changes since the last full backup. Thus they are much faster and take much less room.

Each differential backup backs up back to the full backup point. Example: Full BU on Sunday, DBU on Monday backs up all changes since Sunday, DBU on Tuesday also backs up all changes since Sunday duplicating Mondays DBU and adding Tuesdays, and so on.

The first incremental backup backups up back to the full backup point but each subsequent IBU only backs up to prior IBU.

Thus if using full backup plus differential backups restoring involves two steps – first the last full backup and then the latest DBU. If using full backup plus incremental backups restoring involves 2n steps – first the last full backup and then each subsequent IBU in turn.

Often the reason for choosing between DBU or IBU is the frequency of backups.

Just to confuse you when you thought it was straightforward there are a whole suite of variations of those basics: synthetic full backup, multilevel incremental…

Fortunately there is plenty of software to choose from. Do your due diligence and then follow the directions. Wikipedia has a list – caveat emptor.

What I would recommend as basic best practice for development system is a full backup weekly with hourly incremental backups. That way the most you lose is an hours work. Granted the closer to week’s end a disaster the more SBU’s to cycle through but with most software that is automatic.

Further I would suggest backing up to a remote hard disk drive that can be removed and placed in a Faraday case in a fire rated safe or document chest when not working. Plus keeping a thumb drive with full backup and daily IBU copies that go home with you if working in an office.

Lots of personal choice and risk assessment opportunities when working for yourself.

This post has been edited by iamlost: 25th July 2009, 02:38 PM

DazzinDonna responded with a few gems:

1. Never ever rely on your host for backups. If your host gets mad at you and decides to dump you as a client, you’re toast. Yes, this happens. Many other things can go wrong as well, but that’s just an example.

2. Always have multiple backups. One at home, one in the clouds.

3. If your sites have any user generated content, you may want to back up the databases more frequently than once a day. But once a day is bare minimum. AT LEAST do that much.

No doubt there will be further discussion on this, so check this thread: Backup For Peace Of Mind, Both Development and Production data

Automating backups is essential wherever possible, as the chances are if something goes wrong, that will be the day that you forgot / were too busy / went on holiday and do not have a backup available.

If on a shared server, then look at options for creating backups direct from your CMS (WordPress and Drupal for example have backup options). Also, as DazzilDonna suggests, make regular backups from the control panel of your webhost. If your host goes out of business then you may be in trouble if you rely on their backups. If you are running a simple site which has no user added content, and you make few updates, then the sensible option is to just backup whenever you make some changes. Many sites do not change from one week to the next. However, if you are running a blog, community, forum etc. then daily backups are essential.

The internet in unfortunately not a secure place, and viruses, Trojans, scams and phishers, fires and floods are all too common these days. And yes, I have once experienced major server downtime due to flooding! Not during my time in web development, but in banking! But if there was one thing that working in banking for over a decade taught me, it was to have a DRP – Disaster Recovery Plan.

Leave a Reply

Your email address will not be published. Required fields are marked *