High availability strategies

It does not matter to a user why his or her database request failed. Whether a transaction timed out because of bad performance, or a component of the solution failed, or an administrator has taken the database offline to perform maintenance, the result is the same to the user. The database is unavailable to process requests.

Strategies for improving the availability of your database solution include:

Redundancy
Having secondary copies of each component of your solution that can take over workload in the event of failure.
System monitoring
Collecting statistics about the components of your solution to facilitate workload balancing or detecting that components have failed.
Load balancing
Transferring some workload from an overloaded component of your solution to another component of your solution that has a lighter load.
Failover
Transferring all workload from a failed component of your solution to a secondary component.
Maximizing performance
Reducing the chance that transactions take a very long time to complete or time out.
Minimizing the impact of maintenance
Scheduling automated maintenance activities and manual maintenance activities so as to impact user applications as little as possible.