High availability implies little to no downtime. Downtime results from security breaches, lack of scalability or failure (hardware or software). To achieve high availability you must manage all three characteristics for each layer in the Internet Delivery Stack.
One area of real challenge to this is the Database Layer. This article explains a bit why…
Traditional attempts at High Availability involve replicating information to secondary equipment or locations to be used in the case of failure to the production environment.
This replication though represents significant challenges when it comes to the the database layer of the stack. Because databases often change rapidly and require immediate response, it’s difficult (i.e. expensive) to replicate the data to secondary hardware or to another physical building.
Enterprise SQL servers (such as from Oracle and Microsoft) provide tools to accomplish replication. This expensive and complex software can allow a collection of physical database servers, even in separate locations, to appear as one large database to the application.
If you’re looking for a high-availablity environment make sure you invest properly at each layer in the stack. A highly scalable network doesn’t help high-availibility if your database server is prone to a single hardware failure.