In less than five minutes you can configure a cluster of highly available MySQL Database servers with data consistency, built-in data conflict handling, node failure detection and automatic failover operations - with no manual intervention or custom tools.
MySQL 8.0 Enterprise High Availability is a bit unique from the other features of MySQL 8.0 Enterprise Edition in the sense that it is not a unique product unto itself. In other words, there's no plugin or component that gives you a different form of high availability. However, when using all of the components together, you achieve enterprise high availability with the product.
Note: The focus on this article will be on high availability and clustering using the InnoDB cluster, which is required for enterprise-level high availability. We will not discuss MySQL NDB storage engine, a distributed database that requires the MySQL 8.0 Cluster CGE license and a separate install altogether.
Let's take a look at how it works.
Replication and Group Replication
Replication is the process of taking data from one server (the "master") and copying the data to one or more servers (the "slaves"). Replication is asynchronous and doesn't require continuous uptime for the replicas. MySQL Community, Standard and Enterprise support two replication types:
- semisynchronous replication, where the master confirms the commit on at least one replica in a write operation
- delayed replication, where replicas deliberately lag behind a master by a specified period of time
Synchronous replication is only available through MySQL NDB Cluster in the MySQL 8.0 Cluster GCE license.
Group replication is a shared-nothing multi-master, update-everywhere replication scheme where each server has its own copy of the data, and servers communicate to each other through message passing in its own communication layer. In this configuration, read-only transactions occur independently, but read-write operations commit only after being approved by all members of the group. Group replication provides a highly available, highly elastic, dependable MySQL service.
MySQL Router is a fundamental component of a highly available MySQL Enterprise cluster, acting as a connection proxy to your cluster environment. MySQL 8.0 Router can connect to MySQL 5.x and MySQL 8.0 database servers, and customers can configure round-robin or availability strategies for data access. MySQL 8.0 Router is self-configuring on startup, providing for seamless operation.
MySQL Enterprise Monitor
MySQL 8.0 Enterprise Monitor comes with a Replication Dashboard that shows you the topology of your highly available MySQL cluster. Enterprise Monitor takes a deep dive into replication status on each monitored server and shows you the statuses of your nodes, logs, and group overall - a good list of information provided can be found here.
MySQL Enterprise High Availability
To summarize, the difference between high availability and replication between Community and Enterprise is the fact that Enterprise gives you hot backups, Enterprise Monitor for keeping an eye on things, Audit and other features. In other words, Enterprise High Availability isn't a product - it's a feature!
Looking for more information on how to set up a highly available MySQL instance? Have questions about using the NDB data engine? Reach out with your questions and we'll help you sort them out!