MySQL Shell 8.0 (part of MySQL 8.0)
The AdminAPI includes support for InnoDB ReplicaSet, that
enables you to administer a set of MySQL instances running
asynchronous GTID-based replication in a similar way to
InnoDB Cluster. An InnoDB ReplicaSet consists of a single
primary and multiple secondaries (traditionally referred to as
the MySQL replication source and replicas). You administer your
ReplicaSets using a ReplicaSet
object and the
AdminAPI operations, for example to check the status of the
InnoDB ReplicaSet, and manually failover to a new primary in
the event of a failure. Similar to InnoDB Cluster, MySQL Router
supports bootstrapping against InnoDB ReplicaSet, which means
you can automatically configure MySQL Router to use your
InnoDB ReplicaSet without having to manually configure it.
This makes InnoDB ReplicaSet a quick and easy way to get MySQL
replication and MySQL Router up and running, making it well suited
to scaling out reads, and provides manual failover capabilities
in use cases that do not require the high availability offered
by InnoDB Cluster.
In addition to deploying an InnoDB ReplicaSet using AdminAPI, you can adopt an existing replication setup. AdminAPI configures the InnoDB ReplicaSet based on the topology of the replication setup. Once the replication setup has been adopted, you administer it in the same way as an InnoDB ReplicaSet deployed from scratch. This enables you to take advantage of AdminAPI and MySQL Router without the need to create a new ReplicaSet. For more information see Section 6.3.4, “Adopting an Existing Replication Set Up”.
An InnoDB ReplicaSet has several limitations compared to an InnoDB Cluster and thus, it is recommended that you deploy InnoDB Cluster wherever possible. Generally, an InnoDB ReplicaSet on its own does not provide high availability. Among the limitations of InnoDB ReplicaSet are:
No automatic failover. In events where the primary becomes unavailable, a failover needs to be triggered manually using AdminAPI before any changes are possible again. However, secondary instances remain available for reads.
No protection from partial data loss due to an unexpected halt or unavailability. Transactions that have not yet been applied by the time of the halt could become lost.
No protection against inconsistencies after an unexpected exit or unavailability. If a failover promotes a secondary while the former primary is still available (for example due to a network partition), inconsistencies could be introduced because of the split-brain.
InnoDB ReplicaSet does not support a multi-primary mode. Data consistency cannot be guaranteed with classic replication topologies that allow writes in all members.
Read scale-out is limited because InnoDB ReplicaSet is based on asynchronous replication and therefore there is no possible tuning of flow control as there is with Group Replication.
All secondary members replicate from a single source. For some particular scenarios or use-cases, this might have an impact on the source. For example, lots of very small updates going on.