Database solutions serve many purposes, including supporting essential, even critical, processes. Whether the consequences of data errors or problems are dire — or merely inconvenient — designing your solutions to be as robust as possible is beneficial. In many cases, additional cost or effort to make your solution resistant to failure and improve the ability to recover from a variety of errors is more than justified.
Fortunately, you can take many steps to safeguard your solution's data, improve user accountability, avert mishap, and recover from calamity. In this chapter, I gather together a number of techniques and options you can use to strengthen your solution's defenses against a variety of potential hazards.
Systems fail for any number of reasons — usually, they're the reasons you didn't consider, because otherwise you'd have taken preventive measures. The circumstances that cause your system most harm, therefore, will be the problems you didn't anticipate.
Although you can't anticipate every possible error or mishap, you can be confident that sooner or later something will crop up. Luckily, you can take steps to ensure that when ...