17.7.1 Переменные системы Group Replication
В этом разделе перечислены системные переменные, специфичные для плагина Group Replication.
Имя каждой системной переменной Group Replication начинается с group_replication_.
Большинство системных переменных Group Replication описаны как динамические, и их значения могут быть изменены во время работы сервера. Однако в большинстве случаев изменения вступают в силу только после остановки и перезапуска Group Replication на узле группы с помощью оператора STOP GROUP_REPLICATION, за которым следует оператор START
GROUP_REPLICATION. Изменения в следующих системных переменных вступают в силу без остановки и перезапуска Group Replication:
Большинство системных переменных Group Replication могут иметь разные значения на разных участниках группы. Для следующих системных переменных рекомендуется устанавливать одинаковые значения на всех участниках группы, чтобы избежать ненужной отмены транзакций, сбоев доставки сообщений или сбоев восстановления сообщений:
Некоторые системные переменные на узле группы Group Replication, включая некоторые специфичные для Group Replication переменные и некоторые общие переменные, являются настройками конфигурации для всей группы. Эти системные переменные должны иметь одинаковое значение на всех участниках группы, не могут быть изменены во время работы Group Replication и требуют полного перезапуска группы (bootstrap сервером с group_replication_bootstrap_group=ON) для того, чтобы изменение значения вступило в силу. Эти условия применяются к следующим системным переменным:
Ряд системных переменных для Group Replication не полностью проверяются во время запуска сервера, если они передаются в качестве аргументов командной строки. К этим системным переменным относятся
group_replication_group_name,group_replication_single_primary_mode,group_replication_force_members, переменные SSL и переменные управления потоком. Они проверяются полностью только после запуска сервера.Системные переменные Group Replication, указывающие IP-адреса или имена хостов для участников группы, не проверяются до тех пор, пока не будет выдан оператор
START GROUP_REPLICATION. Системная группа связи Group Replication (GCS) недоступна для проверки значений до этого момента.
Системные переменные, специфичные для плагина Group Replication, следующие:
-
group_replication_allow_local_disjoint_gtids_joinФормат командной строки --group-replication-allow-local-disjoint-gtids-join[={OFF|ON}]Введено 5.7.17 Устарело 5.7.21 Системная переменная group_replication_allow_local_disjoint_gtids_joinОбласть видимости Глобальная Динамическая Да Тип Булево Значение по умолчанию OFFУстарело в версии 5.7.21 и планируется к удалению в будущей версии. Позволяет серверу присоединиться к группе, даже если у него есть локальные транзакции, отсутствующие в группе.
ПредупреждениеБудьте осторожны при включении этой опции, так как неправильное использование может привести к конфликтам в группе и откату транзакций. Эта опция должна включаться только в крайнем случае, чтобы разрешить серверу с локальными транзакциями присоединиться к существующей группе, и только если локальные транзакции не затрагивают данные, обрабатываемые группой (например, административное действие, записанное в бинарный журнал). Эта опция не должна оставаться включенной на всех участниках группы.
-
group_replication_allow_local_lower_version_joinФормат командной строки --group-replication-allow-local-lower-version-join[={OFF|ON}]Введено 5.7.17 Системная переменная group_replication_allow_local_lower_version_joinОбласть видимости Глобальная Динамическая Да Тип Булево Значение по умолчанию OFFПозволяет текущему серверу присоединиться к группе, даже если у него более низкая основная версия, чем у группы. С настройкой по умолчанию
OFFсерверам не разрешается присоединяться к группе репликации, если у них более низкая основная версия, чем у существующих участников группы. Например, сервер MySQL 5.7 не может присоединиться к группе, состоящей из серверов MySQL 8.0. Эта стандартная политика гарантирует, что все участники группы могут обмениваться сообщениями и применять транзакции. Установитеgroup_replication_allow_local_lower_version_joinвONтолько в следующих сценариях:Сервер должен быть добавлен в группу в экстренном порядке для повышения отказоустойчивости группы, и доступны только более старые версии.
Вы хотите выполнить понижение версии участников группы репликации без отключения всей группы и повторной загрузки.
ПредупреждениеУстановка этой опции в
ONне делает нового участника совместимым с группой и позволяет ему присоединиться к группе без каких-либо мер предосторожности против несовместимого поведения существующих участников. Для обеспечения правильной работы нового участника примите обе следующие меры предосторожности:Прежде чем сервер с более низкой основной версией присоединится к группе, остановите все записи на этом сервере.
С момента, когда сервер с более низкой основной версией присоединяется к группе, остановите все записи на других серверах в группе.
Без этих мер предосторожности сервер с более низкой основной версией, вероятно, столкнется с трудностями и завершит работу с ошибкой.
-
group_replication_auto_increment_incrementФормат командной строки --group-replication-auto-increment-increment=#Введено 5.7.17 Системная переменная group_replication_auto_increment_incrementОбласть видимости Глобальная Динамическая Да Тип Целое число Значение по умолчанию 7Минимальное значение 1Максимальное значение 65535Определяет интервал между последовательными значениями столбцов для транзакций, выполняемых на этом экземпляре сервера. Эта системная переменная должна иметь одно и то же значение на всех участниках группы. Когда Group Replication запускается на сервере, значение системной переменной сервера
auto_increment_incrementизменяется на это значение, а значение системной переменной сервераauto_increment_offsetизменяется на идентификатор сервера. Эти настройки предотвращают выбор дубликатов значений автоинкремента для записей на участниках группы, что приводит к откату транзакций. Изменения отменяются при остановке Group Replication. Эти изменения выполняются и отменяются только в том случае, еслиauto_increment_incrementиauto_increment_offsetимеют значение по умолчанию 1. Если их значения уже были изменены по умолчанию, Group Replication не изменяет их.Значение по умолчанию 7 представляет собой баланс между количеством используемых значений и допустимым максимальным размером группы репликации (9 участников). Если ваша группа имеет больше или меньше участников, вы можете установить эту системную переменную в соответствии с ожидаемым количеством участников группы до запуска Group Replication. Вы не можете изменить настройку во время работы Group Replication.
ВажноУстановка
group_replication_auto_increment_incrementне оказывает влияния, когдаgroup_replication_single_primary_modeимеет значениеON. -
group_replication_bootstrap_groupФормат командной строки --group-replication-bootstrap-group[={OFF|ON}]Введено 5.7.17 Системная переменная group_replication_bootstrap_groupОбласть видимости Глобальная Динамическая Да Тип Булево Значение по умолчанию OFFНастройте этот сервер для загрузки группы. Эта опция должна быть установлена только на одном сервере и только при первом запуске группы или перезапуске всей группы. После загрузки группы установите эту опцию в
OFF. Она должна быть установлена вOFFкак динамически, так и в конфигурационных файлах. Запуск двух серверов или перезапуск одного сервера с этой опцией, установленной во время работы группы, может привести к искусственной ситуации разделенного мозга, когда загружаются две независимые группы с одинаковым именем. -
group_replication_components_stop_timeoutФормат командной строки --group-replication-components-stop-timeout=#Введено 5.7.17 Системная переменная group_replication_components_stop_timeoutОбласть видимости Глобальная Динамическая Да Тип Целое число Значение по умолчанию 31536000Минимальное значение 2Максимальное значение 31536000Единица измерения секунды Время ожидания в секундах, в течение которого Group Replication ожидает каждый из компонентов при выключении.
-
group_replication_compression_thresholdФормат командной строки --group-replication-compression-threshold=#Введено 5.7.17 Переменная системы group_replication_compression_thresholdОбласть Глобальная Динамическая Да Тип Целое число Значение по умолчанию 1000000Минимальное значение 0Максимальное значение 4294967295Единица измерения байты Значение порога в байтах, выше которого происходит сжатие сообщений, отправляемых между членами группы. Если эта переменная системы установлена в ноль, сжатие отключено. Значение
group_replication_compression_thresholdдолжно быть одинаковым на всех участниках группы.Группа репликации использует алгоритм сжатия LZ4 для сжатия сообщений, отправляемых в группе. Обратите внимание, что максимальный поддерживаемый размер входных данных для алгоритма сжатия LZ4 составляет 2113929216 байт. Это ограничение меньше максимального возможного значения для переменной системы
group_replication_compression_threshold, которое соответствует максимальному размеру сообщения, принимаемому XCom. При использовании алгоритма сжатия LZ4 не устанавливайте значение, превышающее 2113929216 байт дляgroup_replication_compression_threshold, поскольку транзакции, превышающие этот размер, не могут быть подтверждены при включенном сжатии сообщений.Дополнительную информацию см. в Разделе 17.9.7.2, «Сжатие сообщений».
-
group_replication_enforce_update_everywhere_checksФормат командной строки --group-replication-enforce-update-everywhere-checks[={OFF|ON}]Введено 5.7.17 Переменная системы group_replication_enforce_update_everywhere_checksОбласть Глобальная Динамическая Да Тип Булево Значение по умолчанию OFFВключить или отключить строгие проверки согласованности для обновлений во всех узлах в режиме с несколькими первичными узлами. По умолчанию проверки отключены. В режиме с одним первичным узлом этот параметр должен быть отключен на всех участниках группы. В режиме с несколькими первичными узлами при включенном этом параметре операторы проверяются следующим образом, чтобы убедиться в их совместимости с режимом с несколькими первичными узлами:
Если транзакция выполняется на уровне изоляции
SERIALIZABLE, ее подтверждение завершается неудачно при синхронизации с группой.Если транзакция выполняется над таблицей, имеющей внешние ключи с каскадными ограничениями, то транзакция завершается неудачно при подтверждении при синхронизации с группой.
Эта переменная системы является настройкой конфигурации для всей группы. Она должна иметь одинаковое значение на всех участниках группы, не может быть изменена во время работы группы репликации и требует полного перезапуска группы (восстановления узла сервером с
group_replication_bootstrap_group=ON) для вступления изменений в силу. -
group_replication_exit_state_actionФормат командной строки --group-replication-exit-state-action=valueВведено 5.7.24 Переменная системы group_replication_exit_state_actionОбласть Глобальная Динамическая Да Тип Перечисление Значение по умолчанию READ_ONLYДопустимые значения ABORT_SERVERREAD_ONLYНастраивает поведение группы репликации, когда экземпляр сервера покидает группу непреднамеренно, например, после возникновения ошибки применённия, в случае потери большинства голосов или когда другой член группы исключает его из-за истечения срока ожидания подозрения. Срок ожидания для выхода участника из группы в случае потери большинства голосов задается переменной системы
group_replication_unreachable_majority_timeout. Обратите внимание, что исключенный участник группы не знает об исключении до повторного подключения к группе, поэтому указанное действие выполняется только в том случае, если члену удается повторно подключиться или если член сам вызывает подозрение и исключает себя.Если
group_replication_exit_state_actionустановлено вABORT_SERVER, при непреднамеренном выходе члена из группы экземпляр сервера завершает работу MySQL.Если
group_replication_exit_state_actionустановлено вREAD_ONLY, при непреднамеренном выходе члена из группы экземпляр сервера переключает MySQL в режим супер-только для чтения (установив переменную системыsuper_read_onlyвON). Данное значение является значением по умолчанию в MySQL 5.7.ВажноЕсли ошибка произошла до успешного присоединения члена к группе, указанное действие выхода не выполняется. Это происходит в случае ошибки во время проверки локальной конфигурации или несоответствия между конфигурацией присоединяющегося члена и конфигурацией группы. В этих ситуациях переменная системы
super_read_onlyсохраняет свое исходное значение, и сервер не завершает работу MySQL. Для обеспечения того, чтобы сервер не мог принимать обновления, когда группа репликации не была запущена, рекомендуется установитьsuper_read_only=ONв файле конфигурации сервера при запуске, которое группа репликации изменяет наOFFна первичных узлах после успешного запуска. Эта мера предосторожности особенно важна, когда сервер настроен на запуск группы репликации при загрузке сервера (group_replication_start_on_boot=ON), но она также полезна, когда группа репликации запускается вручную с помощью командыSTART GROUP_REPLICATION.Если ошибка произошла после успешного присоединения члена к группе, указанное действие выхода выполняется. Это происходит в случае ошибки применителя, если член исключается из группы или если член устанавливается на тайм-аут в случае недоступного большинства. В этих ситуациях, если
READ_ONLYявляется действием выхода,super_read_onlyустанавливается вON, или еслиABORT_SERVERявляется действием выхода, сервер завершает работу MySQL.Таблица 17.5 Действия выхода в ситуациях сбоев в группе репликации
Таблица 17.5 Действия выхода в ситуациях сбоев в группе репликации Ситуация сбоя
Группа репликации запущена с
START GROUP_REPLICATIONГруппа репликации запущена с
group_replication_start_on_boot =ONПроверка локальной конфигурации члена завершилась ошибкой
ИЛИ
Несоответствие между конфигурацией присоединяющегося члена и конфигурацией группы
super_read_onlyбез измененийMySQL продолжает работу
Установите
super_read_only=ONпри запуске для предотвращения обновленийsuper_read_onlyбез измененийMySQL продолжает работу
Установите
super_read_only=ONпри запуске для предотвращения обновлений (Важно)Ошибка применителя на узле
ИЛИ
Узел исключён из группы
ИЛИ
Истечение времени ожидания недоступного большинства
super_read_onlyустановлено вONИЛИ
MySQL завершает работу
super_read_onlyустановлено вONИЛИ
MySQL завершает работу
-
group_replication_flow_control_applier_thresholdФормат командной строки --group-replication-flow-control-applier-threshold=#Введено 5.7.17 Переменная системы group_replication_flow_control_applier_thresholdОбласть Глобальная Динамическая Да Тип Целое число Значение по умолчанию 25000Минимальное значение 0Максимальное значение 2147483647Единица измерения транзакции Указывает количество ожидающих транзакций в очереди применителя, которые вызывают управление потоком. Данную переменную можно изменять без сброса группы репликации.
-
group_replication_flow_control_certifier_thresholdФормат командной строки --group-replication-flow-control-certifier-threshold=#Введено 5.7.17 Системная переменная group_replication_flow_control_certifier_thresholdОбласть видимости Глобальная Динамическая Да Тип Целое число Значение по умолчанию 25000Минимальное значение 0Максимальное значение 2147483647Единица измерения транзакции Задает количество ожидающих транзакций в очереди подтверждения, которые запускают управление потоком. Эту переменную можно изменить без перезапуска Group Replication.
-
group_replication_flow_control_hold_percentФормат командной строки --group-replication-flow-control-hold-percent=#Системная переменная group_replication_flow_control_hold_percentОбласть видимости Глобальная Динамическая Да Тип Целое число Значение по умолчанию 10Минимальное значение 0Максимальное значение 100Единица измерения проценты Определяет, какой процент групповой квоты остается неиспользованным, чтобы позволить кластеру, находящемуся под управлением потока, наверстать упущенное. Значение 0 означает, что никакая часть квоты не резервируется для обработки накопившейся работы.
-
group_replication_flow_control_max_quotaФормат командной строки --group-replication-flow-control-max-quota=#Системная переменная group_replication_flow_control_max_quotaОбласть видимости Глобальная Динамическая Да Тип Целое число Значение по умолчанию 0Минимальное значение 0Максимальное значение 2147483647Определяет максимальную квоту управления потоком группы или максимальную доступную квоту для любого периода, пока включено управление потоком. Значение 0 означает, что максимальная квота не установлена. Не может быть меньше, чем
group_replication_flow_control_min_quotaиgroup_replication_flow_control_min_recovery_quota. -
group_replication_flow_control_member_quota_percentФормат командной строки --group-replication-flow-control-member-quota-percent=#Системная переменная group_replication_flow_control_member_quota_percentОбласть видимости Глобальная Динамическая Да Тип Целое число Значение по умолчанию 0Минимальное значение 0Максимальное значение 100Единица измерения проценты Определяет процент квоты, который член должен предположить доступным для себя при вычислении квот. Значение 0 означает, что квота должна быть разделена поровну между членами, которые были писателями в последний период.
-
group_replication_flow_control_min_quotaФормат командной строки --group-replication-flow-control-min-quota=#Системная переменная group_replication_flow_control_min_quotaОбласть видимости Глобальная Динамическая Да Тип Целое число Значение по умолчанию 0Минимальное значение 0Максимальное значение 2147483647Управляет самой низкой квотой управления потоком, которая может быть назначена члену, независимо от вычисленной минимальной квоты, выполненной в последний период. Значение 0 означает, что минимальной квоты нет. Не может быть больше, чем
group_replication_flow_control_max_quota. -
group_replication_flow_control_min_recovery_quotaФормат командной строки --group-replication-flow-control-min-recovery-quota=#Системная переменная group_replication_flow_control_min_recovery_quotaОбласть видимости Глобальная Динамическая Да Тип Целое число Значение по умолчанию 0Минимальное значение 0Максимальное значение 2147483647Управляет самой низкой квотой, которая может быть назначена члену из-за другого восстанавливающегося члена в группе, независимо от вычисленной минимальной квоты, выполненной в последний период. Значение 0 означает, что минимальной квоты нет. Не может быть больше, чем
group_replication_flow_control_max_quota. -
group_replication_flow_control_modeФормат командной строки --group-replication-flow-control-mode=valueВведено 5.7.17 Системная переменная group_replication_flow_control_modeОбласть видимости Глобальная Динамическая Да Тип Перечисление Значение по умолчанию QUOTAДопустимые значения DISABLEDQUOTAЗадает режим, используемый для управления потоком. Эту переменную можно изменить без перезапуска Group Replication.
-
group_replication_force_membersФормат командной строки --group-replication-force-members=valueВведено 5.7.17 Системная переменная group_replication_force_membersОбласть видимости Глобальная Динамическая Да Тип Строка Список адресов узлов в виде списка, разделенного запятыми, например
host1:port1,host2:port2. Этот параметр используется для принудительного создания нового членства в группе, при котором исключенные члены не получают новый вид и блокируются. (Необходимо вручную завершить работу исключенных серверов.) Любые недопустимые имена узлов в списке могут привести к сбою этого действия, поскольку они могут блокировать членство в группе. Описание процедуры см. в Разделе 17.5.3, «Разделение сети».Необходимо указать адрес или имя узла и порт, как они указаны в параметре
group_replication_local_addressдля каждого члена. Например:"198.51.100.44:33061,example.org:33061"
После того, как вы использовали системную переменную
group_replication_force_membersдля успешного принудительного создания нового членства в группе и разблокировки группы, убедитесь, что вы очистили системную переменную.group_replication_force_membersдолжно быть пустым, чтобы выполнить операторSTART GROUP_REPLICATION. -
Формат командной строки --group-replication-group-name=valueВведено 5.7.17 Системная переменная group_replication_group_nameОбласть видимости Глобальная Динамическая Да Тип Строка Имя группы, к которой принадлежит этот экземпляр сервера. Должен быть допустимым UUID. Этот UUID используется внутренне при установке GTID для событий Group Replication в двоичном журнале.
ВажноНеобходимо использовать уникальный UUID.
-
Формат командной строки --group-replication-group-seeds=valueВведено 5.7.17 Переменная системы group_replication_group_seedsОбласть действия Глобальная Динамическая Да Тип Строка Список узлов группы, к которым присоединяющийся узел может подключиться, чтобы получить информацию обо всех текущих участниках группы. Присоединяющийся узел использует эту информацию, чтобы выбрать и подключиться к участнику группы для получения данных, необходимых для синхронизации с группой. Список содержит сетевые адреса узла-семени, указанные через запятую, например,
host1:port1,host2:port2.ВажноЭти адреса не должны совпадать с именем хоста и портом SQL узла-члена.
Обратите внимание, что значение, указанное для этой переменной, не проверяется до тех пор, пока не будет выполнено оператор
START GROUP_REPLICATIONи доступна система групповой коммуникации (GCS).Обычно этот список содержит всех участников группы, но вы можете выбрать подмножество участников группы для роли семян. Список должен содержать хотя бы один действительный адрес узла. Каждый адрес проверяется при запуске Group Replication. Если список не содержит действительных имён хостов, выполнение оператора
START GROUP_REPLICATIONзавершается неудачно. -
group_replication_gtid_assignment_block_sizeФормат командной строки --group-replication-gtid-assignment-block-size=#Введено 5.7.17 Переменная системы group_replication_gtid_assignment_block_sizeОбласть действия Глобальная Динамическая Да Тип Целое число Значение по умолчанию 1000000Минимальное значение 1Максимальное значение (64-битные платформы) 9223372036854775807Максимальное значение (32-битные платформы) 4294967295Количество последовательных GTID, резервируемых для каждого участника. Каждый участник использует свои блоки и резервирует больше при необходимости.
Эта переменная системы является настройкой конфигурации для всей группы. Она должна иметь одинаковое значение на всех участниках группы, не может быть изменена во время работы Group Replication и требует полной перезагрузки группы (bootstrap сервером с
group_replication_bootstrap_group=ON) для вступления изменений в силу. -
group_replication_ip_whitelistФормат командной строки --group-replication-ip-whitelist=valueВведено 5.7.17 Переменная системы group_replication_ip_whitelistОбласть действия Глобальная Динамическая Да Тип Строка Значение по умолчанию AUTOMATICУказывает список разрешённых хостов, которые могут подключаться к группе. Адрес, который вы указываете для каждого участника группы в
group_replication_local_address, должен быть включён в список разрешённых хостов на других серверах в группе репликации. Обратите внимание, что значение, которое вы указываете для этой переменной, не проверяется до тех пор, пока не будет выполнено операторSTART GROUP_REPLICATIONи доступна система групповой коммуникации (GCS).По умолчанию эта переменная системы установлена в
AUTOMATIC, что разрешает подключения из частных подсетей, активных на хосте. Двигатель групповой коммуникации (XCom) автоматически сканирует активные интерфейсы на хосте и определяет те, у которых адреса находятся в частных подсетях. Эти адреса и адресlocalhostIP для IPv4 используются для создания списка разрешённых адресов для Group Replication. Список диапазонов адресов, которые автоматически включаются в список разрешённых, см. в Разделе 17.6.1, «Разрешение IP-адресов для Group Replication».Автоматическое включение в список разрешённых частных адресов не может использоваться для подключений с серверов, находящихся за пределами частной сети. Для подключения Group Replication между экземплярами серверов на разных машинах необходимо предоставить публичные IP-адреса и указать их в явном списке разрешённых адресов. Если вы указываете какие-либо записи для списка разрешённых, частные адреса не добавляются автоматически, поэтому, если вы используете их, вы должны указать их явно. Адрес
localhostIP добавляется автоматически.В качестве значения параметра
group_replication_ip_whitelistможно указать любую комбинацию следующего:IPv4-адреса (например,
198.51.100.44)IPv4-адреса с CIDR-нотацией (например,
192.0.2.21/24)Имена хостов, начиная с MySQL 5.7.21 (например,
example.org)Имена хостов с CIDR-нотацией, начиная с MySQL 5.7.21 (например,
www.example.com/24)
IPv6-адреса и имена хостов, разрешаемые в IPv6-адреса, не поддерживаются в MySQL 5.7. Вы можете использовать CIDR-нотацию в сочетании с именами хостов или IP-адресами, чтобы включить в список разрешённых блок IP-адресов с определённым префиксом сети, но убедитесь, что все IP-адреса в указанной подсети находятся под вашим контролем.
Каждая запись в списке разрешённых должна быть разделена запятой. Например:
192.0.2.22,198.51.100.0/24,example.org,www.example.com/24
Вы можете настроить разные списки разрешённых адресов на разных участниках группы в соответствии с вашими требованиями безопасности, например, чтобы изолировать разные подсети. Однако это может привести к проблемам при переконфигурации группы. Если у вас нет особых требований к безопасности, используйте один и тот же список разрешённых адресов на всех участниках группы. Более подробная информация см. в Разделе 17.6.1, «Разрешение IP-адресов для Group Replication».
Для имён хостов разрешение имён происходит только при запросе соединения другим сервером. Имя хоста, которое не может быть разрешено, не учитывается при проверке включения в список разрешённых, и сообщение об ошибке записывается в журнал ошибок. Проверка обратного DNS с подтверждением вперёд (FCrDNS) выполняется для разрешённых имён хостов.
ПредупреждениеИмена хостов по своей природе менее безопасны, чем IP-адреса в списке разрешённых. Проверка FCrDNS обеспечивает хороший уровень защиты, но может быть уязвима к определённым типам атак. Указывайте имена хостов в списке разрешённых только в строго необходимых случаях и убедитесь, что все компоненты, используемые для разрешения имён, такие как DNS-серверы, находятся под вашим контролем. Вы также можете реализовать разрешение имён локально с помощью файла hosts, чтобы избежать использования внешних компонентов.
-
group_replication_local_addressФормат командной строки --group-replication-local-address=valueВведено 5.7.17 Переменная системы group_replication_local_addressОбласть действия Глобальная Динамическая Да Тип Строка Сетевой адрес, предоставляемый узлом для подключения со стороны других узлов, указанный в формате
host:port. Этот адрес должен быть доступен всем участникам группы, так как он используется двигателем групповой коммуникации для Group Replication (XCom, вариант Paxos) для TCP-обмена данными между удалёнными экземплярами XCom. Обмен данными с локальным экземпляром происходит через входной канал, использующий общую память.ПредупреждениеНе используйте этот адрес для связи с узлом.
Другие участники Group Replication обращаются к этому участнику через этот
host:portдля всей внутренней групповой коммуникации. Это не имя хоста и порт SQL-протокола MySQL сервера.Адрес или имя хоста, который вы указываете в
group_replication_local_address, используется Group Replication в качестве уникального идентификатора участника группы в группе репликации. Вы можете использовать один и тот же порт для всех участников группы репликации, если имена хостов или IP-адреса все разные, и вы можете использовать одно и то же имя хоста или IP-адрес для всех участников, если все порты разные. Рекомендуемый порт дляgroup_replication_local_address— 33061. Обратите внимание, что значение, которое вы указываете для этой переменной, не проверяется до тех пор, пока не будет выполнено операторSTART GROUP_REPLICATIONи доступна система групповой коммуникации (GCS).
-
group_replication_member_weightФормат командной строки --group-replication-member-weight=#Введена 5.7.20 Системная переменная group_replication_member_weightОбласть видимости Глобальная Динамическая Да Тип Целое число Значение по умолчанию 50Минимальное значение 0Максимальное значение 100Единица измерения процент Процентный вес, который может быть назначен участникам, чтобы повлиять на вероятность выбора участника в качестве основного в случае отказа, например, когда существующий основной участник покидает группу с одним основным участником. Назначьте числовые веса участникам, чтобы гарантировать выбор определенных участников, например, во время запланированного технического обслуживания основного участника или для обеспечения приоритета определенного оборудования в случае отказа.
Для группы с участниками, настроенными следующим образом:
member-1: group_replication_member_weight=30, server_uuid=aaaamember-2: group_replication_member_weight=40, server_uuid=bbbbmember-3: group_replication_member_weight=40, server_uuid=ccccmember-4: group_replication_member_weight=40, server_uuid=dddd
во время выборов нового основного участника участники выше будут отсортированы как
member-2,member-3,member-4иmember-1. Это приводит к тому, чтоmember-2 выбирается в качестве нового основного участника в случае отказа. Для получения дополнительной информации см. Раздел 17.5.1.1, «Режим с одним основным участником». -
group_replication_poll_spin_loopsФормат командной строки --group-replication-poll-spin-loops=#Введена 5.7.17 Системная переменная group_replication_poll_spin_loopsОбласть видимости Глобальная Динамическая Да Тип Целое число Значение по умолчанию 0Минимальное значение 0Максимальное значение (64-разрядные платформы) 18446744073709551615Максимальное значение (32-разрядные платформы) 4294967295Количество раз, когда поток групповой связи ожидает освобождения мьютекса коммуникационного ядра, прежде чем поток будет ожидать входящих сетевых сообщений.
-
group_replication_recovery_complete_atФормат командной строки --group-replication-recovery-complete-at=valueВведена 5.7.17 Системная переменная group_replication_recovery_complete_atОбласть видимости Глобальная Динамическая Да Тип Перечисление Значение по умолчанию TRANSACTIONS_APPLIEDДопустимые значения TRANSACTIONS_CERTIFIEDTRANSACTIONS_APPLIEDПолитики восстановления при обработке кэшированных транзакций после передачи состояния. Этот параметр указывает, помечается ли участник как онлайн после того, как он получил все транзакции, которые он пропустил до того, как присоединился к группе (
TRANSACTIONS_CERTIFIED), или после того, как он получил и применил их (TRANSACTIONS_APPLIED). -
group_replication_recovery_retry_countФормат командной строки --group-replication-recovery-retry-count=#Введена 5.7.17 Системная переменная group_replication_recovery_retry_countОбласть видимости Глобальная Динамическая Да Тип Целое число Значение по умолчанию 10Минимальное значение 0Максимальное значение 31536000Количество попыток подключения к доступным донорам, которые предпринимает присоединяющийся участник, прежде чем сдаться.
-
group_replication_recovery_reconnect_intervalФормат командной строки --group-replication-recovery-reconnect-interval=#Введена 5.7.17 Системная переменная group_replication_recovery_reconnect_intervalОбласть видимости Глобальная Динамическая Да Тип Целое число Значение по умолчанию 60Минимальное значение 0Максимальное значение 31536000Единица измерения секунды Время ожидания в секундах между попытками повторного подключения, когда в группе не был найден донор.
-
group_replication_recovery_ssl_caФормат командной строки --group-replication-recovery-ssl-ca=valueВведена 5.7.17 Системная переменная group_replication_recovery_ssl_caОбласть видимости Глобальная Динамическая Да Тип Строка Путь к файлу, содержащему список доверенных центров сертификации SSL.
-
group_replication_recovery_ssl_capathФормат командной строки --group-replication-recovery-ssl-capath=valueВведена 5.7.17 Системная переменная group_replication_recovery_ssl_capathОбласть видимости Глобальная Динамическая Да Тип Строка Путь к каталогу, содержащему сертификаты доверенных центров сертификации SSL.
-
group_replication_recovery_ssl_certФормат командной строки --group-replication-recovery-ssl-cert=valueВведена 5.7.17 Системная переменная group_replication_recovery_ssl_certОбласть видимости Глобальная Динамическая Да Тип Строка Имя файла сертификата SSL, используемого для установления защищенного соединения.
-
group_replication_recovery_ssl_keyФормат командной строки --group-replication-recovery-ssl-key=valueВведена 5.7.17 Системная переменная group_replication_recovery_ssl_keyОбласть видимости Глобальная Динамическая Да Тип Строка Имя файла ключа SSL, используемого для установления защищенного соединения.
-
group_replication_recovery_ssl_cipherФормат командной строки --group-replication-recovery-ssl-cipher=valueВведена 5.7.17 Системная переменная group_replication_recovery_ssl_cipherОбласть видимости Глобальная Динамическая Да Тип Строка Список допустимых шифров для шифрования SSL.
-
group_replication_recovery_ssl_crlФормат командной строки --group-replication-recovery-ssl-crl=valueВведена 5.7.17 Системная переменная group_replication_recovery_ssl_crlОбласть видимости Глобальная Динамическая Да Тип Имя файла Путь к каталогу, содержащему файлы со списками отзыва сертификатов.
-
group_replication_recovery_ssl_crlpathФормат командной строки --group-replication-recovery-ssl-crlpath=valueВведено 5.7.17 Системная переменная group_replication_recovery_ssl_crlpathОбласть действия Глобальная Динамическая Да Тип Имя каталога Путь к каталогу, содержащему файлы со списками отзыва сертификатов.
-
group_replication_recovery_ssl_verify_server_certФормат командной строки --group-replication-recovery-ssl-verify-server-cert[={OFF|ON}]Введено 5.7.17 Системная переменная group_replication_recovery_ssl_verify_server_certОбласть действия Глобальная Динамическая Да Тип Булево Значение по умолчанию OFFПроизводить ли проверку значения Common Name сервера в сертификате, отправленном донором, во время процесса восстановления.
-
group_replication_recovery_use_sslФормат командной строки --group-replication-recovery-use-ssl[={OFF|ON}]Введено 5.7.17 Системная переменная group_replication_recovery_use_sslОбласть действия Глобальная Динамическая Да Тип Булево Значение по умолчанию OFFИспользуется ли SSL для подключения к восстановлению Group Replication.
-
group_replication_single_primary_modeФормат командной строки --group-replication-single-primary-mode[={OFF|ON}]Введено 5.7.17 Системная переменная group_replication_single_primary_modeОбласть действия Глобальная Динамическая Да Тип Булево Значение по умолчанию ONПримечаниеЭта системная переменная является настройкой конфигурации для всей группы, и для вступления изменений в силу требуется полная перезагрузка группы репликации.
group_replication_single_primary_modeуказывает группе автоматически выбрать один сервер, который будет обрабатывать рабочую нагрузку чтения/записи. Этот сервер является первичным, а все остальные — вторичными.Эта системная переменная является настройкой конфигурации для всей группы. Она должна иметь одинаковое значение на всех участниках группы, не может быть изменена во время работы Group Replication и требует полной перезагрузки группы (bootstrap сервером с
group_replication_bootstrap_group=ON) для вступления изменений в силу. Инструкции по безопасному выполнению bootstrap группы, где были выполнены и подтверждены транзакции, см. в Разделе 17.5.4, «Перезапуск группы».Если в группе установлено значение для этой системной переменной, а у присоединяющегося члена установлено другое значение, присоединяющийся член не может присоединиться к группе до тех пор, пока значение не будет изменено для соответствия. Если у членов группы установлено значение для этой системной переменной, а у присоединяющегося члена эта системная переменная не поддерживается, он не может присоединиться к группе.
Установка этой переменной
ONприводит к игнорированию любых настроекgroup_replication_auto_increment_increment. -
Формат командной строки --group-replication-ssl-mode=valueВведено 5.7.17 Системная переменная group_replication_ssl_modeОбласть действия Глобальная Динамическая Да Тип Перечисление Значение по умолчанию DISABLEDДопустимые значения DISABLEDREQUIREDVERIFY_CAVERIFY_IDENTITYУказывает состояние безопасности соединения между членами Group Replication.
-
group_replication_start_on_bootФормат командной строки --group-replication-start-on-boot[={OFF|ON}]Введено 5.7.17 Системная переменная group_replication_start_on_bootОбласть действия Глобальная Динамическая Да Тип Булево Значение по умолчанию ONНужно ли серверу запускать Group Replication при запуске сервера.
-
group_replication_transaction_size_limitФормат командной строки --group-replication-transaction-size-limit=#Введено 5.7.19 Системная переменная group_replication_transaction_size_limitОбласть действия Глобальная Динамическая Да Тип Целое число Значение по умолчанию (≥ 5.7.38) 150000000Значение по умолчанию (≥ 5.7.19, ≤ 5.7.37) 0Минимальное значение 0Максимальное значение 2147483647Единица измерения байты Устанавливает максимальный размер транзакции в байтах, который принимает группа репликации. Транзакции, превышающие этот размер, отменяются принимающим членом и не транслируются в группе. Большие транзакции могут создать проблемы для группы репликации в плане выделения памяти, что может замедлить работу системы, или в плане потребления пропускной способности сети, что может привести к тому, что член будет заподозрен в отказе из-за высокой загрузки при обработке большой транзакции.
При установке этой системной переменной в 0 ограничений по размеру транзакций не существует. В выпусках до MySQL 5.7.37 значение по умолчанию для этой системной переменной было 0. С MySQL 5.7.38 и в MySQL 8.0 значение по умолчанию составляет 150000000 байт (приблизительно 143 МБ). Регулируйте значение этой системной переменной в зависимости от максимального размера сообщения, которое должна терпеть группа, помня о том, что время обработки транзакции пропорционально ее размеру. Значение
group_replication_transaction_size_limitдолжно быть одинаковым на всех участниках группы. Более подробные стратегии минимизации влияния больших транзакций см. в Разделе 17.3.2, «Ограничения Group Replication».
-
group_replication_unreachable_majority_timeoutФормат командной строки --group-replication-unreachable-majority-timeout=#Введено 5.7.19 Системная переменная group_replication_unreachable_majority_timeoutОбласть действия Глобальная Динамическая Да Тип Целое число Значение по умолчанию 0Минимальное значение 0Максимальное значение 31536000Единица измерения секунды Настраивает время ожидания узлов, которые находятся в результате сетевого разрыва и не могут подключиться к большинству, прежде чем покинуть группу.
В группе из 5 серверов (S1,S2,S3,S4,S5), если происходит разрыв соединения между (S1,S2) и (S3,S4,S5), возникает сетевой разрыв. Первая группа (S1,S2) теперь находится в меньшинстве, потому что не может связаться более чем с половиной группы. В то время как группа большинства (S3,S4,S5) продолжает работать, группа меньшинства ожидает указанное время для повторного подключения к сети. Все транзакции, обработанные группой меньшинства, заблокированы до тех пор, пока Group Replication не будет остановлена с помощью
STOP GROUP REPLICATIONна узлах меньшинства. Обратите внимание, чтоgroup_replication_unreachable_majority_timeoutне оказывает никакого влияния, если оно установлено на серверах в группе меньшинства после того, как было обнаружено отсутствие большинства.По умолчанию эта системная переменная установлена в 0, что означает, что узлы, которые оказываются в меньшинстве из-за сетевого разрыва, ждут вечно, чтобы покинуть группу. Если настроить на количество секунд, узлы ждут это количество времени после потери связи с большинством узлов, прежде чем покинуть группу. По истечении указанного времени все ожидающие транзакции, обработанные группой меньшинства, откатываются, и серверы в разрыве меньшинства переходят в состояние
ERROR. Затем эти серверы следуют действию, указанному системной переменнойgroup_replication_exit_state_action, которое может заключаться в переходе в режим супер-только для чтения или в завершение работы MySQL.ПредупреждениеПри симметричной группе, например, с двумя членами (S0,S2), если произойдет сетевой разрыв и не будет большинства, по истечении заданного таймаута все члены перейдут в состояние
ERROR.
© 2025 Oracle
Licensed under the GPLv2 License.