<div id="docs-body">
 <div class="chapter">
  <div class="titlepage">
   <div>
    <div>
     <h1 class="title">
      <a name="group-replication">
      </a>
      Chapter 20 Group Replication
     </h1>
    </div>
   </div>
  </div>
  <div class="toc">
   <p>
    <b>
     Table of Contents
    </b>
   </p>
   <dl class="toc">
    <dt>
     <span class="section">
      <a href="group-replication-background.html">
       20.1 Group Replication Background
      </a>
     </span>
    </dt>
    <dd>
     <dl>
      <dt>
       <span class="section">
        <a href="group-replication-replication-technologies.html">
         20.1.1 Replication Technologies
        </a>
       </span>
      </dt>
      <dt>
       <span class="section">
        <a href="group-replication-use-cases.html">
         20.1.2 Group Replication Use Cases
        </a>
       </span>
      </dt>
      <dt>
       <span class="section">
        <a href="group-replication-deploying-in-multi-primary-or-single-primary-mode.html">
         20.1.3 Multi-Primary and Single-Primary Modes
        </a>
       </span>
      </dt>
      <dt>
       <span class="section">
        <a href="group-replication-details.html">
         20.1.4 Group Replication Services
        </a>
       </span>
      </dt>
      <dt>
       <span class="section">
        <a href="group-replication-plugin-architecture.html">
         20.1.5 Group Replication Plugin Architecture
        </a>
       </span>
      </dt>
     </dl>
    </dd>
    <dt>
     <span class="section">
      <a href="group-replication-getting-started.html">
       20.2 Getting Started
      </a>
     </span>
    </dt>
    <dd>
     <dl>
      <dt>
       <span class="section">
        <a href="group-replication-deploying-in-single-primary-mode.html">
         20.2.1 Deploying Group Replication in Single-Primary Mode
        </a>
       </span>
      </dt>
      <dt>
       <span class="section">
        <a href="group-replication-deploying-locally.html">
         20.2.2 Deploying Group Replication Locally
        </a>
       </span>
      </dt>
     </dl>
    </dd>
    <dt>
     <span class="section">
      <a href="group-replication-requirements-and-limitations.html">
       20.3 Requirements and Limitations
      </a>
     </span>
    </dt>
    <dd>
     <dl>
      <dt>
       <span class="section">
        <a href="group-replication-requirements.html">
         20.3.1 Group Replication Requirements
        </a>
       </span>
      </dt>
      <dt>
       <span class="section">
        <a href="group-replication-limitations.html">
         20.3.2 Group Replication Limitations
        </a>
       </span>
      </dt>
     </dl>
    </dd>
    <dt>
     <span class="section">
      <a href="group-replication-monitoring.html">
       20.4 Monitoring Group Replication
      </a>
     </span>
    </dt>
    <dd>
     <dl>
      <dt>
       <span class="section">
        <a href="group-replication-gtids.html">
         20.4.1 GTIDs and Group Replication
        </a>
       </span>
      </dt>
      <dt>
       <span class="section">
        <a href="group-replication-server-states.html">
         20.4.2 Group Replication Server States
        </a>
       </span>
      </dt>
      <dt>
       <span class="section">
        <a href="group-replication-replication-group-members.html">
         20.4.3 The replication_group_members Table
        </a>
       </span>
      </dt>
      <dt>
       <span class="section">
        <a href="group-replication-replication-group-member-stats.html">
         20.4.4 The replication_group_member_stats Table
        </a>
       </span>
      </dt>
     </dl>
    </dd>
    <dt>
     <span class="section">
      <a href="group-replication-operations.html">
       20.5 Group Replication Operations
      </a>
     </span>
    </dt>
    <dd>
     <dl>
      <dt>
       <span class="section">
        <a href="group-replication-configuring-online-group.html">
         20.5.1 Configuring an Online Group
        </a>
       </span>
      </dt>
      <dt>
       <span class="section">
        <a href="group-replication-restarting-group.html">
         20.5.2 Restarting a Group
        </a>
       </span>
      </dt>
      <dt>
       <span class="section">
        <a href="group-replication-consistency-guarantees.html">
         20.5.3 Transaction Consistency Guarantees
        </a>
       </span>
      </dt>
      <dt>
       <span class="section">
        <a href="group-replication-distributed-recovery.html">
         20.5.4 Distributed Recovery
        </a>
       </span>
      </dt>
      <dt>
       <span class="section">
        <a href="group-replication-ipv6.html">
         20.5.5 Support For IPv6 And For Mixed IPv6 And IPv4 Groups
        </a>
       </span>
      </dt>
      <dt>
       <span class="section">
        <a href="group-replication-enterprise-backup.html">
         20.5.6 Using MySQL Enterprise Backup with Group Replication
        </a>
       </span>
      </dt>
     </dl>
    </dd>
    <dt>
     <span class="section">
      <a href="group-replication-security.html">
       20.6 Group Replication Security
      </a>
     </span>
    </dt>
    <dd>
     <dl>
      <dt>
       <span class="section">
        <a href="group-replication-connection-security.html">
         20.6.1 Communication Stack for Connection Security Management
        </a>
       </span>
      </dt>
      <dt>
       <span class="section">
        <a href="group-replication-secure-socket-layer-support-ssl.html">
         20.6.2 Securing Group Communication Connections with Secure Socket Layer (SSL)
        </a>
       </span>
      </dt>
      <dt>
       <span class="section">
        <a href="group-replication-distributed-recovery-securing.html">
         20.6.3 Securing Distributed Recovery Connections
        </a>
       </span>
      </dt>
      <dt>
       <span class="section">
        <a href="group-replication-ip-address-permissions.html">
         20.6.4 Group Replication IP Address Permissions
        </a>
       </span>
      </dt>
     </dl>
    </dd>
    <dt>
     <span class="section">
      <a href="group-replication-performance.html">
       20.7 Group Replication Performance and Troubleshooting
      </a>
     </span>
    </dt>
    <dd>
     <dl>
      <dt>
       <span class="section">
        <a href="group-replication-fine-tuning-the-group-communication-thread.html">
         20.7.1 Fine Tuning the Group Communication Thread
        </a>
       </span>
      </dt>
      <dt>
       <span class="section">
        <a href="group-replication-flow-control.html">
         20.7.2 Flow Control
        </a>
       </span>
      </dt>
      <dt>
       <span class="section">
        <a href="group-replication-single-consensus-leader.html">
         20.7.3 Single Consensus Leader
        </a>
       </span>
      </dt>
      <dt>
       <span class="section">
        <a href="group-replication-message-compression.html">
         20.7.4 Message Compression
        </a>
       </span>
      </dt>
      <dt>
       <span class="section">
        <a href="group-replication-performance-message-fragmentation.html">
         20.7.5 Message Fragmentation
        </a>
       </span>
      </dt>
      <dt>
       <span class="section">
        <a href="group-replication-performance-xcom-cache.html">
         20.7.6 XCom Cache Management
        </a>
       </span>
      </dt>
      <dt>
       <span class="section">
        <a href="group-replication-responses-failure.html">
         20.7.7 Responses to Failure Detection and Network Partitioning
        </a>
       </span>
      </dt>
      <dt>
       <span class="section">
        <a href="group-replication-network-partitioning.html">
         20.7.8 Handling a Network Partition and Loss of Quorum
        </a>
       </span>
      </dt>
      <dt>
       <span class="section">
        <a href="mysql-gr-memory-monitoring-ps-instruments.html">
         20.7.9 Monitoring Group Replication Memory Usage with Performance Schema Memory
Instrumentation
        </a>
       </span>
      </dt>
     </dl>
    </dd>
    <dt>
     <span class="section">
      <a href="group-replication-upgrade.html">
       20.8 Upgrading Group Replication
      </a>
     </span>
    </dt>
    <dd>
     <dl>
      <dt>
       <span class="section">
        <a href="group-replication-online-upgrade-combining-versions.html">
         20.8.1 Combining Different Member Versions in a Group
        </a>
       </span>
      </dt>
      <dt>
       <span class="section">
        <a href="group-replication-offline-upgrade.html">
         20.8.2 Group Replication Offline Upgrade
        </a>
       </span>
      </dt>
      <dt>
       <span class="section">
        <a href="group-replication-online-upgrade.html">
         20.8.3 Group Replication Online Upgrade
        </a>
       </span>
      </dt>
     </dl>
    </dd>
    <dt>
     <span class="section">
      <a href="group-replication-options.html">
       20.9 Group Replication Variables
      </a>
     </span>
    </dt>
    <dd>
     <dl>
      <dt>
       <span class="section">
        <a href="group-replication-system-variables.html">
         20.9.1 Group Replication System Variables
        </a>
       </span>
      </dt>
      <dt>
       <span class="section">
        <a href="group-replication-status-variables.html">
         20.9.2 Group Replication Status Variables
        </a>
       </span>
      </dt>
     </dl>
    </dd>
    <dt>
     <span class="section">
      <a href="group-replication-frequently-asked-questions.html">
       20.10 Frequently Asked Questions
      </a>
     </span>
    </dt>
   </dl>
  </div>
  <a class="indexterm" name="idm46045134619568">
  </a>
  <a class="indexterm" name="idm46045134618496">
  </a>
  <p>
   This chapter explains Group Replication in MySQL 8.4,
    and how to install, configure and monitor groups. MySQL Group
    Replication enables you to create elastic, highly-available,
    fault-tolerant replication topologies.
  </p>
  <p>
   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.
  </p>
  <p>
   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.
  </p>
  <p>
   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
   <a class="ulink" href="/doc/mysql-router/8.4/en/" target="_top">
    MySQL Router 8.4
   </a>
   .
  </p>
  <p>
   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.
  </p>
  <div class="tip" style="margin-left: 0.5in; margin-right: 0.5in;">
   <div class="admon-title">
    Tip
   </div>
   <p>
    To deploy multiple instances of MySQL, you can use
    <a class="ulink" href="/doc/mysql-shell/8.4/en/mysql-innodb-cluster.html" target="_top">
     InnoDB Cluster
    </a>
    which enables you to easily administer a group of MySQL server instances in
    <a class="ulink" href="/doc/mysql-shell/8.4/en/" target="_top">
     MySQL Shell
    </a>
    . 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
    <a class="ulink" href="/doc/mysql-router/8.4/en/" target="_top">
     MySQL Router
    </a>
    , 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
    <a class="ulink" href="/doc/mysql-shell/8.4/en/mysql-innodb-replicaset.html" target="_top">
     InnoDB ReplicaSet
    </a>
    . Installation instructions for MySQL Shell can be found
    <a class="ulink" href="/doc/mysql-shell/8.4/en/mysql-shell-install.html" target="_top">
     here
    </a>
    .
   </p>
  </div>
  <p>
   The chapter is structured as follows:
  </p>
  <div class="itemizedlist">
   <ul class="itemizedlist" style="list-style-type: disc; ">
    <li class="listitem">
     <p>
      <a class="xref" href="group-replication-background.html" title="20.1 Group Replication Background">
       Section 20.1, “Group Replication Background”
      </a>
      provides an
        introduction to groups and how Group Replication works.
     </p>
    </li>
    <li class="listitem">
     <p>
      <a class="xref" href="group-replication-getting-started.html" title="20.2 Getting Started">
       Section 20.2, “Getting Started”
      </a>
      explains how
        to configure multiple MySQL Server instances to create a group.
     </p>
    </li>
    <li class="listitem">
     <p>
      <a class="xref" href="group-replication-requirements-and-limitations.html" title="20.3 Requirements and Limitations">
       Section 20.3, “Requirements and Limitations”
      </a>
      explains architecture and setup requirements and limitations for
        Group Replication.
     </p>
    </li>
    <li class="listitem">
     <p>
      <a class="xref" href="group-replication-monitoring.html" title="20.4 Monitoring Group Replication">
       Section 20.4, “Monitoring Group Replication”
      </a>
      explains how to
        monitor a group.
     </p>
    </li>
    <li class="listitem">
     <p>
      <a class="xref" href="group-replication-operations.html" title="20.5 Group Replication Operations">
       Section 20.5, “Group Replication Operations”
      </a>
      explains how to
        work with a group.
     </p>
    </li>
    <li class="listitem">
     <p>
      <a class="xref" href="group-replication-security.html" title="20.6 Group Replication Security">
       Section 20.6, “Group Replication Security”
      </a>
      explains how to
        secure a group.
     </p>
    </li>
    <li class="listitem">
     <p>
      <a class="xref" href="group-replication-performance.html" title="20.7 Group Replication Performance and Troubleshooting">
       Section 20.7, “Group Replication Performance and Troubleshooting”
      </a>
      explains how to
        fine tune performance for a group.
     </p>
    </li>
    <li class="listitem">
     <p>
      <a class="xref" href="group-replication-upgrade.html" title="20.8 Upgrading Group Replication">
       Section 20.8, “Upgrading Group Replication”
      </a>
      explains how to
        upgrade a group.
     </p>
    </li>
    <li class="listitem">
     <p>
      <a class="xref" href="group-replication-options.html" title="20.9 Group Replication Variables">
       Section 20.9, “Group Replication Variables”
      </a>
      is a reference for
        the system variables specific to Group Replication.
     </p>
    </li>
    <li class="listitem">
     <p>
      <a class="xref" href="group-replication-frequently-asked-questions.html" title="20.10 Frequently Asked Questions">
       Section 20.10, “Frequently Asked Questions”
      </a>
      provides answers to some technical questions about deploying and
        operating Group Replication.
     </p>
    </li>
   </ul>
  </div>
 </div>
 <br/>
</div>
