# Chapter 18 Group Replication

**Table of Contents**

[18.1 Group Replication Background](group-replication-background.html)
[18.1.1 Replication Technologies](group-replication-replication-technologies.html)
[18.1.2 Group Replication Use Cases](group-replication-use-cases.html)
[18.1.3 Multi-Primary and Single-Primary Modes](group-replication-deploying-in-multi-primary-or-single-primary-mode.html)
[18.1.4 Group Replication Services](group-replication-details.html)
[18.1.5 Group Replication Plugin Architecture](group-replication-plugin-architecture.html)
[18.2 Getting Started](group-replication-getting-started.html)
[18.2.1 Deploying Group Replication in Single-Primary Mode](group-replication-deploying-in-single-primary-mode.html)
[18.2.2 Deploying Group Replication Locally](group-replication-deploying-locally.html)
[18.3 Requirements and Limitations](group-replication-requirements-and-limitations.html)
[18.3.1 Group Replication Requirements](group-replication-requirements.html)
[18.3.2 Group Replication Limitations](group-replication-limitations.html)
[18.4 Monitoring Group Replication](group-replication-monitoring.html)
[18.4.1 GTIDs and Group Replication](group-replication-gtids.html)
[18.4.2 Group Replication Server States](group-replication-server-states.html)
[18.4.3 The replication\_group\_members Table](group-replication-replication-group-members.html)
[18.4.4 The replication\_group\_member\_stats Table](group-replication-replication-group-member-stats.html)
[18.5 Group Replication Operations](group-replication-operations.html)
[18.5.1 Configuring an Online Group](group-replication-configuring-online-group.html)
[18.5.2 Restarting a Group](group-replication-restarting-group.html)
[18.5.3 Transaction Consistency Guarantees](group-replication-consistency-guarantees.html)
[18.5.4 Distributed Recovery](group-replication-distributed-recovery.html)
[18.5.5 Support For IPv6 And For Mixed IPv6 And IPv4 Groups](group-replication-ipv6.html)
[18.5.6 Using MySQL Enterprise Backup with Group Replication](group-replication-enterprise-backup.html)
[18.6 Group Replication Security](group-replication-security.html)
[18.6.1 Methods for Connection Security Management](group-replication-connection-security.html)
[18.6.2 Securing Group Communication Connections with Secure Socket Layer (SSL)](group-replication-secure-socket-layer-support-ssl.html)
[18.6.3 Securing Distributed Recovery Connections](group-replication-distributed-recovery-securing.html)
[18.6.4 Group Replication IP Address Permissions](group-replication-ip-address-permissions.html)
[18.7 Group Replication Performance and Troubleshooting](group-replication-performance.html)
[18.7.1 Fine Tuning the Group Communication Thread](group-replication-fine-tuning-the-group-communication-thread.html)
[18.7.2 Flow Control](group-replication-flow-control.html)
[18.7.3 Single Consensus Leader](group-replication-single-consensus-leader.html)
[18.7.4 Message Compression](group-replication-message-compression.html)
[18.7.5 Message Fragmentation](group-replication-performance-message-fragmentation.html)
[18.7.6 XCom Cache Management](group-replication-performance-xcom-cache.html)
[18.7.7 Responses to Failure Detection and Network Partitioning](group-replication-responses-failure.html)
[18.7.8 Handling a Network Partition and Loss of Quorum](group-replication-network-partitioning.html)
[18.8 Upgrading Group Replication](group-replication-upgrade.html)
[18.8.1 Combining Different Member Versions in a Group](group-replication-online-upgrade-combining-versions.html)
[18.8.2 Group Replication Offline Upgrade](group-replication-offline-upgrade.html)
[18.8.3 Group Replication Online Upgrade](group-replication-online-upgrade.html)
[18.9 Group Replication System Variables](group-replication-options.html)
[18.10 Frequently Asked Questions](group-replication-frequently-asked-questions.html)

[]()[]()

 This chapter explains MySQL Group Replication and how to install, configure and monitor groups. MySQL Group Replication enables you to create elastic, highly-available, fault-tolerant replication topologies.

 Groups can operate in a single-primary mode with automatic primary election, where only one server accepts updates at a time. Alternatively, groups can be deployed in multi-primary mode, where all servers can accept updates, even if they are issued concurrently.

 There is a built-in group membership service that keeps the view of the group consistent and available for all servers at any given point in time. Servers can leave and join the group and the view is updated accordingly. Sometimes servers can leave the group unexpectedly, in which case the failure detection mechanism detects this and notifies the group that the view has changed. This is all automatic.

 Group Replication guarantees that the database service is continuously available. However, it is important to understand that if one of the group members becomes unavailable, the clients connected to that group member must be redirected, or failed over, to a different server in the group, using a connector, load balancer, router, or some form of middleware. Group Replication does not have an inbuilt method to do this. For example, see [MySQL Router 8.0](https://dev.mysql.com/doc/mysql-router/8.0/en/).

 Group Replication is provided as a plugin to MySQL Server. You can follow the instructions in this chapter to configure the plugin on each of the server instances that you want in the group, start up the group, and monitor and administer the group. An alternative way to deploy a group of MySQL server instances is by using InnoDB Cluster.

Tip

 To deploy multiple instances of MySQL, you can use [InnoDB Cluster](https://dev.mysql.com/doc/mysql-shell/8.0/en/mysql-innodb-cluster.html) which enables you to easily administer a group of MySQL server instances in [MySQL Shell](https://dev.mysql.com/doc/mysql-shell/8.0/en/). InnoDB Cluster wraps MySQL Group Replication in a programmatic environment that enables you easily deploy a cluster of MySQL instances to achieve high availability. In addition, InnoDB Cluster interfaces seamlessly with [MySQL Router](https://dev.mysql.com/doc/mysql-router/8.0/en/), which enables your applications to connect to the cluster without writing your own failover process. For similar use cases that do not require high availability, however, you can use [InnoDB ReplicaSet](https://dev.mysql.com/doc/mysql-shell/8.0/en/mysql-innodb-replicaset.html). Installation instructions for MySQL Shell can be found [here](https://dev.mysql.com/doc/mysql-shell/8.0/en/mysql-shell-install.html).

 The chapter is structured as follows:

* [Section 18.1, “Group Replication Background”](group-replication-background.html) provides an introduction to groups and how Group Replication works.

* [Section 18.2, “Getting Started”](group-replication-getting-started.html) explains how to configure multiple MySQL Server instances to create a group.

* [Section 18.3, “Requirements and Limitations”](group-replication-requirements-and-limitations.html) explains architecture and setup requirements and limitations for Group Replication.

* [Section 18.4, “Monitoring Group Replication”](group-replication-monitoring.html) explains how to monitor a group.

* [Section 18.5, “Group Replication Operations”](group-replication-operations.html) explains how to work with a group.

* [Section 18.6, “Group Replication Security”](group-replication-security.html) explains how to secure a group.

* [Section 18.7, “Group Replication Performance and Troubleshooting”](group-replication-performance.html) explains how to fine tune performance for a group.

* [Section 18.8, “Upgrading Group Replication”](group-replication-upgrade.html) explains how to upgrade a group.

* [Section 18.9, “Group Replication System Variables”](group-replication-options.html) is a reference for the system variables specific to Group Replication.

* [Section 18.10, “Frequently Asked Questions”](group-replication-frequently-asked-questions.html) provides answers to some technical questions about deploying and operating Group Replication.

