Pre-General Availability Draft: 2017-07-17
These are the system variables that are specific to the Group Replication plugin. Every configuration option is prefixed with "group_replication".
Although most variables are described as dynamic and can be changed while the server is running, most changes only take effect upon restarting the Group Replication plugin. Variables which can be changed without requiring a restart of the plugin are specifically noted as such in this section.
-
Command-Line Format --group-replication-group-name=valueSystem Variable Name group_replication_group_nameVariable Scope Global Dynamic Variable Yes Permitted Values Type string The name of the group which this server instance belongs to. Must be a valid UUID.
group_replication_start_on_bootCommand-Line Format --group-replication-start-on-boot=valueSystem Variable Name group_replication_start_on_bootVariable Scope Global Dynamic Variable Yes Permitted Values Type boolean Default ONWhether the server should start Group Replication or not during server start.
group_replication_local_addressCommand-Line Format --group-replication-local-address=valueSystem Variable Name group_replication_local_addressVariable Scope Global Dynamic Variable Yes Permitted Values Type string The local address as a
host:portformatted string.group_replication_member_weightIntroduced 8.0.2 Command-Line Format --group-replication-member-weight=valueSystem Variable Name group_replication_member_weightVariable Scope Global Dynamic Variable Yes Permitted Values Type integer Default 50Min Value 0Max Value 100A percentage weight that can be assigned to members to influence the chance of the member being elected as primary in the event that the existing primary leaves the group. Assign numeric weights to members to ensure that specific members are elected, for example during scheduled maintenance of the primary or to ensure certain hardware is prioritised in the event of failover.
-
Command-Line Format --group-replication-group-seeds=valueSystem Variable Name group_replication_group_seedsVariable Scope Global Dynamic Variable Yes Permitted Values Type string A list of peer addresses as a comma separated list such as
host1:port1,host2:port2. Each address is validated when starting Group Replication and the list must contain at least one valid address. Any invalid host names could causeSTART GROUP_REPLICATIONto fail. group_replication_force_membersCommand-Line Format --group-replication-force-members=valueSystem Variable Name group_replication_force_membersVariable Scope Global Dynamic Variable Yes Permitted Values Type string A list of peer addresses as a comma separated list such as
host1:port1,host2:port2. This option is used to force a new group membership, in which the excluded members do not receive a new view and are blocked. You need to manually kill the excluded servers. Any invalid host names in the list could cause subsequentSTART GROUP_REPLICATIONstatements to fail because they could block group membership.group_replication_bootstrap_groupCommand-Line Format --group-replication-bootstrap-group=valueSystem Variable Name group_replication_bootstrap_groupVariable Scope Global Dynamic Variable Yes Permitted Values Type boolean Default OFFConfigure this server to bootstrap the group. This option must only be set on one server and only when starting the group for the first time or restarting the entire group. After the group has been bootstrapped, set this option to
OFF. It should be set toOFFboth dynamically and in the configuration files. Starting two servers or restarting one server with this option set while the group is running may lead to an artificial split brain situation, where two independent groups with the same name are bootstrapped.group_replication_poll_spin_loopsCommand-Line Format --group-replication-poll-spin-loops=valueSystem Variable Name group_replication_poll_spin_loopsVariable Scope Global Dynamic Variable Yes Permitted Values (32-bit platforms) Type integer Default 0Min Value 0Max Value 4294967295Permitted Values (64-bit platforms) Type integer Default 0Min Value 0Max Value 18446744073709547520The number of times the group communication thread waits for the communication engine mutex to be released before the thread waits for more incoming network messages.
group_replication_recovery_retry_countCommand-Line Format --group-replication-recovery-retry-count=valueSystem Variable Name group_replication_recovery_retry_countVariable Scope Global Dynamic Variable Yes Permitted Values Type integer Default 10Min Value 0Max Value 31536000The number of times that the member that is joining tries to connect to the available donors before giving up.
group_replication_recovery_reconnect_intervalCommand-Line Format --group-replication-recovery-reconnect-interval=valueSystem Variable Name group_replication_recovery_reconnect_intervalVariable Scope Global Dynamic Variable Yes Permitted Values Type integer Default 60Min Value 0Max Value 0The sleep time, in seconds, between reconnection attempts when no donor was found in the group.
group_replication_recovery_use_sslCommand-Line Format --group-replication-recovery-use-ssl=valueSystem Variable Name group_replication_recovery_use_sslVariable Scope Global Dynamic Variable Yes Permitted Values Type boolean Default OFFWhether Group Replication recovery connection should use SSL or not.
group_replication_recovery_ssl_caCommand-Line Format --group-replication-recovery-ssl-ca=valueSystem Variable Name group_replication_recovery_ssl_caVariable Scope Global Dynamic Variable Yes Permitted Values Type string The path to a file that contains a list of trusted SSL certificate authorities.
group_replication_recovery_ssl_capathCommand-Line Format --group-replication-recovery-ssl-capath=valueSystem Variable Name group_replication_recovery_ssl_capathVariable Scope Global Dynamic Variable Yes Permitted Values Type string The path to a directory that contains trusted SSL certificate authority certificates.
group_replication_recovery_ssl_certCommand-Line Format --group-replication-recovery-ssl-cert=valueSystem Variable Name group_replication_recovery_ssl_certVariable Scope Global Dynamic Variable Yes Permitted Values Type string The name of the SSL certificate file to use for establishing a secure connection.
group_replication_recovery_ssl_keyCommand-Line Format --group-replication-recovery-ssl-key=valueSystem Variable Name group_replication_recovery_ssl_keyVariable Scope Global Dynamic Variable Yes Permitted Values Type string The name of the SSL key file to use for establishing a secure connection.
group_replication_recovery_ssl_cipherCommand-Line Format --group-replication-recovery-ssl-cipher=valueSystem Variable Name group_replication_recovery_ssl_cipherVariable Scope Global Dynamic Variable Yes Permitted Values Type string A list of permissible ciphers to use for SSL encryption.
group_replication_recovery_ssl_crlCommand-Line Format --group-replication-recovery-ssl-crl=valueSystem Variable Name group_replication_recovery_ssl_crlVariable Scope Global Dynamic Variable Yes Permitted Values Type string The path to a directory that contains files containing certificate revocation lists.
group_replication_recovery_ssl_crlpathCommand-Line Format --group-replication-recovery-ssl-crlpath=valueSystem Variable Name group_replication_recovery_ssl_crlpathVariable Scope Global Dynamic Variable Yes Permitted Values Type string The path to a directory that contains files containing certificate revocation lists.
group_replication_recovery_ssl_verify_server_certCommand-Line Format --group-replication-recovery-ssl-verify-server-cert=valueSystem Variable Name group_replication_recovery_ssl_verify_server_certVariable Scope Global Dynamic Variable Yes Permitted Values Type boolean Default OFFMake the recovery process check the server's Common Name value in the donor sent certificate.
group_replication_recovery_complete_atCommand-Line Format --group-replication-recovery-complete-at=valueSystem Variable Name group_replication_recovery_complete_atVariable Scope Global Dynamic Variable Yes Permitted Values Type enumeration Default TRANSACTIONS_APPLIEDValid Values TRANSACTIONS_CERTIFIEDTRANSACTIONS_APPLIEDRecovery policies when handling cached transactions after state transfer. This option specifies whether a member is marked online after it has received all transactions that it missed before it joined the group (
TRANSACTIONS_CERTIFIED) or after it has received and applied them (TRANSACTIONS_APPLIED).group_replication_components_stop_timeoutCommand-Line Format --group-replication-components-stop-timeout=valueSystem Variable Name group_replication_components_stop_timeoutVariable Scope Global Dynamic Variable Yes Permitted Values Type integer Default 31536000Timeout, in seconds, that Group Replication waits for each of the components when shutting down.
group_replication_allow_local_lower_version_joinCommand-Line Format --group-replication-allow-local-lower-version-join=valueSystem Variable Name group_replication_allow_local_lower_version_joinVariable Scope Global Dynamic Variable Yes Permitted Values Type boolean Default OFFAllow the current server to join the group even if it has a lower plugin version than the group.
group_replication_allow_local_disjoint_gtids_joinCommand-Line Format --group-replication-allow-local-disjoint-gtids-join=valueSystem Variable Name group_replication_allow_local_disjoint_gtids_joinVariable Scope Global Dynamic Variable Yes Permitted Values Type boolean Default OFFAllow the current server to join the group even if it has transactions not present in the group.
WarningUse caution when enabling this option as incorrect usage could lead to inconsistencies in the group.
group_replication_auto_increment_incrementCommand-Line Format --group-replication-auto-increment-increment=valueSystem Variable Name group_replication_auto_increment_incrementVariable Scope Global Dynamic Variable Yes Permitted Values Type integer Default 7Min Value 1Max Value 65535Determines the interval between successive column values for transactions that execute on this server instance.
group_replication_compression_thresholdCommand-Line Format --group-replication-compression-threshold=valueSystem Variable Name group_replication_compression_thresholdVariable Scope Global Dynamic Variable Yes Permitted Values Type integer Default 1000000Min Value 0Max Value 4294967296The value in bytes above which (LZ4) compression is enforced. When set to zero, deactivates compression.
group_replication_gtid_assignment_block_sizeCommand-Line Format --group-replication-gtid-assignment-block-size=valueSystem Variable Name group_replication_gtid_assignment_block_sizeVariable Scope Global Dynamic Variable Yes Permitted Values (32-bit platforms) Type integer Default 1000000Min Value 1Max Value 4294967295Permitted Values (64-bit platforms) Type integer Default 1000000Min Value 1Max Value 18446744073709547520The number of consecutive GTIDs that are reserved for each member. Each member consumes its blocks and reserves more when needed.
-
Command-Line Format --group-replication-ssl-mode=valueSystem Variable Name group_replication_ssl_modeVariable Scope Global Dynamic Variable Yes Permitted Values Type enumeration Default DISABLEDValid Values DISABLEDREQUIREDVERIFY_CAVERIFY_IDENTITYSpecifies the security state of the connection between Group Replication members.
group_replication_single_primary_modeCommand-Line Format --group-replication-single-primary-mode=valueSystem Variable Name group_replication_single_primary_modeVariable Scope Global Dynamic Variable Yes Permitted Values Type boolean Default ONInstructs the group to automatically pick a single server to be the one that handles read/write workload. This server is the PRIMARY and all others are SECONDARIES.
group_replication_transaction_size_limitCommand-Line Format --group-replication-transaction-size-limit=valueSystem Variable Name group_replication_transaction_size_limitVariable Scope Global Dynamic Variable Yes Permitted Values Type integer Default 0Min Value 0Max Value 2147483647Permitted Values (>= 8.0.2) Type integer Default 150000000Min Value 0Max Value 2147483647Configures the maximum transaction size in bytes which the group accepts. Transactions larger than this size are rolled back. Use this option to avoid large transactions causing the group to fail. A large transaction can cause problems for a group, either in terms of memory allocation or network bandwidth consumption, which may cause the failure detector to trigger because a given member is unreachable while it is busy processing the large transaction. When set to 0 there is no limit to the size of transactions the group accepts, and there may be the risk of large transactions causing the group to fail. Adjust the value of this variable depending on the size of workload you require from the group.
group_replication_unreachable_majority_timeoutIntroduced 8.0.2 Command-Line Format --group-replication-unreachable-majority-timeout=valueSystem Variable Name group_replication_unreachable_majority_timeoutVariable Scope Global Dynamic Variable Yes Permitted Values Type integer Default 0Min Value 0Max Value 31536000Configures how long members that suffer a network partition and cannot connect to the majority wait before leaving the group. By default set to 0, which means that members that find themselves in a minority due to a network partition wait forever to connect the group. In a group of 5 servers (S1,S2,S3,S4,S5), if there is a disconnection between (S1,S2) and (S3,S4,S5) there is a network partition. The first group (S1,S2) is now in a minority because it cannot contact more than half of the group. While the majority group (S3,S4,S5) remains running, the minority group waits forever for a network reconnection. Any transactions processed by the minority group are blocked until Group Replication is stopped using
STOP GROUP REPLICATIONon the members of the minority.If configured to a number of seconds, members wait for this amount of time after losing contact with the majority of members before leaving the group. All pending transactions processed by the minority are rolled back and the servers in the minority partition move to the
ERRORstate and set themselves tosuper_read_only=ONmode.WarningWhen you have a symmetric group, with just two members for example (S0,S2), if there is a network partition and there is no majority, after the configured timeout all members shut down and enter
ERRORstate.group_replication_enforce_update_everywhere_checksCommand-Line Format --group-replication-enforce-update-everywhere-checks=valueSystem Variable Name group_replication_enforce_update_everywhere_checksVariable Scope Global Dynamic Variable Yes Permitted Values Type boolean Default OFFEnable or disable strict consistency checks for multi-primary update everywhere.
group_replication_flow_control_modeCommand-Line Format --group-replication-flow-control-mode=valueSystem Variable Name group_replication_flow_control_modeVariable Scope Global Dynamic Variable Yes Permitted Values Type enumeration Default QUOTAValid Values DISABLEDQUOTASpecifies the mode used for flow control. This variable can be changed without resetting Group Replication.
group_replication_flow_control_hold_percentIntroduced 8.0.2 Command-Line Format --group-replication-flow-control-hold-percent=valueSystem Variable Name group_replication_flow_control_hold_percentVariable Scope Global Dynamic Variable Yes Permitted Values Type integer Default 10Min Value 0Max Value 100Defines what percentage of the group quota remains unused to allow a cluster under flow control to catch up on backlog. A value of 0 implies that no part of the quota is reserved for catching up on the work backlog.
group_replication_flow_control_certifier_thresholdCommand-Line Format --group-replication-flow-control-certifier-threshold=valueSystem Variable Name group_replication_flow_control_certifier_thresholdVariable Scope Global Dynamic Variable Yes Permitted Values Type integer Default 25000Min Value 0Max Value 2147483648Specifies the number of waiting transactions in the certifier queue that trigger flow control. This variable can be changed without resetting Group Replication.
group_replication_flow_control_applier_thresholdCommand-Line Format --group-replication-flow-control-applier-threshold=valueSystem Variable Name group_replication_flow_control_applier_thresholdVariable Scope Global Dynamic Variable Yes Permitted Values Type integer Default 25000Min Value 0Max Value 2147483648Specifies the number of waiting transactions in the applier queue that trigger flow control. This variable can be changed without resetting Group Replication.
group_replication_flow_control_max_commit_quotaIntroduced 8.0.2 Command-Line Format --group-replication-flow-control-max-commit-quota=valueSystem Variable Name group_replication_flow_control_max_commit_quotaVariable Scope Global Dynamic Variable Yes Permitted Values Type integer Default 0Min Value 0Max Value 2147483648Defines the maximum flow control quota of the group, or the maximum available quota for any period while flow control is enabled. A value of 0 implies that there is no maximum quota set. Cannot be smaller than
group_replication_flow_control_min_quotaandgroup_replication_flow_control_min_recovery_quota.group_replication_flow_control_member_quota_percentIntroduced 8.0.2 Command-Line Format --group-replication-flow-control-member-quota-percent=valueSystem Variable Name group_replication_flow_control_member_quota_percentVariable Scope Global Dynamic Variable Yes Permitted Values Type integer Default 0Min Value 0Max Value 100Defines the percentage of the quota that a member should assume is available for itself when calculating the quotas. A value of 0 implies that the quota should be split equally between members that were writers in the last period.
group_replication_flow_control_min_quotaIntroduced 8.0.2 Command-Line Format --group-replication-flow-control-min-quota=valueSystem Variable Name group_replication_flow_control_min_quotaVariable Scope Global Dynamic Variable Yes Permitted Values Type integer Default 0Min Value 0Max Value 2147483648Controls the lowest flow control quota that can be assigned to a member, independently of the calculated minimum quota executed in the last period. A value of 0 implies that there is no minimum quota. Cannot be larger than
group_replication_flow_control_max_commit_quota.group_replication_flow_control_min_recovery_quotaIntroduced 8.0.2 Command-Line Format --group-replication-flow-control-min-recovery-quota=valueSystem Variable Name group_replication_flow_control_min_recovery_quotaVariable Scope Global Dynamic Variable Yes Permitted Values Type integer Default 0Min Value 0Max Value 2147483648Controls the lowest quota that can be assigned to a member because of another recovering member in the group, independently of the calculated minimum quota executed in the last period. A value of 0 implies that there is no minimum quota. Cannot be larger than
group_replication_flow_control_max_commit_quota.group_replication_flow_control_periodIntroduced 8.0.2 Command-Line Format --group-replication-flow-control-period=valueSystem Variable Name group_replication_flow_control_periodVariable Scope Global Dynamic Variable Yes Permitted Values Type integer Default 1Min Value 1Max Value 60Defines how many seconds to wait between flow control iterations, in which flow control messages are sent and flow control management tasks are run.
group_replication_flow_control_release_percentIntroduced 8.0.2 Command-Line Format --group-replication-flow-control-release-percent=valueSystem Variable Name group_replication_flow_control_release_percentVariable Scope Global Dynamic Variable Yes Permitted Values Type integer Default 50Min Value 0Max Value 1000Defines how the group quota should be released when flow control no longer needs to throttle the writer members, with this percentage being the quota increase per flow control period. A value of 0 implies that once the flow control thresholds are within limits the quota is released in a single flow control iteration. The range allows the quota to be released at up to 10 times current quota, as that allows a greater degree of adaptation, mainly when the flow control period is large and the quotas are very small.
group_replication_ip_whitelistCommand-Line Format --group-replication-ip-whitelist=valueSystem Variable Name group_replication_recovery_ip_whitelistVariable Scope Global Dynamic Variable Yes Permitted Values Type string Default AUTOMATICSpecifies which hosts are permitted to connect to the group. By default set to
AUTOMATIC, which permits connections from private subnetworks active on the host. Active interfaces on the host are scanned and those with addresses on private subnetworks are automatically added to the permitted list. Alternatively you can specify the permitted hosts using a comma separated list of IPv4 addresses or subnet CIDR notation. For example192.168.1.0/24,10.0.0.1.NoteAddress 127.0.0.1 is always permitted to connect, even when not specified using
group_replication_ip_whitelist.