Documentation Home
MySQL 8.0 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 33.4Mb
PDF (A4) - 33.4Mb
PDF (RPM) - 31.3Mb
HTML Download (TGZ) - 7.9Mb
HTML Download (Zip) - 8.0Mb
HTML Download (RPM) - 6.8Mb
Man Pages (TGZ) - 145.7Kb
Man Pages (Zip) - 206.7Kb
Info (Gzip) - 3.1Mb
Info (Zip) - 3.1Mb


MySQL 8.0 Reference Manual  /  Group Replication  /  Group Replication System Variables

Pre-General Availability Draft: 2017-09-22

21.6 Group Replication System Variables

These are the system variables that are specific to the Group Replication plugin. Every configuration option is prefixed with "group_replication".

Important

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.

  • group_replication_group_name

    Command-Line Format--group-replication-group-name=value
    System VariableNamegroup_replication_group_name
    Variable ScopeGlobal
    Dynamic VariableYes
    Permitted ValuesTypestring

    The name of the group which this server instance belongs to. Must be a valid UUID.

  • group_replication_start_on_boot

    Command-Line Format--group-replication-start-on-boot=value
    System VariableNamegroup_replication_start_on_boot
    Variable ScopeGlobal
    Dynamic VariableYes
    Permitted ValuesTypeboolean
    DefaultON

    Whether the server should start Group Replication or not during server start.

  • group_replication_local_address

    Command-Line Format--group-replication-local-address=value
    System VariableNamegroup_replication_local_address
    Variable ScopeGlobal
    Dynamic VariableYes
    Permitted ValuesTypestring

    The local address as a host:port formatted string.

  • group_replication_member_weight

    Introduced8.0.2
    Command-Line Format--group-replication-member-weight=value
    System VariableNamegroup_replication_member_weight
    Variable ScopeGlobal
    Dynamic VariableYes
    Permitted ValuesTypeinteger
    Default50
    Min Value0
    Max Value100

    A percentage weight that can be assigned to members to influence the chance of the member being elected as primary in the event of failover, for example when the existing primary leaves a single-primary 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 prioritized in the event of failover.

    For a group with members configured as follows:

    • member-1: group_replication_member_weight=30, server_uuid=aaaa

    • member-2: group_replication_member_weight=40, server_uuid=bbbb

    • member-3: group_replication_member_weight=40, server_uuid=cccc

    • member-4: group_replication_member_weight=40, server_uuid=dddd

    during election of a new primary the members above would be sorted as member-2, member-3, member-4, and member-1. This results in member-2 being chosen as the new primary in the event of failover. For more information, see Section 21.4.1.1, “Single-Primary Mode”.

  • group_replication_group_seeds

    Command-Line Format--group-replication-group-seeds=value
    System VariableNamegroup_replication_group_seeds
    Variable ScopeGlobal
    Dynamic VariableYes
    Permitted ValuesTypestring

    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 cause START GROUP_REPLICATION to fail.

  • group_replication_force_members

    Command-Line Format--group-replication-force-members=value
    System VariableNamegroup_replication_force_members
    Variable ScopeGlobal
    Dynamic VariableYes
    Permitted ValuesTypestring

    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 subsequent START GROUP_REPLICATION statements to fail because they could block group membership.

  • group_replication_bootstrap_group

    Command-Line Format--group-replication-bootstrap-group=value
    System VariableNamegroup_replication_bootstrap_group
    Variable ScopeGlobal
    Dynamic VariableYes
    Permitted ValuesTypeboolean
    DefaultOFF

    Configure 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 to OFF both 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_loops

    Command-Line Format--group-replication-poll-spin-loops=value
    System VariableNamegroup_replication_poll_spin_loops
    Variable ScopeGlobal
    Dynamic VariableYes
    Permitted Values (32-bit platforms)Typeinteger
    Default0
    Min Value0
    Max Value4294967295
    Permitted Values (64-bit platforms)Typeinteger
    Default0
    Min Value0
    Max Value18446744073709547520

    The 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_count

    Command-Line Format--group-replication-recovery-retry-count=value
    System VariableNamegroup_replication_recovery_retry_count
    Variable ScopeGlobal
    Dynamic VariableYes
    Permitted ValuesTypeinteger
    Default10
    Min Value0
    Max Value31536000

    The number of times that the member that is joining tries to connect to the available donors before giving up.

  • group_replication_recovery_reconnect_interval

    Command-Line Format--group-replication-recovery-reconnect-interval=value
    System VariableNamegroup_replication_recovery_reconnect_interval
    Variable ScopeGlobal
    Dynamic VariableYes
    Permitted ValuesTypeinteger
    Default60
    Min Value0
    Max Value0

    The sleep time, in seconds, between reconnection attempts when no donor was found in the group.

  • group_replication_recovery_use_ssl

    Command-Line Format--group-replication-recovery-use-ssl=value
    System VariableNamegroup_replication_recovery_use_ssl
    Variable ScopeGlobal
    Dynamic VariableYes
    Permitted ValuesTypeboolean
    DefaultOFF

    Whether Group Replication recovery connection should use SSL or not.

  • group_replication_recovery_ssl_ca

    Command-Line Format--group-replication-recovery-ssl-ca=value
    System VariableNamegroup_replication_recovery_ssl_ca
    Variable ScopeGlobal
    Dynamic VariableYes
    Permitted ValuesTypestring

    The path to a file that contains a list of trusted SSL certificate authorities.

  • group_replication_recovery_ssl_capath

    Command-Line Format--group-replication-recovery-ssl-capath=value
    System VariableNamegroup_replication_recovery_ssl_capath
    Variable ScopeGlobal
    Dynamic VariableYes
    Permitted ValuesTypestring

    The path to a directory that contains trusted SSL certificate authority certificates.

  • group_replication_recovery_ssl_cert

    Command-Line Format--group-replication-recovery-ssl-cert=value
    System VariableNamegroup_replication_recovery_ssl_cert
    Variable ScopeGlobal
    Dynamic VariableYes
    Permitted ValuesTypestring

    The name of the SSL certificate file to use for establishing a secure connection.

  • group_replication_recovery_ssl_key

    Command-Line Format--group-replication-recovery-ssl-key=value
    System VariableNamegroup_replication_recovery_ssl_key
    Variable ScopeGlobal
    Dynamic VariableYes
    Permitted ValuesTypestring

    The name of the SSL key file to use for establishing a secure connection.

  • group_replication_recovery_ssl_cipher

    Command-Line Format--group-replication-recovery-ssl-cipher=value
    System VariableNamegroup_replication_recovery_ssl_cipher
    Variable ScopeGlobal
    Dynamic VariableYes
    Permitted ValuesTypestring

    A list of permissible ciphers to use for SSL encryption.

  • group_replication_recovery_ssl_crl

    Command-Line Format--group-replication-recovery-ssl-crl=value
    System VariableNamegroup_replication_recovery_ssl_crl
    Variable ScopeGlobal
    Dynamic VariableYes
    Permitted ValuesTypestring

    The path to a directory that contains files containing certificate revocation lists.

  • group_replication_recovery_ssl_crlpath

    Command-Line Format--group-replication-recovery-ssl-crlpath=value
    System VariableNamegroup_replication_recovery_ssl_crlpath
    Variable ScopeGlobal
    Dynamic VariableYes
    Permitted ValuesTypestring

    The path to a directory that contains files containing certificate revocation lists.

  • group_replication_recovery_ssl_verify_server_cert

    Command-Line Format--group-replication-recovery-ssl-verify-server-cert=value
    System VariableNamegroup_replication_recovery_ssl_verify_server_cert
    Variable ScopeGlobal
    Dynamic VariableYes
    Permitted ValuesTypeboolean
    DefaultOFF

    Make the recovery process check the server's Common Name value in the donor sent certificate.

  • group_replication_recovery_complete_at

    Command-Line Format--group-replication-recovery-complete-at=value
    System VariableNamegroup_replication_recovery_complete_at
    Variable ScopeGlobal
    Dynamic VariableYes
    Permitted ValuesTypeenumeration
    DefaultTRANSACTIONS_APPLIED
    Valid ValuesTRANSACTIONS_CERTIFIED
    TRANSACTIONS_APPLIED

    Recovery 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_communication_debug_options

    Introduced8.0.3
    Command-Line Format--group-replication-communication-debug-options=value
    System VariableNamegroup_replication_communication_debug_options
    Variable ScopeGlobal
    Dynamic VariableYes
    Permitted ValuesTypestring
    DefaultGCS_DEBUG_NONE
    Valid ValuesGCS_DEBUG_NONE
    GCS_DEBUG_BASIC
    GCS_DEBUG_TRACE
    XCOM_DEBUG_BASIC
    XCOM_DEBUG_TRACE
    GCS_DEBUG_ALL

    Configures the level of debugging messages to provide for the different Group Replication componenets, such as GCS and XCOM. The debug information is stored in the GCS_DEBUG_TRACE file in the data directory.

    The set of available options, specified as strings, can be combined. The following options are available:

    • GCS_DEBUG_NONE disables all debugging levels for both GCS and XCOM

    • GCS_DEBUG_BASIC enables basic debugging information in GCS

    • GCS_DEBUG_TRACE enables trace information in GCS

    • XCOM_DEBUG_BASIC enables basic debugging information in XCOM

    • XCOM_DEBUG_TRACE enables trace information in XCOM

    • GCS_DEBUG_ALL enables all debugging levels for both GCS and XCOM

    Setting the debug level to GCS_DEBUG_NONE only has an effect when provided without any other option. Setting the debug level to GCS_DEBUG_ALL overrides all other options.

  • group_replication_components_stop_timeout

    Command-Line Format--group-replication-components-stop-timeout=value
    System VariableNamegroup_replication_components_stop_timeout
    Variable ScopeGlobal
    Dynamic VariableYes
    Permitted ValuesTypeinteger
    Default31536000

    Timeout, in seconds, that Group Replication waits for each of the components when shutting down.

  • group_replication_allow_local_lower_version_join

    Command-Line Format--group-replication-allow-local-lower-version-join=value
    System VariableNamegroup_replication_allow_local_lower_version_join
    Variable ScopeGlobal
    Dynamic VariableYes
    Permitted ValuesTypeboolean
    DefaultOFF

    Allow the current server to join the group even if it has a lower plugin version than the group.

  • group_replication_allow_local_disjoint_gtids_join

    Command-Line Format--group-replication-allow-local-disjoint-gtids-join=value
    System VariableNamegroup_replication_allow_local_disjoint_gtids_join
    Variable ScopeGlobal
    Dynamic VariableYes
    Permitted ValuesTypeboolean
    DefaultOFF

    Allow the current server to join the group even if it has transactions not present in the group.

    Warning

    Use caution when enabling this option as incorrect usage could lead to inconsistencies in the group.

  • group_replication_auto_increment_increment

    Command-Line Format--group-replication-auto-increment-increment=value
    System VariableNamegroup_replication_auto_increment_increment
    Variable ScopeGlobal
    Dynamic VariableYes
    Permitted ValuesTypeinteger
    Default7
    Min Value1
    Max Value65535

    Determines the interval between successive column values for transactions that execute on this server instance.

  • group_replication_compression_threshold

    Command-Line Format--group-replication-compression-threshold=value
    System VariableNamegroup_replication_compression_threshold
    Variable ScopeGlobal
    Dynamic VariableYes
    Permitted ValuesTypeinteger
    Default1000000
    Min Value0
    Max Value4294967296

    The value in bytes above which (LZ4) compression is enforced. When set to zero, deactivates compression.

  • group_replication_gtid_assignment_block_size

    Command-Line Format--group-replication-gtid-assignment-block-size=value
    System VariableNamegroup_replication_gtid_assignment_block_size
    Variable ScopeGlobal
    Dynamic VariableYes
    Permitted Values (32-bit platforms)Typeinteger
    Default1000000
    Min Value1
    Max Value4294967295
    Permitted Values (64-bit platforms)Typeinteger
    Default1000000
    Min Value1
    Max Value18446744073709547520

    The number of consecutive GTIDs that are reserved for each member. Each member consumes its blocks and reserves more when needed.

  • group_replication_ssl_mode

    Command-Line Format--group-replication-ssl-mode=value
    System VariableNamegroup_replication_ssl_mode
    Variable ScopeGlobal
    Dynamic VariableYes
    Permitted ValuesTypeenumeration
    DefaultDISABLED
    Valid ValuesDISABLED
    REQUIRED
    VERIFY_CA
    VERIFY_IDENTITY

    Specifies the security state of the connection between Group Replication members.

  • group_replication_single_primary_mode

    Command-Line Format--group-replication-single-primary-mode=value
    System VariableNamegroup_replication_single_primary_mode
    Variable ScopeGlobal
    Dynamic VariableYes
    Permitted ValuesTypeboolean
    DefaultON

    Instructs 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_limit

    Command-Line Format--group-replication-transaction-size-limit=value
    System VariableNamegroup_replication_transaction_size_limit
    Variable ScopeGlobal
    Dynamic VariableYes
    Permitted ValuesTypeinteger
    Default0
    Min Value0
    Max Value2147483647
    Permitted Values (>= 8.0.2)Typeinteger
    Default150000000
    Min Value0
    Max Value2147483647

    Configures 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_timeout

    Introduced8.0.2
    Command-Line Format--group-replication-unreachable-majority-timeout=value
    System VariableNamegroup_replication_unreachable_majority_timeout
    Variable ScopeGlobal
    Dynamic VariableYes
    Permitted ValuesTypeinteger
    Default0
    Min Value0
    Max Value31536000

    Configures 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 REPLICATION on 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 ERROR state and set themselves to super_read_only=ON mode.

    Warning

    When 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 ERROR state.

  • group_replication_enforce_update_everywhere_checks

    Command-Line Format--group-replication-enforce-update-everywhere-checks=value
    System VariableNamegroup_replication_enforce_update_everywhere_checks
    Variable ScopeGlobal
    Dynamic VariableYes
    Permitted ValuesTypeboolean
    DefaultOFF

    Enable or disable strict consistency checks for multi-primary update everywhere.

  • group_replication_flow_control_mode

    Command-Line Format--group-replication-flow-control-mode=value
    System VariableNamegroup_replication_flow_control_mode
    Variable ScopeGlobal
    Dynamic VariableYes
    Permitted ValuesTypeenumeration
    DefaultQUOTA
    Valid ValuesDISABLED
    QUOTA

    Specifies the mode used for flow control. This variable can be changed without resetting Group Replication.

  • group_replication_flow_control_hold_percent

    Introduced8.0.2
    Command-Line Format--group-replication-flow-control-hold-percent=value
    System VariableNamegroup_replication_flow_control_hold_percent
    Variable ScopeGlobal
    Dynamic VariableYes
    Permitted ValuesTypeinteger
    Default10
    Min Value0
    Max Value100

    Defines 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_threshold

    Command-Line Format--group-replication-flow-control-certifier-threshold=value
    System VariableNamegroup_replication_flow_control_certifier_threshold
    Variable ScopeGlobal
    Dynamic VariableYes
    Permitted ValuesTypeinteger
    Default25000
    Min Value0
    Max Value2147483648

    Specifies 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_threshold

    Command-Line Format--group-replication-flow-control-applier-threshold=value
    System VariableNamegroup_replication_flow_control_applier_threshold
    Variable ScopeGlobal
    Dynamic VariableYes
    Permitted ValuesTypeinteger
    Default25000
    Min Value0
    Max Value2147483648

    Specifies 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_quota

    Introduced8.0.2
    Command-Line Format--group-replication-flow-control-max-commit-quota=value
    System VariableNamegroup_replication_flow_control_max_commit_quota
    Variable ScopeGlobal
    Dynamic VariableYes
    Permitted ValuesTypeinteger
    Default0
    Min Value0
    Max Value2147483648

    Defines 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_quota and group_replication_flow_control_min_recovery_quota.

  • group_replication_flow_control_member_quota_percent

    Introduced8.0.2
    Command-Line Format--group-replication-flow-control-member-quota-percent=value
    System VariableNamegroup_replication_flow_control_member_quota_percent
    Variable ScopeGlobal
    Dynamic VariableYes
    Permitted ValuesTypeinteger
    Default0
    Min Value0
    Max Value100

    Defines 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_quota

    Introduced8.0.2
    Command-Line Format--group-replication-flow-control-min-quota=value
    System VariableNamegroup_replication_flow_control_min_quota
    Variable ScopeGlobal
    Dynamic VariableYes
    Permitted ValuesTypeinteger
    Default0
    Min Value0
    Max Value2147483648

    Controls 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_quota

    Introduced8.0.2
    Command-Line Format--group-replication-flow-control-min-recovery-quota=value
    System VariableNamegroup_replication_flow_control_min_recovery_quota
    Variable ScopeGlobal
    Dynamic VariableYes
    Permitted ValuesTypeinteger
    Default0
    Min Value0
    Max Value2147483648

    Controls 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_period

    Introduced8.0.2
    Command-Line Format--group-replication-flow-control-period=value
    System VariableNamegroup_replication_flow_control_period
    Variable ScopeGlobal
    Dynamic VariableYes
    Permitted ValuesTypeinteger
    Default1
    Min Value1
    Max Value60

    Defines 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_percent

    Introduced8.0.2
    Command-Line Format--group-replication-flow-control-release-percent=value
    System VariableNamegroup_replication_flow_control_release_percent
    Variable ScopeGlobal
    Dynamic VariableYes
    Permitted ValuesTypeinteger
    Default50
    Min Value0
    Max Value1000

    Defines 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_whitelist

    Command-Line Format--group-replication-ip-whitelist=value
    System VariableNamegroup_replication_recovery_ip_whitelist
    Variable ScopeGlobal
    Dynamic VariableYes
    Permitted ValuesTypestring
    DefaultAUTOMATIC

    Specifies 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 example 192.168.1.0/24,10.0.0.1.

    Note

    Address 127.0.0.1 is always permitted to connect, even when not specified using group_replication_ip_whitelist.


User Comments
Sign Up Login You must be logged in to post a comment.