MySQL Enterprise High Availability
MySQL InnoDB Cluster delivers an integrated, native, HA solution for your databases. MySQL InnoDB Cluster consists of:
- MySQL Servers with Group Replication to replicate data to all members of the cluster while providing fault tolerance, automated failover, and elasticity.
- MySQL Router to ensure client requests are load balanced and routed to the correct servers in case of any database failures.
- MySQL Shell to create and administer InnoDB Clusters using the built-in AdminAPI.
Integrated & Easy to Use
MySQL InnoDB Cluster tightly integrates MySQL Server with Group Replication, MySQL Router, and MySQL Shell, so you don't have to rely on external tools, scripts or other components. Plus, it leverages proven MySQL features including InnoDB, GTIDs, binary logs, multi-threaded replication, multi-source replication and Performance Schema. A MySQL InnoDB Cluster can be set up in less than five minutes and managed using the scriptable AdminAPI in the MySQL Shell.
HA for MySQL Servers Using Group Replication
Group Replication provides native high availability with built-in group membership management, data consistency guarantees, conflict detection and handling, node failure detection and database failover related operations, all without the need for manual intervention or custom tooling.
Group Replication implements both a single-primary mode with automatic leader election and a multi-primary update everywhere mode. By using a powerful new group communication system, which provides an in-house implementation of the popular Paxos algorithm, the group automatically coordinates on data replication, consistency, and membership. This provides all of the built-in mechanisms necessary for making your MySQL databases highly available.
With Group Replication, a set of servers coordinate together to form a group. The group membership is dynamic and servers can leave, either voluntarily or involuntarily, and join at any time. The group will automatically reconfigure itself as needed and ensure that any joining member is synchronized with the group. This makes it easy to quickly scale your total database capacity up and down as needed.
Group Replication implements a distributed failure detector to find and report servers that have failed or are no longer participating in the group and the remaining members in the group coordinate to reconfigure the membership.
Group Replication builds on an in-house implementation of the popular Paxos distributed algorithm to provide distributed coordination between servers. In order for a group to continue to function, it requires a majority of the members to be online and for them to form an agreement on every change. This allows your MySQL databases to safely continue operating without manual intervention when failures occur, without the risk of data loss or data corruption.
If a server joins the group, it will automatically bring itself up to date by synchronizing its state from an existing member. In the event that a server leaves the group, for instance it was taken down for maintenance, the remaining servers will see that it has left and will reconfigure the group automatically. When that server later rejoins the group, it will automatically re-synchronize with the group again.
MySQL Enterprise Monitor 3.4 and later has full support for Group Replication; monitoring the configuration, health, and performance of each node and the group/cluster as a whole, providing best practice advice and alerts, along with easy to understand visual tools that allow you to easily monitor and manage all of your Group Replication and InnoDB clusters.
HA for MySQL Client Applications using MySQL Router
MySQL Router allows you to easily migrate your standalone MySQL instances to natively distributed and highly available InnoDB clusters without affecting existing applications. The new metadata_cache plugin provides transparent client connection routing, load balancing, and failover into your InnoDB clusters.
Easy and Accessible using MySQL Shell
MySQL Shell provides a single intuitive, flexible, and powerful interface for all MySQL related tasks. The new AdminAPI makes it easy to create, monitor, and manage InnoDB clusters - including MySQL Router instances - in a self describing natural language interface, without the need to understand low level concepts, configuration options, or other complex aspects. MySQL Shell makes InnoDB clusters easy and accessible for everyone.