STOP GROUP_REPLICATION
Stops Group Replication. This statement requires the
GROUP_REPLICATION_ADMIN
privilege
(or the deprecated SUPER
privilege). As soon as you issue STOP
GROUP_REPLICATION
the member is set to
super_read_only=ON
,
which ensures that no writes can be made to the member while
Group Replication stops. Any other asynchronous replication
channels running on the member are also stopped. Any user
credentials that you specified in the START
GROUP_REPLICATION
statement when starting Group
Replication on this member are removed from memory, and must be
supplied when you start Group Replication again.
Use this statement with extreme caution because it removes the server instance from the group, meaning it is no longer protected by Group Replication's consistency guarantee mechanisms. To be completely safe, ensure that your applications can no longer connect to the instance before issuing this statement to avoid any chance of stale reads.
The STOP GROUP_REPLICATION
statement stops asynchronous replication channels on the group
member, but it does not implicitly commit transactions that are
in progress on them like STOP
REPLICA
does. This is because on a Group Replication
group member, an additional transaction committed during the
shutdown operation would leave the member inconsistent with the
group and cause an issue with rejoining. To avoid failed commits
for transactions that are in progress while stopping Group
Replication, from MySQL 8.0.28, the
STOP GROUP_REPLICATION
statement cannot be issued while a GTID is assigned as the value
of the gtid_next
system variable.
The
group_replication_components_stop_timeout
system variable specifies the time for which Group Replication
waits for each of its modules to complete ongoing processes
after this statement is issued. The timeout is used to resolve
situations in which Group Replication components cannot be
stopped normally, which can happen if the member is expelled
from the group while it is in an error state, or while a process
such as MySQL Enterprise Backup is holding a global lock on tables on the member.
In such situations, the member cannot stop the applier thread or
complete the distributed recovery process to rejoin.
STOP GROUP_REPLICATION
does not complete
until either the situation is resolved (for example, by the lock
being released), or the component timeout expires and the
modules are shut down regardless of their status. Prior to MySQL
8.0.27, the default component timeout is 31536000 seconds, or
365 days. With this setting, the component timeout does not help
in situations such as those just described, so a lower setting
is recommended in those versions of MySQL 8.0. Beginning with
MySQL 8.0.27, the default value is 300 seconds; this means that
Group Replication components are stopped after 5 minutes if the
situation is not resolved before that time, allowing the member
to be restarted and rejoin.