Data is the currency of today's web, mobile, social, enterprise and
cloud applications. Ensuring data is always available is a top
priority for any organization. Minutes of downtime can result in
significant loss of revenue and reputation.

There is no “one size fits all” approach to delivering
High Availability (HA). Unique application attributes, business
requirements, operational capabilities and legacy infrastructure can
all influence HA technology selection. And technology is only one
element in delivering HA: people and processes are just as critical
as the technology itself.

MySQL is deployed into many applications demanding availability and
scalability. Availability refers to
the ability to cope with, and if necessary recover from, failures on
the host, including failures of MySQL, the operating system, or the
hardware and maintenance activity that may otherwise cause downtime.
Scalability refers to the
ability to spread both the database and the load of your application
queries across multiple MySQL servers.

Because each application has different operational and availability
requirements, MySQL offers a range of certified and supported
solutions, delivering the appropriate levels of High Availability
(HA) and scalability to meet service level requirements. Such
solutions extend from replication, through virtualization and
geographically redundant, multi-data center solutions delivering
99.999% uptime.

Selecting the right high availability solution for an application
largely depends on:

Each architecture used to achieve highly available database services
is differentiated by the levels of uptime it offers. These
architectures can be grouped into three main categories:

Data Replication.

Clustered & Virtualized Systems.

Shared-Nothing, Geographically-Replicated Clusters.

As illustrated in the following figure, each of these architectures
offers progressively higher levels of uptime, which must be balanced
against potentially greater levels of cost and complexity that each
can incur. Simply deploying a high availability architecture is not
a guarantee of actually delivering HA. In fact, a poorly implemented
and maintained shared-nothing cluster could easily deliver lower
levels of availability than a simple data replication solution.

Figure 16.1 Tradeoffs: Cost and Complexity versus Availability

The following table compares the HA and Scalability capabilities of
the various MySQL solutions: