A majority of the time when working with a business there is a strong focus on keeping things working, and leaving working items as they are. However, when it comes to ensuring that business can continue as usual it is important to make sure that not only you have processes in place for backups, but backups alone are not going to do everything for you. It is important to test/validate the backups and also to ensure that you are taking backups at all times that are necessary. Below we will discuss our stance on these two topics.
Once you have taken a backup of a DotNetNuke installation it is important to test the backups on a regular basis to ensure that you truly have a full backup. I have documented the process to backup a DNN site in a previous blog posting and following this process should result in a valid backup, but do you really want to trust it just because of a blog posting that you found documenting the process?
I hope not, it is important to test your backups and validate that if needed in an emergency situation you can restore the site to a previous version. I recommend doing this at least once when setting up a regular backup process and at least once before each major upgrade, to be sure that at critical times you have the data you need.
The process of testing a backup is very simple, you can follow our tutorial for Restoring a DotNetNuke installation that will walk you through the process, it is fairly similar to that of a clean installation, except that you are working with existing database and website files. We recommend when working with the restore process that you restore to a DIFFERENT server than the one that is used to typically host the website, this typically results in a better test scenario.
When to Backup
Now that you have validated your backup, the more important question is when should you backup your site? Most people get the common recommendation of a regular backup either daily or weekly depending on the nature of the site that you are running, or more frequently if it is a mission critical site.
However, are you backing up your site before you install a module? Before you do an upgrade? Before you install a new skin? If you cannot say "Yes" to the previous three statements you are taking a big gamble with your DotNetNuke installation. Yes DotNetNuke makes it easy for you to never work with the site on the server side, but every module installation, every skin installation and upgrades to the core are ALWAYS risky operations. You are working with an application, third-party module code and a number of other variables. Even the best module developers can have packages that cause problems on installation.
If you install a module and it doesn't work, or if that module causes issues with other parts of the application, a backup of the site is your fastest way out. SO be sure to remember to take those backups before you work with your site anytime you are introducing new .NET code.
Yes, this process results in a lot of extra work when everything works as expected, but that one in a thousand time when you get a major error your work will pay off!