As I’m sure most people are all too well aware, SharePoint doesn’t backup sites when they are deleted. Due to this fact, a problem that often arises is that you will accidentally delete a site with no way to get it back except to restore your entire SharePoint content database from backup. This is all dandy, except it also overwrites any changes that have been made on any of your other sites.
To fix this problem, an add-on to SharePoint has been released called Microsoft IT Site Delete Capture Feature 1.0. It can be downloaded here for free. This is great if you only want to prevent accidental site deletion, but what if a particular site gets corrupted somehow? You won’t have a backup of it because it wasn’t deleted and you can’t restore just a site from a SQL backup job.
This leads to the second option. AvePoint DocAve is a very powerful SharePoint backup tool. However, this product comes with a price tag of several thousand dollars. It also has many great features not available anywhere else. It will not only allow you to backup and restore at the site level, but will allow you to do a backup and restore down to the item level. It also allows you to easily set several different backup schedules to backup various parts of your SharePoint installation at different times. This is the Cadillac of SharePoint backups and if you can afford the price-tag, a product I would highly recommend.
The third option is a solution which I wrote using PowerShell. It also makes use of PowerShell Community Extensions. Both of these must be installed on the server to run the backup. The backup script can be downloaded from here. The script will recursive crawl through a specified URL and backup all the individual sites, bundle them up into a date stamped zip file and move it to a location specified in the script. You can set this script to run as a schedule job in windows to regularly backup all your SharePoint sites. The disadvantage to this approach is that you get some replication causing large file sizes as the top level sites also include the content from all the sites under them. The instructions for setting up the script are in comments at the beginning of the script. If you request further details let me know and I’ll post additional information.