We’re pretty obsessive about our backup plan. We hate lost data! As they say, it’s not if a hard drive will fail, it’s when. We’ve got a fairly sizable stack of dead hard drives that has built up over our many years of web serving to prove that hard drives die on a regular basis. Sometimes entire servers do. If you’re wise, you plan for it.
We do an incremental backup every day to separate hard drives, so if the live one fails we can quickly switch to the backup and lose less than a day’s worth of changes. On most servers, there are separate backups for each day of the week.
We make a separate archive copy of all the web, database, mailing list, and similar hosted data once a week, and store it locally for fast recovery if needed and on an off-site server in the event that the local copies aren’t available due to some larger catastrophe.
We retain a copy of the weekly archives for at least a month. The archive nearest the beginning of each month is retained for a full year.
When we build a site using a content management system which has the ability (ie, most of the good ones), we automatically email a backup of the database to an offsite repository once a week.
And despite all the above, we still strongly suggest that you (and/or your web developer) keep an up-to-date copy of all your data in the event catastrophe should strike.