Spec-Zone.ru › MySQL 9.2

20.9.1 Переменные системы Group Replication

В этом разделе перечислены переменные системы, специфичные для плагина Group Replication.

Имя каждой переменной системы Group Replication начинается с group_replication_.

Примечание

InnoDB Cluster использует Group Replication, но значения по умолчанию для переменных системы Group Replication могут отличаться от значений, указанных в этом разделе. Например, в InnoDB Cluster значение по умолчанию для group_replication_communication_stack составляет MYSQL, а не XCOM, как в стандартной реализации Group Replication.

Для получения дополнительной информации, см. .

Некоторые переменные системы на члене группы Group Replication, включая некоторые переменные системы, специфичные для Group Replication, и некоторые общие переменные системы, являются настройками конфигурации для всей группы. Эти переменные системы должны иметь одинаковое значение на всех членах группы и требуют полного перезапуска группы (bootstrap сервером с group_replication_bootstrap_group=ON) для того, чтобы изменения значения вступили в силу. Инструкции по перезапуску группы, где каждый член остановлен, см. в Раздел 20.5.2, «Перезапуск группы».

Если у работающей группы установлено значение для настройки конфигурации всей группы, а присоединяющийся член имеет другое значение для этой переменной системы, присоединяющийся член не может присоединиться к группе до тех пор, пока значение не будет изменено, чтобы соответствовать. Если у группы установлено значение для одной из этих переменных системы, а присоединяющийся член не поддерживает переменную системы, он не может присоединиться к группе.

Следующие переменные системы являются настройками конфигурации для всей группы:

  • group_replication_single_primary_mode

  • group_replication_enforce_update_everywhere_checks

  • group_replication_gtid_assignment_block_size

  • group_replication_view_change_uuid (устаревшая)

  • group_replication_paxos_single_leader

  • group_replication_communication_stack (особый случай, не контролируемый собственными проверками Group Replication; см. описание переменной системы для получения подробностей)

  • default_table_encryption

  • lower_case_table_names

Настройки конфигурации для всей группы нельзя изменить обычными методами, когда Group Replication работает, но можно использовать функции group_replication_switch_to_single_primary_mode() и group_replication_switch_to_multi_primary_mode(), чтобы изменить значения group_replication_single_primary_mode и group_replication_enforce_update_everywhere_checks, пока группа все еще работает. Для получения дополнительной информации, см. Раздел 20.5.1.2, «Изменение режима группы».

Большинство переменных системы для Group Replication могут иметь разные значения на разных членах группы. Для следующих переменных систем рекомендуется устанавливать одинаковое значение на всех членах группы, чтобы избежать ненужных отката транзакций, сбоев доставки сообщений или сбоев восстановления сообщений:

  • group_replication_auto_increment_increment

  • group_replication_communication_max_message_size

  • group_replication_compression_threshold

  • group_replication_message_cache_size

  • group_replication_transaction_size_limit

Значение group_replication_preemptive_garbage_collection должно быть одинаковым на всех членах группы.

Большинство переменных системы для Group Replication описываются как динамические, и их значения можно изменить во время работы сервера. Однако в большинстве случаев изменения вступают в силу только после остановки и перезапуска Group Replication на члене группы с помощью инструкции STOP GROUP_REPLICATION, за которой следует инструкция START GROUP_REPLICATION. Изменения следующих переменных системы вступают в силу без остановки и перезапуска Group Replication:

  • group_replication_advertise_recovery_endpoints

  • group_replication_autorejoin_tries

  • group_replication_consistency

  • group_replication_exit_state_action

  • ...

...

END_OF_DOCUMENT_MARKER
Важно
  • Некоторые системные переменные для Group Replication не полностью проверяются во время запуска сервера, если они передаются в качестве аргументов командной строки. К таким системным переменным относятся group_replication_group_name, group_replication_single_primary_mode, group_replication_force_members, переменные SSL и переменные системы управления потоком. Они полностью проверяются только после запуска сервера.

  • Системные переменные Group Replication, указывающие IP-адреса или имена хостов для членов группы, не проверяются до тех пор, пока не будет выполнено оператор START GROUP_REPLICATION. Система групповой связи (GCS) Group Replication не может проверить значения до этого момента.

Здесь перечислены системные переменные сервера, специфичные для плагина Group Replication, вместе с описаниями их функции или назначения:

  • group_replication_advertise_recovery_endpoints

    Формат командной строки --group-replication-advertise-recovery-endpoints=value
    Системная переменная group_replication_advertise_recovery_endpoints
    Область действия Глобальная
    Динамическая Да
    Применимо к подсказке SET_VAR Нет
    Тип Строка
    Значение по умолчанию DEFAULT

    Значение этой системной переменной можно изменить во время работы Group Replication. Изменение вступает в силу немедленно на члене. Однако член, присоединившийся ранее, получивший предыдущее значение системной переменной, продолжает использовать его. Только члены, присоединившиеся после изменения значения, получают новое значение.

    group_replication_advertise_recovery_endpoints определяет, как присоединяющийся член может установить соединение с существующим членом для передачи состояния для распределенного восстановления. Соединение используется как для операций удаленного клонирования, так и для передачи состояния из двоичного лога донора.

    Значение DEFAULT, которое является значением по умолчанию, означает, что присоединяющиеся члены используют стандартное соединение клиента SQL существующего члена, как указано системными переменными MySQL Server hostname и port. Если альтернативный номер порта указан системной переменной report_port, используется он. Таблица Performance Schema replication_group_members показывает адрес и номер порта этого соединения в столбцах MEMBER_HOST и MEMBER_PORT.

    Вместо DEFAULT можно указать один или несколько конечных точек распределенного восстановления, которые существующий член рекламирует присоединяющимся членам для использования. Предоставление конечных точек распределенного восстановления позволяет администраторам контролировать трафик распределенного восстановления отдельно от обычных соединений клиентов MySQL с членами группы. Присоединяющиеся члены пробуют каждую конечную точку поочередно в порядке их указания в списке.

    Укажите конечные точки распределенного восстановления как список IP-адресов и номеров портов, разделенных запятыми, например:

    group_replication_advertise_recovery_endpoints= "127.0.0.1:3306,127.0.0.1:4567,[::1]:3306,localhost:3306"
    

    В любом сочетании могут использоваться IPv4 и IPv6 адреса и имена хостов. IPv6 адреса должны быть указаны в квадратных скобках. Имена хостов должны разрешаться до локального IP-адреса. Форматы адресов с подстановкой не могут использоваться, и вы не можете указать пустой список. Обратите внимание, что стандартное соединение клиента SQL не включается автоматически в список конечных точек распределенного восстановления. Если вы хотите использовать его как конечную точку, вы должны явно включить его в список.

    Подробности о том, как выбрать IP-адреса и порты в качестве конечных точек распределенного восстановления, и как присоединяющиеся члены их используют, см. в разделе Раздел 20.5.4.1.1, «Выбор адресов для конечных точек распределенного восстановления». Краткое изложение требований приведено ниже:

    • IP-адреса не нужно настраивать для MySQL Server, но они должны быть назначены серверу.

    • Порты должны быть настроены для MySQL Server с использованием системных переменных port, report_port или admin_port.

    • Для распределенного восстановления требуются соответствующие разрешения для пользователя репликации, если используется admin_port.

    • IP-адреса не нужно добавлять в список разрешенных IP-адресов Group Replication, указанный системной переменной group_replication_ip_allowlist.

    • Требования SSL к соединению соответствуют указанным параметрам group_replication_recovery_ssl_*.

  • group_replication_allow_local_lower_version_join

    Формат командной строки --group-replication-allow-local-lower-version-join[={OFF|ON}]
    Устарело Да
    Системная переменная group_replication_allow_local_lower_version_join
    Область действия Глобальная
    Динамическая Да
    Применимо к подсказке SET_VAR Нет
    Тип Булево
    Значение по умолчанию OFF

    Значение этой системной переменной можно изменить во время работы Group Replication, но изменение вступает в силу только после остановки и перезапуска Group Replication на члене группы.

    group_replication_allow_local_lower_version_join разрешает текущему серверу присоединиться к группе, даже если он работает с более старой версией MySQL Server, чем группа. По умолчанию OFF серверы не могут присоединиться к группе репликации, если они работают с более старой версией, чем существующие члены группы. Эта стандартная политика гарантирует, что все члены группы могут обмениваться сообщениями и применять транзакции.

    Установите group_replication_allow_local_lower_version_join в ON только в следующих случаях:

    • Сервер должен быть добавлен в группу в экстренном порядке для повышения отказоустойчивости группы, и доступны только более старые версии.

    • Вы хотите откатить обновление для одного или нескольких членов группы репликации без остановки всей группы и повторной инициализации.

    Предупреждение

    Установка этого параметра в ON не делает новый член совместимым с группой и позволяет ему присоединиться к группе без каких-либо гарантий против несовместимого поведения существующих членов. Для обеспечения правильной работы нового члена выполните обе следующие предосторожности:

    1. Перед присоединением сервера с более старой версией к группе прекратите все записи на этом сервере.

    2. С момента присоединения сервера с более старой версией к группе прекратите все записи на других серверах в группе.

    Без этих предосторожностей сервер с более старой версией, скорее всего, столкнется с трудностями и завершится с ошибкой.

  • group_replication_auto_increment_increment

    Формат командной строки --group-replication-auto-increment-increment=#
    Системная переменная group_replication_auto_increment_increment
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Целое число
    Значение по умолчанию 7
    Минимальное значение 1
    Максимальное значение 65535

    Эта системная переменная должна иметь одинаковое значение на всех участниках группы. Вы не можете изменить значение этой системной переменной, пока работает Групповая репликация. Вы должны остановить Групповую репликацию, изменить значение системной переменной, а затем перезапустить Групповую репликацию на каждом из участников группы. Во время этого процесса значение системной переменной может отличаться между участниками группы, но некоторые транзакции на участниках группы могут быть отменены.

    group_replication_auto_increment_increment определяет интервал между последовательными значениями для автоинкрементируемых столбцов для транзакций, которые выполняются на этом экземпляре сервера. Добавление интервала предотвращает выбор дублирующихся значений автоинкремента для записей на участниках группы, что приводит к отмене транзакций. Значение по умолчанию 7 представляет собой баланс между количеством используемых значений и допустимым максимальным размером группы репликации (9 участников). Если ваша группа имеет больше или меньше участников, вы можете установить эту системную переменную в соответствии с ожидаемым количеством участников группы перед запуском Групповой репликации.

    Важно

    Установка group_replication_auto_increment_increment не оказывает никакого эффекта, когда group_replication_single_primary_mode находится в режиме ON.

    Когда Групповая репликация запускается на экземпляре сервера, значение системной переменной сервера auto_increment_increment изменяется на это значение, а значение системной переменной сервера auto_increment_offset изменяется на идентификатор сервера. Изменения отменяются при остановке Групповой репликации. Эти изменения производятся и отменяются только в том случае, если auto_increment_increment и auto_increment_offset имеют по умолчанию значение 1. Если их значения уже изменены с значения по умолчанию, Групповая репликация их не изменяет. Системные переменные также не изменяются, когда Групповая репликация находится в режиме с одним первичным сервером, где запись выполняется только на одном сервере.

  • group_replication_autorejoin_tries

    Формат командной строки --group-replication-autorejoin-tries=#
    Системная переменная group_replication_autorejoin_tries
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Целое число
    Значение по умолчанию 3
    Минимальное значение 0
    Максимальное значение 2016

    Значение этой системной переменной можно изменить, пока работает Групповая репликация, и изменение вступит в силу немедленно. Текущее значение системной переменной считывается при возникновении проблемы, требующей этого поведения.

    group_replication_autorejoin_tries указывает количество попыток, которые делает участник, чтобы автоматически присоединиться к группе, если он исключен или не может связаться с большинством группы до достижения значения group_replication_unreachable_majority_timeout. При достижении времени исключения участника или истечения времени ожидания большинства он пытается присоединиться (используя текущие значения параметров плагина), а затем продолжает предпринимать дополнительные попытки автоматического присоединения до указанного количества попыток. После неудачной попытки автоматического присоединения участник ожидает 5 минут перед следующей попыткой. Если указанное количество попыток исчерпано без присоединения участника или его остановки, участник переходит к действию, указанному системной переменной group_replication_exit_state_action.

    Во время и между попытками автоматического присоединения участник остается в режиме супер-только для чтения и не принимает записи, но чтение всё ещё может осуществляться на участнике, с возрастающей вероятностью устаревших чтений со временем. Если вы не можете допустить возможности устаревших чтений в течение любого периода времени, установите group_replication_autorejoin_tries в 0. Для получения дополнительной информации об функции автоматического присоединения и соображениях при выборе значения для этого параметра, см. Раздел 20.7.7.3, «Автоматическое присоединение».

  • group_replication_bootstrap_group

    Формат командной строки --group-replication-bootstrap-group[={OFF|ON}]
    Системная переменная group_replication_bootstrap_group
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Булево
    Значение по умолчанию OFF

    group_replication_bootstrap_group настраивает этот сервер для инициализации группы. Эту системную переменную необходимо только установить на одном сервере, только при первом запуске группы или при перезапуске всей группы. После инициализации группы установите этот параметр в OFF. Он должен быть установлен в OFF как динамически, так и в конфигурационных файлах. Запуск двух серверов или перезапуск одного сервера с этим параметром, установленным во время работы группы, может привести к искусственной ситуации раздвоения мозга, когда две независимые группы с одинаковым именем будут инициализированы.

    Инструкции по инициализации группы в первый раз см. в Разделе 20.2.1.5, «Инициализация группы». Инструкции по безопасной инициализации группы, где были выполнены и подтверждены транзакции, см. в Разделе 20.5.2, «Перезапуск группы».

  • group_replication_clone_threshold

    Формат командной строки --group-replication-clone-threshold=#
    Системная переменная group_replication_clone_threshold
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется ли подсказка Нет
    Тип Целое число
    Значение по умолчанию 9223372036854775807
    Минимальное значение 1
    Максимальное значение 9223372036854775807
    Единицы измерения транзакций

    Значение этой системной переменной можно изменить во время работы Group Replication, но изменение вступит в силу только после остановки и перезапуска Group Replication на узле группы.

    group_replication_clone_threshold задает разрыв транзакций в количестве транзакций между существующим узлом (донором) и присоединяющимся узлом (получателем), который инициирует использование удаленной операции клонирования для передачи состояния присоединяющемуся узлу во время процесса распределенного восстановления. Если разрыв транзакций между присоединяющимся узлом и подходящим донором превышает порог, Group Replication начинает распределенное восстановление с помощью операции удаленного клонирования. Если разрыв транзакций меньше порога или если удаленная операция клонирования технически невозможна, Group Replication переходит непосредственно к передаче состояния с двоичного журнала донора.

    Предупреждение

    Не устанавливайте низкое значение для group_replication_clone_threshold в активной группе. Если в группе произойдет количество транзакций, превышающее порог, в то время, когда выполняется операция удаленного клонирования, присоединяющийся узел снова инициирует удаленную операцию клонирования после перезапуска и может продолжать это бесконечно. Чтобы избежать этой ситуации, убедитесь, что порог установлен выше, чем ожидаемое количество транзакций в группе за время, необходимое для удаленной операции клонирования.

    Чтобы использовать эту функцию, донор и присоединяющийся узел должны быть предварительно настроены для поддержки клонирования. Инструкции см. в Раздел 20.5.4.2, «Клонирование для распределенного восстановления». При выполнении удаленной операции клонирования Group Replication управляет ею за вас, включая необходимую перезагрузку сервера, при условии, что group_replication_start_on_boot=ON установлено. В противном случае необходимо перезагрузить сервер вручную. Удаленная операция клонирования заменяет существующий словарь данных на присоединяющемся узле, но Group Replication проверяет и не продолжает, если присоединяющийся узел имеет дополнительные транзакции, отсутствующие на других узлах группы, поскольку эти транзакции будут удалены операцией клонирования.

    Значение по умолчанию (которое является максимальным разрешенным порядковым номером транзакции в GTID) означает, что передача состояния с двоичного журнала донора практически всегда будет выполняться, а не клонирование. Однако обратите внимание, что Group Replication всегда пытается выполнить операцию клонирования, независимо от вашего порога, если передача состояния с двоичного журнала донора невозможна, например, потому что транзакции, необходимые присоединяющемуся узлу, недоступны в двоичных журналах любого существующего узла группы. Если вы вообще не хотите использовать клонирование в вашей группе репликации, не устанавливайте плагин клонирования на узлы.

  • group_replication_communication_debug_options

    Формат командной строки --group-replication-communication-debug-options=value
    Системная переменная group_replication_communication_debug_options
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется ли подсказка Нет
    Тип Строка
    Значение по умолчанию GCS_DEBUG_NONE
    Допустимые значения

    GCS_DEBUG_NONE

    GCS_DEBUG_BASIC

    GCS_DEBUG_TRACE

    XCOM_DEBUG_BASIC

    XCOM_DEBUG_TRACE

    GCS_DEBUG_ALL

    Значение этой системной переменной можно изменить во время работы Group Replication, и изменение вступит в силу немедленно.

    group_replication_communication_debug_options настраивает уровень сообщений отладки для различных компонентов Group Replication, таких как система групповой связи (GCS) и движок групповой связи (XCom, вариант Paxos). Информация отладки хранится в файле GCS_DEBUG_TRACE в каталоге данных.

    Набор доступных параметров, указанных как строки, может быть объединен. Доступны следующие параметры:

    • GCS_DEBUG_NONE отключает все уровни отладки для GCS и XCom.

    • GCS_DEBUG_BASIC включает основные сведения об отладке в GCS.

    • GCS_DEBUG_TRACE включает трассировку в GCS.

    • XCOM_DEBUG_BASIC включает основные сведения об отладке в XCom.

    • XCOM_DEBUG_TRACE включает трассировку в XCom.

    • GCS_DEBUG_ALL включает все уровни отладки для GCS и XCom.

    Установка уровня отладки на GCS_DEBUG_NONE имеет эффект только при указании без других параметров. Установка уровня отладки на GCS_DEBUG_ALL переопределяет все другие параметры.

  • group_replication_communication_max_message_size

    Формат командной строки --group-replication-communication-max-message-size=#
    Системная переменная group_replication_communication_max_message_size
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется ли подсказка Нет
    Тип Целое число
    Значение по умолчанию 10485760
    Минимальное значение 0
    Максимальное значение 1073741824
    Единицы измерения байты

    Эта системная переменная должна иметь одинаковое значение на всех узлах группы. Вы не можете изменить значение этой системной переменной во время работы Group Replication. Вам необходимо остановить Group Replication, изменить значение системной переменной, а затем перезапустить Group Replication на каждом из узлов группы. Во время этого процесса значение системной переменной может отличаться между узлами группы, но некоторые транзакции на узлах группы могут быть отменены.

    group_replication_communication_max_message_size задает максимальный размер сообщения для связи Group Replication. Сообщения, превышающие этот размер, автоматически разбиваются на фрагменты, которые отправляются по отдельности и собираются получателями. Дополнительные сведения см. в Раздел 20.7.5, «Разбиение сообщений на фрагменты».

    Максимальный размер сообщения по умолчанию составляет 10485760 байт (10 МБ), что означает, что фрагментация используется по умолчанию. Наибольшее допустимое значение такое же, как максимальное значение системной переменной replica_max_allowed_packet, которое составляет 1073741824 байта (1 ГБ). group_replication_communication_max_message_size должно быть меньше replica_max_allowed_packet, так как поток обработчика приложений не может обрабатывать фрагменты сообщений, размер которых больше максимального разрешенного размера пакета. Чтобы отключить фрагментацию, установите group_replication_communication_max_message_size в значение 0.

    Для того чтобы члены группы репликации могли использовать фрагментацию, версия протокола связи группы должна быть 8.0.16 или более поздней. Используйте функцию group_replication_get_communication_protocol() для просмотра версии протокола связи группы. Если используется более ранняя версия, члены группы не фрагментируют сообщения. Вы можете использовать функцию group_replication_set_communication_protocol() для установки протокола связи группы на более высокую версию, если все члены группы ее поддерживают. Дополнительные сведения см. в Раздел 20.5.1.4, «Установка версии протокола связи группы».

  • group_replication_communication_stack

    Переменная системы group_replication_communication_stack
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется ли подсказка Нет
    Тип Строка
    Значение по умолчанию XCOM
    Допустимые значения

    XCOM

    MYSQL

    Примечание

    Эта переменная системы фактически является настройкой конфигурации для всей группы; хотя ее можно задать во время выполнения, для вступления изменений в силу требуется полная перезагрузка группы репликации.

    group_replication_communication_stack определяет, использовать ли стека связи XCom или стека связи MySQL для установления соединений связи между членами группы. Стек связи XCom — это собственная реализация Group Replication, и он не поддерживает аутентификацию или пространства имён сети. Стек связи MySQL — это собственная реализация MySQL Server, поддерживающая аутентификацию и пространства имён сети, и доступ к новым функциям безопасности сразу после выпуска. Все члены группы должны использовать один и тот же стек связи.

    При использовании стека связи MySQL вместо XCom MySQL Server устанавливает каждое соединение между членами группы с помощью собственных протоколов аутентификации и шифрования.

    Примечание

    Если вы используете InnoDB Cluster, значение по умолчанию для group_replication_communication_stack равно MYSQL.

    Для получения дополнительной информации см. .

    При настройке группы для использования стека связи MySQL требуется дополнительная настройка; см. Раздел 20.6.1, «Управление стеком связи для обеспечения безопасности подключения».

    group_replication_communication_stack фактически является настройкой конфигурации для всей группы, и это значение должно быть одинаковым на всех участниках группы. Однако Group Replication не контролирует это с помощью собственных проверок настройка конфигурации всей группы. Член с другим значением, отличным от остальных участников группы, не может вообще взаимодействовать с другими членами, поскольку протоколы связи несовместимы, поэтому он не может обмениваться информацией о своих настройках.

    Это означает, что, хотя значение переменной системы можно изменить во время работы Group Replication, и оно вступит в силу после перезапуска Group Replication на участнике группы, участник по-прежнему не может присоединиться к группе до тех пор, пока значение не будет изменено на всех участниках. Поэтому вам необходимо остановить Group Replication на всех участниках и изменить значение переменной системы на всех участниках перед повторным запуском группы. Поскольку все участники остановлены, для вступления изменений в силу требуется полная перезагрузка группы (бустроп на сервере с group_replication_bootstrap_group=ON). Инструкции по миграции между стеками связи см. в Разделе 20.6.1, «Управление стеком связи для обеспечения безопасности подключения».

  • group_replication_components_stop_timeout

    Формат командной строки --group-replication-components-stop-timeout=#
    Переменная системы group_replication_components_stop_timeout
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется ли подсказка Нет
    Тип Целое число
    Значение по умолчанию 300
    Минимальное значение 2
    Максимальное значение 31536000
    Единицы измерения секунды

    Значение этой переменной системы можно изменить во время работы Group Replication, но изменение вступит в силу только после остановки и перезапуска Group Replication на участнике группы.

    group_replication_components_stop_timeout указывает время (в секундах), в течение которого Group Replication ожидает завершения текущих процессов каждого из своих модулей при выходе из системы. Таймаут компонента применяется после выполнения оператора STOP GROUP_REPLICATION, который происходит автоматически при перезапуске сервера или автоматическом повторном присоединении.

    Таймаут используется для решения ситуаций, когда компоненты Group Replication не могут быть остановлены стандартным образом, что может произойти, если участник был исключён из группы во время ошибочного состояния или во время работы процесса, такого как MySQL Enterprise Backup, который удерживает глобальную блокировку таблиц на участнике. В таких ситуациях участник не может остановить поток applier или завершить процесс распределённого восстановления для повторного присоединения. STOP GROUP_REPLICATION не завершается до тех пор, пока ситуация не будет решена (например, блокировка не будет освобождена) или таймаут компонента не истечёт, и модули будут остановлены независимо от их состояния.

    Значение по умолчанию — 300 секунд, поэтому компоненты Group Replication останавливаются через 5 минут, если ситуация не будет решена до этого времени, что позволит участнику перезапуститься и повторно присоединиться.

  • group_replication_compression_threshold

    Формат командной строки --group-replication-compression-threshold=#
    Переменная системы group_replication_compression_threshold
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется ли подсказка Нет
    Тип Целое число
    Значение по умолчанию 1000000
    Минимальное значение 0
    Максимальное значение 4294967295
    Единицы измерения байты

    Значение порога в байтах, выше которого применяется сжатие к сообщениям, отправляемым между участниками группы. Если эта переменная системы установлена в ноль, сжатие отключено. Значение group_replication_compression_threshold должно быть одинаковым на всех участниках группы.

    Group Replication использует алгоритм сжатия LZ4 для сжатия сообщений, отправляемых в группе. Обратите внимание, что максимальный размер входных данных для алгоритма сжатия LZ4 составляет 2113929216 байт. Это ограничение меньше максимального возможного значения переменной системы group_replication_compression_threshold, которое соответствует максимальному размеру сообщения, принимаемого XCom. При использовании алгоритма сжатия LZ4 не следует устанавливать значение, превышающее 2113929216 байт для group_replication_compression_threshold, так как транзакции, превышающие этот размер, не могут быть подтверждены при включенном сжатии сообщений.

    Для получения дополнительной информации см. Раздел 20.7.4, «Сжатие сообщений».

  • group_replication_consistency

    Формат командной строки --group-replication-consistency=value
    Системная переменная group_replication_consistency
    Область Глобальная, Сеанс
    Динамическая Да
    SET_VAR Применимо к подсказке Нет
    Тип Перечисление
    Значение по умолчанию BEFORE_ON_PRIMARY_FAILOVER
    Допустимые значения

    EVENTUAL

    BEFORE_ON_PRIMARY_FAILOVER

    BEFORE

    AFTER

    BEFORE_AND_AFTER

    group_replication_consistency — это системная переменная сервера, а не переменная, специфичная для плагина Group Replication, поэтому перезапуск Group Replication не требуется для вступления изменения в силу. Изменение сеансового значения системной переменной вступает в силу немедленно, а изменение глобального значения вступает в силу для новых сеансов, начатых после изменения. Для изменения глобального параметра этой системной переменной требуется привилегия GROUP_REPLICATION_ADMIN.

    group_replication_consistency определяет гарантию согласованности транзакций, предоставляемую группой; это можно сделать глобально или для каждой транзакции. group_replication_consistency также определяет механизм блокировки, используемый вновь избранными первичными серверами в группах с одним первичным сервером. Следует учитывать влияние переменной как для только-для-чтения, так и для чтение/запись транзакций. Следующий список показывает возможные значения этой переменной в порядке возрастания гарантии согласованности транзакций:

    • EVENTUAL

      Ни только-для-чтения, ни чтение/запись транзакции не ожидают применения предшествующих транзакций перед выполнением. (До добавления этой переменной это было стандартное поведение.) Транзакция чтение/запись не ожидает применения транзакции другими участниками. Это означает, что транзакция может быть экспортирована на один участник до того, как будут применены транзакции на других. Это также означает, что в случае переключения первичного сервера новый первичный сервер может принять новые транзакции только для чтения и чтение/запись до тех пор, пока все транзакции предыдущего первичного сервера не будут применены.

    • BEFORE_ON_PRIMARY_FAILOVER

      Новые транзакции только для чтения или чтение/запись с вновь избранным первичным сервером, который применяет отставание от старого первичного сервера, не применяются до тех пор, пока не будет применено все отставание. Это гарантирует, что в случае переключения первичного сервера клиенты всегда видят последнее значение на первичном сервере, независимо от того, было ли переключение преднамеренным. Это гарантирует согласованность, но означает, что клиенты должны уметь обрабатывать задержку в случае применения отставания. Длительность этой задержки зависит от размера обрабатываемого отставания, но обычно невелика.

    • BEFORE

      Транзакция чтение/запись ожидает завершения всех предшествующих транзакций перед применением. Транзакция только для чтения ожидает завершения всех предшествующих транзакций перед выполнением. Это гарантирует, что эта транзакция считывает последнее значение, влияя только на задержку транзакции. Это снижает любую издержки от синхронизации, обеспечивая её использование только для транзакций только для чтения. Этот уровень согласованности также включает гарантии согласованности, предоставляемые BEFORE_ON_PRIMARY_FAILOVER.

    • AFTER

      Транзакция чтение/запись ожидает, пока её изменения не будут применены ко всем другим участникам. Это значение не влияет на транзакции только для чтения и гарантирует, что при подтверждении транзакции на локальном участнике любая последующая транзакция считывает записанное значение или более позднее значение на любом участнике группы. Это означает, что транзакции только для чтения на других участниках остаются незавершенными до тех пор, пока все предшествующие транзакции не будут завершены, увеличивая задержку затронутой транзакции.

      Используйте этот режим с группой, предназначенной в первую очередь для операций только для чтения, чтобы гарантировать, что любые транзакции чтение/запись будут применены повсюду после их подтверждения. Это можно использовать в вашем приложении, чтобы гарантировать, что последующие считывания извлекают последние данные, включая последние записи. Это снижает любые издержки от синхронизации, обеспечивая использование синхронизации только для транзакций чтение/запись.

      AFTER включает в себя гарантии согласованности, предоставляемые BEFORE_ON_PRIMARY_FAILOVER.

    • BEFORE_AND_AFTER

      Транзакция чтение/запись ожидает завершения всех предшествующих транзакций и применения всех её изменений на всех других участниках перед применением. Транзакция только для чтения ожидает завершения всех предшествующих транзакций перед выполнением. Этот уровень согласованности также включает гарантии согласованности, предоставляемые BEFORE_ON_PRIMARY_FAILOVER.

    Дополнительную информацию см. в разделе 20.5.3, «Гарантии согласованности транзакций».

  • group_replication_enforce_update_everywhere_checks

    Формат командной строки --group-replication-enforce-update-everywhere-checks[={OFF|ON}]
    Системная переменная group_replication_enforce_update_everywhere_checks
    Область Глобальная
    Динамическая Да
    SET_VAR Применимо к подсказке Нет
    Тип Булево
    Значение по умолчанию OFF
    Примечание

    Эта системная переменная — это групповая конфигурационная настройка, и для вступления изменения в силу требуется полная перезагрузка группы репликации.

    group_replication_enforce_update_everywhere_checks включает или отключает строгие проверки согласованности для обновления во всех первичных серверах. По умолчанию проверки отключены. В режиме с одним первичным сервером этот параметр должен быть отключён на всех участниках группы. В режиме с несколькими первичными серверами, при включении этого параметра, операторы проверяются следующим образом, чтобы убедиться, что они совместимы с режимом с несколькими первичными серверами:

    • Если транзакция выполняется с уровнем изоляции SERIALIZABLE, то её подтверждение отклоняется при синхронизации с группой.

    • Если транзакция выполняется над таблицей, которая имеет внешние ключи с каскадными ограничениями, то транзакция не подтверждается при синхронизации с группой.

    Эта системная переменная является групповой конфигурационной настройкой. Она должна иметь одинаковое значение на всех участниках группы, не может быть изменена во время работы Group Replication и требует полной перезагрузки группы (bootstrap сервером с group_replication_bootstrap_group=ON) для вступления изменения в силу. Инструкции по безопасному запуску группы, где были выполнены и проверены транзакции, см. в разделе 20.5.2, «Перезапуск группы».

    Если в группе установлено значение для этой системной переменной, а присоединяющийся участник имеет другое значение для системной переменной, присоединяющийся участник не может присоединиться к группе до тех пор, пока значение не будет изменено для соответствия. Если значения участников группы установлены для этой системной переменной, а присоединяющийся участник не поддерживает системную переменную, он не может присоединиться к группе.

    Используйте функции group_replication_switch_to_single_primary_mode() и group_replication_switch_to_multi_primary_mode() для изменения значения этой системной переменной, пока группа не запущена. Дополнительную информацию см. в разделе 20.5.1.2, «Изменение режима группы».

  • group_replication_exit_state_action

    Формат командной строки --group-replication-exit-state-action=value
    Системная переменная group_replication_exit_state_action
    Область видимости Глобальная
    Динамическая Да
    SET_VAR Подсказка применима Нет
    Тип Перечисление
    Значение по умолчанию OFFLINE_MODE
    Допустимые значения

    ABORT_SERVER

    OFFLINE_MODE

    READ_ONLY

    Значение этой системной переменной может быть изменено во время работы Group Replication, и изменение вступает в силу немедленно. Текущее значение системной переменной считывается при возникновении проблемы, которая означает, что необходимо соответствующее поведение.

    group_replication_exit_state_action настраивает поведение Group Replication, когда этот экземпляр сервера выходит из группы непреднамеренно, например, после ошибки приложения, или в случае потери большинства, или когда другой член группы изгоняет его из-за подозрения, истекающего по времени. Период ожидания для выхода члена из группы в случае потери большинства задается системной переменной group_replication_unreachable_majority_timeout, а период ожидания для подозрительных действий задается системной переменной group_replication_member_expel_timeout. Обратите внимание, что изгнанный член группы не знает, что он был изгнан, пока не подключится к группе, поэтому указанное действие выполняется только в том случае, если члену удается подключиться или если член поднимает подозрение на себя и изгоняет себя.

    Когда член группы изгоняется из-за истечения времени ожидания подозрения или потери большинства, если у члена установлена системная переменная group_replication_autorejoin_tries для указания числа попыток автоматического повторного подключения, он сначала делает указанное количество попыток в режиме супер-только-для-чтения, а затем выполняет действие, указанное в group_replication_exit_state_action. Попытки автоматического повторного подключения не выполняются в случае ошибки приложения, поскольку они не подлежат восстановлению.

    Когда group_replication_exit_state_action установлено в READ_ONLY, если член выходит из группы непреднамеренно или исчерпывает свои попытки автоматического повторного подключения, экземпляр переключает MySQL в режим супер-только-для-чтения (устанавливая системную переменную super_read_only в ON).

    Когда group_replication_exit_state_action установлено в OFFLINE_MODE, если член выходит из группы непреднамеренно или исчерпывает свои попытки автоматического повторного подключения, экземпляр переключает MySQL в автономный режим (устанавливая системную переменную offline_mode в ON). В этом режиме подключенные пользователи-клиенты отключаются при следующем запросе, и новые подключения больше не принимаются, за исключением пользователей-клиентов, имеющих привилегию CONNECTION_ADMIN (или устаревшую привилегию SUPER). Group Replication также устанавливает системную переменную super_read_only в ON, поэтому клиенты не могут вносить какие-либо обновления, даже если они подключились с привилегией CONNECTION_ADMIN или SUPER.

    Когда group_replication_exit_state_action установлено в ABORT_SERVER, если член выходит из группы непреднамеренно или исчерпывает свои попытки автоматического повторного подключения, экземпляр завершает работу MySQL.

    Важно

    Если ошибка возникает до того, как член успешно присоединился к группе, указанное действие выхода не выполняется. Это имеет место, если возникает ошибка во время локальной проверки конфигурации или несоответствие между конфигурацией присоединяющегося члена и конфигурацией группы. В этих ситуациях системная переменная super_read_only сохраняет свое исходное значение, подключения продолжают приниматься, и сервер не завершает работу MySQL. Чтобы гарантировать, что сервер не может принимать обновления, когда Group Replication не запущен, мы рекомендуем установить super_read_only=ON в конфигурационном файле сервера при запуске, который Group Replication изменяет на OFF на основных членах после успешного запуска. Эта защита особенно важна, когда сервер настроен на запуск Group Replication при загрузке сервера (group_replication_start_on_boot=ON), но она также полезна, когда Group Replication запускается вручную с помощью команды START GROUP_REPLICATION.

    Для получения дополнительной информации об использовании этого параметра и полного списка ситуаций, в которых выполняется действие выхода, см. Раздел 20.7.7.4, «Действие выхода».

  • group_replication_flow_control_applier_threshold

    Формат командной строки --group-replication-flow-control-applier-threshold=#
    Системная переменная group_replication_flow_control_applier_threshold
    Область видимости Глобальная
    Динамическая Да
    SET_VAR Подсказка применима Нет
    Тип Целое число
    Значение по умолчанию 25000
    Минимальное значение 0
    Максимальное значение 2147483647
    Единица измерения транзакции

    Значение этой системной переменной может быть изменено во время работы Group Replication, и изменение вступает в силу немедленно.

    group_replication_flow_control_applier_threshold указывает количество ожидающих транзакций в очереди приложения, которые запускают управление потоком.

  • group_replication_flow_control_certifier_threshold

    Формат командной строки --group-replication-flow-control-certifier-threshold=#
    Системная переменная group_replication_flow_control_certifier_threshold
    Область видимости Глобальная
    Динамическая Да
    SET_VAR Подсказка применима Нет
    Тип Целое число
    Значение по умолчанию 25000
    Минимальное значение 0
    Максимальное значение 2147483647
    Единица измерения транзакции

    Значение этой системной переменной может быть изменено во время работы Group Replication, и изменение вступает в силу немедленно.

    group_replication_flow_control_certifier_threshold указывает количество ожидающих транзакций в очереди удостоверяющего центра, которые запускают управление потоком.

  • group_replication_flow_control_hold_percent

    Формат командной строки --group-replication-flow-control-hold-percent=#
    Системная переменная group_replication_flow_control_hold_percent
    Область видимости Глобальная
    Динамическая Да
    SET_VAR Подсказка применима Нет
    Тип Целое число
    Значение по умолчанию 10
    Минимальное значение 0
    Максимальное значение 100
    Единица измерения проценты

    Значение этой системной переменной может быть изменено во время работы Group Replication, и изменение вступает в силу немедленно.

    group_replication_flow_control_hold_percent определяет, какой процент групповой квоты остается неиспользованным, чтобы позволить кластеру, находящемуся под управлением потока, наверстать упущенное. Значение 0 означает, что никакая часть квоты не резервируется для обработки накопившейся работы.

  • group_replication_flow_control_max_quota

    Формат командной строки --group-replication-flow-control-max-quota=#
    Системная переменная group_replication_flow_control_max_quota
    Область видимости Глобальная
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Целое число
    Значение по умолчанию 0
    Минимальное значение 0
    Максимальное значение 2147483647

    Значение этой системной переменной может быть изменено во время работы Group Replication, и изменения вступают в силу немедленно.

    group_replication_flow_control_max_quota определяет максимальную квоту контроля потока группы или максимальную доступную квоту для любого периода, пока включен контроль потока. Значение 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
    Область видимости Глобальная
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Целое число
    Значение по умолчанию 0
    Минимальное значение 0
    Максимальное значение 100
    Единица измерения процент

    Значение этой системной переменной может быть изменено во время работы Group Replication, и изменения вступают в силу немедленно.

    group_replication_flow_control_member_quota_percent определяет процент квоты, который член должен предположить доступным для себя при расчете квот. Значение 0 означает, что квота должна быть разделена поровну между членами, которые были писателями в последний период.

  • group_replication_flow_control_min_quota

    Формат командной строки --group-replication-flow-control-min-quota=#
    Системная переменная group_replication_flow_control_min_quota
    Область видимости Глобальная
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Целое число
    Значение по умолчанию 0
    Минимальное значение 0
    Максимальное значение 2147483647

    Значение этой системной переменной может быть изменено во время работы Group Replication, и изменения вступают в силу немедленно.

    group_replication_flow_control_min_quota управляет самой низкой квотой контроля потока, которая может быть назначена члену, независимо от рассчитанной минимальной квоты, выполненной в последний период. Значение 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
    Область видимости Глобальная
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Целое число
    Значение по умолчанию 0
    Минимальное значение 0
    Максимальное значение 2147483647

    Значение этой системной переменной может быть изменено во время работы Group Replication, и изменения вступают в силу немедленно.

    group_replication_flow_control_min_recovery_quota управляет самой низкой квотой, которая может быть назначена члену из-за другого восстанавливающегося члена в группе, независимо от рассчитанной минимальной квоты, выполненной в последний период. Значение 0 означает, что минимальной квоты нет. Значение этой системной переменной не может быть больше, чем group_replication_flow_control_max_quota.

  • group_replication_flow_control_mode

    Формат командной строки --group-replication-flow-control-mode=value
    Системная переменная group_replication_flow_control_mode
    Область видимости Глобальная
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Перечисление
    Значение по умолчанию QUOTA
    Допустимые значения

    DISABLED

    QUOTA

    Значение этой системной переменной может быть изменено во время работы Group Replication, и изменения вступают в силу немедленно.

    group_replication_flow_control_mode указывает режим, используемый для контроля потока.

  • group_replication_flow_control_period

    Формат командной строки --group-replication-flow-control-period=#
    Системная переменная group_replication_flow_control_period
    Область видимости Глобальная
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Целое число
    Значение по умолчанию 1
    Минимальное значение 1
    Максимальное значение 60
    Единица измерения секунды

    Значение этой системной переменной может быть изменено во время работы Group Replication, и изменения вступают в силу немедленно.

    group_replication_flow_control_period определяет, сколько секунд ждать между итерациями контроля потока, в которых отправляются сообщения контроля потока и выполняются задачи управления контролем потока.

  • group_replication_flow_control_release_percent

    Формат командной строки --group-replication-flow-control-release-percent=#
    Системная переменная group_replication_flow_control_release_percent
    Область видимости Глобальная
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Целое число
    Значение по умолчанию 50
    Минимальное значение 0
    Максимальное значение 1000
    Единица измерения процент

    Значение этой системной переменной может быть изменено во время работы Group Replication, и изменения вступают в силу немедленно.

    group_replication_flow_control_release_percent определяет, как должна быть освобождена групповая квота, когда контроль потока больше не нуждается в ограничении членов-записывающих устройств, при этом этот процент является увеличением квоты за период контроля потока. Значение 0 означает, что как только пороговые значения контроля потока находятся в пределах допустимых значений, квота освобождается за одну итерацию контроля потока. Диапазон позволяет освобождать квоту до 10 раз текущей квоты, поскольку это обеспечивает большую степень адаптации, в основном, когда период контроля потока велик, а квоты очень малы.

  • group_replication_force_members

    Формат командной строки --group-replication-force-members=value
    Системная переменная group_replication_force_members
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применимо к подсказке Нет
    Тип Строка

    Эта системная переменная используется для принудительного обновления списка участников группы. Значение этой системной переменной можно изменить во время работы Групповой репликации, и изменение вступит в силу немедленно. Вам нужно установить значение системной переменной только на одном из участников группы, который должен остаться в группе. Подробности о ситуации, в которой вам может потребоваться принудительное обновление списка участников группы, и процедура, которой следует следовать при использовании этой системной переменной, см. в Разделе 20.7.8, «Обработка сетевого разбиения и потери кворума».

    group_replication_force_members определяет список адресов узлов через запятую, например, host1:port1,host2:port2. Любые существующие участники, которые не включены в список, не получат нового представления о группе и будут заблокированы. Для каждого существующего участника, который должен продолжить быть участником, необходимо указать IP-адрес или имя хоста и порт, как указано в системной переменной group_replication_local_address для каждого участника. IPv6-адрес должен быть указан в квадратных скобках. Например:

    "198.51.100.44:33061,[2001:db8:85a3:8d3:1319:8a2e:370:7348]:33061,example.org:33061"

    Движок групповой коммуникации для Групповой репликации (XCom) проверяет, что указанные IP-адреса имеют допустимый формат, и что вы не включили участников группы, которые в настоящее время недоступны. В противном случае новая конфигурация не проверяется, поэтому необходимо тщательно включать только онлайн-серверы, которые являются доступными участниками группы. Любые некорректные значения или недопустимые имена хостов в списке могут привести к блокировке группы с недопустимой конфигурацией.

    Перед принудительной установкой новой конфигурации участников важно убедиться, что исключаемые серверы выключены. Если нет, выключите их перед продолжением. Участники группы, которые все еще онлайн, могут автоматически создавать новые конфигурации, и если это уже произошло, принудительное создание новой конфигурации может привести к искусственной ситуации «разделенного мозга» для группы.

    После успешного принудительного обновления списка участников группы и разблокировки группы с помощью системной переменной group_replication_force_members, убедитесь, что вы очистите системную переменную. group_replication_force_members должно быть пустым, чтобы выполнить оператор START GROUP_REPLICATION.

  • group_replication_group_name

    Формат командной строки --group-replication-group-name=value
    Системная переменная group_replication_group_name
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применимо к подсказке Нет
    Тип Строка

    Значение этой системной переменной нельзя изменить во время работы Групповой репликации.

    group_replication_group_name указывает имя группы, к которой относится этот экземпляр сервера, которое должно быть допустимым UUID. Этот UUID является частью GTID, используемых при записи в бинарный журнал транзакций, полученных участниками группы от клиентов, и событий изменения представления, генерируемых внутри участниками группы.

    Важно

    Необходимо использовать уникальный UUID.

  • group_replication_group_seeds

    Формат командной строки --group-replication-group-seeds=value
    Системная переменная group_replication_group_seeds
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применимо к подсказке Нет
    Тип Строка

    Значение этой системной переменной можно изменить во время работы Групповой репликации, но изменение вступит в силу только после остановки и перезапуска Групповой репликации на узле группы.

    group_replication_group_seeds — список участников группы, к которым присоединяющийся участник может подключиться, чтобы получить данные обо всех текущих участниках группы. Присоединяющийся участник использует эти данные для выбора и подключения к участнику группы, чтобы получить данные, необходимые для синхронизации с группой. Список состоит из одного внутреннего сетевого адреса или имени хоста для каждого включенного участника-затравки, как настроено в системной переменной group_replication_local_address участника-затравки (а не клиентского соединения SQL участника-затравки, как указано системными переменными MySQL Server's hostname и port). Адреса участников-затравки указываются через запятую, например, host1:port1,host2:port2. IPv6-адрес должен быть указан в квадратных скобках. Например:

    group_replication_group_seeds= "198.51.100.44:33061,[2001:db8:85a3:8d3:1319:8a2e:370:7348]:33061, example.org:33061"

    Обратите внимание, что значение, указанное вами для этой переменной, не проверяется до тех пор, пока не будет выполнен оператор START GROUP_REPLICATION и система групповой коммуникации (GCS) будет доступна.

    Обычно этот список состоит из всех участников группы, но вы можете выбрать подмножество участников группы, чтобы быть затравками. Список должен содержать по крайней мере один допустимый адрес участника. Каждый адрес проверяется при запуске Групповой репликации. Если список не содержит ни одного допустимого адреса участника, выполнение START GROUP_REPLICATION завершается неудачей.

    Когда сервер присоединяется к группе репликации, он пытается подключиться к первому участнику-затратке, указанному в его системной переменной group_replication_group_seeds. Если подключение отклоняется, присоединяющийся участник пытается подключиться к каждому из других участников-затравок в списке по порядку. Если присоединяющийся участник подключается к участнику-затратке, но не добавляется в группу репликации в результате (например, потому что у участника-затравки нет адреса присоединяющегося участника в списке разрешенных и он закрывает соединение), присоединяющийся участник продолжает пытаться подключиться к оставшимся участникам-затравкам в списке по порядку.

    Присоединяющийся участник должен взаимодействовать с участником-затравкой с помощью того же протокола (IPv4 или IPv6), который участник-затравка рекламирует в параметре group_replication_group_seeds. Для целей разрешений IP-адресов для Групповой репликации список разрешенных адресов у участника-затравки должен включать IP-адрес присоединяющегося участника для предложенного протокола или имя хоста, которое разрешается в адрес для этого протокола. Этот адрес или имя хоста должны быть настроены и разрешены дополнительно к group_replication_local_address присоединяющегося участника, если протокол для этого адреса не соответствует рекламируемому участником-затравкой протоколу. Если у присоединяющегося участника нет разрешенного адреса для соответствующего протокола, его попытка подключения отклоняется. Дополнительная информация приведена в Разделе 20.6.4, «Разрешения IP-адресов для Групповой репликации».

  • group_replication_gtid_assignment_block_size

    Формат командной строки --group-replication-gtid-assignment-block-size=#
    Переменная системы group_replication_gtid_assignment_block_size
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применимо ли ограничение Нет
    Тип Целое число
    Значение по умолчанию 1000000
    Минимальное значение 1
    Максимальное значение (64-битные платформы) 9223372036854775807
    Максимальное значение (32-битные платформы) 4294967295
    Примечание

    Эта системная переменная является параметром конфигурации для всей группы, и для вступления изменений в силу требуется полная перезагрузка группы репликации.

    group_replication_gtid_assignment_block_size определяет количество последовательных GTID, которые зарезервированы для каждого участника группы. Каждый участник использует свои блоки и резервирует больше при необходимости.

    Эта системная переменная является параметром конфигурации для всей группы. Она должна иметь одинаковое значение на всех участниках группы, её нельзя изменить во время работы Group Replication, и для вступления изменений в силу требуется полная перезагрузка группы (восстановление сервером с group_replication_bootstrap_group=ON). Инструкции по безопасному восстановлению группы, где транзакции были выполнены и сертифицированы, см. в разделе 20.5.2, «Перезапуск группы».

    Если в группе установлено значение для этой системной переменной, а у присоединяющегося участника установлено другое значение, присоединяющийся участник не может присоединиться к группе до тех пор, пока значение не будет изменено для соответствия. Если у участников группы установлено значение для этой системной переменной, а присоединяющийся участник не поддерживает системную переменную, он не может присоединиться к группе.

  • group_replication_ip_allowlist

    Формат командной строки --group-replication-ip-allowlist=value
    Переменная системы group_replication_ip_allowlist
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применимо ли ограничение Нет
    Тип Строка
    Значение по умолчанию AUTOMATIC

    group_replication_ip_allowlist указывает, какие хосты разрешено подключаться к группе. При использовании стека коммуникаций XCom для группы (group_replication_communication_stack=XCOM), список разрешённых IP-адресов используется для управления доступом к группе. При использовании стека коммуникаций MySQL для группы (group_replication_communication_stack=MYSQL), используется аутентификация пользователя для управления доступом к группе, и список разрешённых IP-адресов не используется и игнорируется, если он задан.

    Адрес, который вы указываете для каждого участника группы в group_replication_local_address, должен быть разрешен на других серверах в группе репликации. Обратите внимание, что значение, которое вы указываете для этой переменной, не проверяется до тех пор, пока не будет выполнено оператор START GROUP_REPLICATION и система групповой коммуникации (GCS) не будет доступна.

    По умолчанию эта системная переменная установлена в AUTOMATIC, что разрешает подключения из частных подсетей, активных на хосте. Движок групповой коммуникации для Group Replication (XCom) автоматически сканирует активные интерфейсы на хосте и определяет те, у которых есть адреса в частных подсетях. Эти адреса и localhost IP-адрес для IPv4 и IPv6 используются для создания списка разрешенных IP-адресов для Group Replication. Список диапазонов адресов, которые автоматически разрешены, см. в разделе 20.6.4, «Разрешения IP-адресов Group Replication».

    Автоматический список разрешенных частных адресов не может быть использован для подключений с серверов за пределами частной сети. Для подключений Group Replication между экземплярами серверов на разных машинах вы должны указать общедоступные IP-адреса и явно включить их в список разрешенных IP-адресов. Если вы указываете какие-либо записи для списка разрешенных IP-адресов, частные адреса не добавляются автоматически, поэтому, если вы используете какие-либо из них, вы должны указать их явно. localhost IP-адреса добавляются автоматически.

    В качестве значения опции group_replication_ip_allowlist вы можете указать любую комбинацию следующего:

    • IPv4-адреса (например, 198.51.100.44)

    • IPv4-адреса с CIDR-нотацией (например, 192.0.2.21/24)

    • IPv6-адреса (например, 2001:db8:85a3:8d3:1319:8a2e:370:7348)

    • IPv6-адреса с CIDR-нотацией (например, 2001:db8:85a3:8d3::/64)

    • Имена хостов (например, example.org)

    • Имена хостов с CIDR-нотацией (например, www.example.com/24)

    Имена хостов могут разрешаться в IPv4-адреса, IPv6-адреса или оба. Если имя хоста разрешается как в IPv4, так и в IPv6-адрес, для подключений Group Replication всегда используется IPv4-адрес. Вы можете использовать CIDR-нотацию в сочетании с именами хостов или IP-адресами для разрешения блока IP-адресов с определённым префиксом сети, но вы должны убедиться, что все IP-адреса в указанной подсети находятся под вашим контролем.

    Каждая запись в списке разрешенных IP-адресов должна быть разделена запятой. Например:

    "192.0.2.21/24,198.51.100.44,203.0.113.0/24,2001:db8:85a3:8d3:1319:8a2e:370:7348,example.org,www.example.com/24"
    

    Если какие-либо из seed-членов группы перечислены в опции group_replication_group_seeds с IPv6-адресом, а у присоединяющегося участника есть IPv4 group_replication_local_address, или наоборот, вы также должны настроить и разрешить альтернативный адрес для присоединяющегося участника для протокола, предоставляемого seed-членом (или имя хоста, разрешающееся в адрес для этого протокола). Более подробную информацию см. в разделе 20.6.4, «Разрешения IP-адресов Group Replication».

    Можно настроить разные списки разрешенных IP-адресов на разных участниках группы в соответствии с вашими требованиями к безопасности, например, для разделения разных подсетей. Однако это может вызвать проблемы при переконфигурации группы. Если у вас нет конкретной необходимости в другом поведении, используйте один и тот же список разрешенных IP-адресов на всех участниках группы. Подробности см. в разделе 20.6.4, «Разрешения IP-адресов Group Replication».

    Для имён хостов разрешение имён происходит только при получении запроса на подключение от другого сервера. Имя хоста, которое не может быть разрешено, не учитывается при проверке списка разрешенных IP-адресов, и сообщение об ошибке записывается в журнал ошибок. Проверка FCrDNS (Forward-Confirmed Reverse DNS) выполняется для разрешённых имён хостов.

    Предупреждение

    Имена хостов по своей природе менее безопасны, чем IP-адреса в списке разрешенных IP-адресов. Проверка FCrDNS обеспечивает хороший уровень защиты, но может быть уязвимой к определённым видам атак. Указывайте имена хостов в списке разрешенных IP-адресов только в строго необходимых случаях и убедитесь, что все компоненты, используемые для разрешения имён, такие как серверы DNS, находятся под вашим контролем. Вы также можете реализовать локальное разрешение имён с помощью файла hosts, чтобы избежать использования внешних компонентов.

  • group_replication_local_address

    Формат командной строки --group-replication-local-address=value
    Системная переменная group_replication_local_address
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применимо Нет
    Тип Строка

    Значение этой системной переменной можно изменить во время работы Групповой репликации, но изменения вступят в силу только после остановки и перезапуска Групповой репликации на узле группы.

    group_replication_local_address задаёт сетевой адрес, который узел предоставляет для подключений от других узлов, указанный в формате host:port. Этот адрес должен быть доступен для всех узлов группы, так как он используется движком групповой коммуникации для Групповой репликации (XCom, вариант Paxos) для TCP-связи между удалёнными экземплярами XCom. Если вы используете стековую реализацию коммуникации MySQL для установления групповых коммуникационных подключений между узлами (group_replication_communication_stack = MYSQL), адрес должен быть одним из IP-адресов и портов, на которых слушает MySQL Server, как указано в системной переменной bind_address сервера.

    Предупреждение

    Не используйте этот адрес для запросов или администрирования баз данных на узле. Это не хост и порт подключения SQL-клиента.

    Указанный в group_replication_local_address адрес или имя хоста используется Групповой репликацией в качестве уникального идентификатора узла группы в группе репликации. Вы можете использовать один и тот же порт для всех узлов группы репликации, если имена хостов или IP-адреса различны, и вы можете использовать одно и то же имя хоста или IP-адрес для всех узлов, если все порты различны. Рекомендуемый порт для group_replication_local_address составляет 33061. Обратите внимание, что значение, указанное для этой переменной, не валидируется до тех пор, пока не будет выполнено START GROUP_REPLICATION, и система групповой коммуникации (GCS) не будет доступна.

    Сетевой адрес, настроенный с помощью group_replication_local_address, должен быть разрешим всеми узлами группы. Например, если каждый экземпляр сервера находится на разном компьютере с фиксированным сетевым адресом, можно использовать IP-адрес компьютера, например 10.0.0.1. Если вы используете имя хоста, вы должны использовать полное доменное имя и убедиться, что оно разрешается через DNS, правильно настроенные файлы /etc/hosts или другие процессы разрешения имён. IPv6-адрес необходимо указывать в квадратных скобках для различения номера порта, например:

    group_replication_local_address= "[2001:db8:85a3:8d3:1319:8a2e:370:7348]:33061"
    

    Если имя хоста, указанное в качестве локального адреса Групповой репликации для экземпляра сервера, разрешается как к IPv4, так и к IPv6-адресу, для подключений Групповой репликации всегда используется IPv4-адрес. Более подробную информацию о поддержке Групповой репликации для IPv6-сетей и о группах репликации с использованием как IPv4, так и IPv6-узлов, см. в Разделе 20.5.5, «Support For IPv6 And For Mixed IPv6 And IPv4 Groups».

    Если вы используете стековую реализацию коммуникации XCom для установления групповых коммуникационных подключений между узлами (group_replication_communication_stack = XCOM), адрес, указанный для каждого узла группы в group_replication_local_address, должен быть добавлен в список для системной переменной group_replication_ip_allowlist на других серверах в группе репликации. При использовании стековой реализации коммуникации XCom для группы используется список разрешённых адресов для управления доступом к группе. При использовании стековой реализации коммуникации MySQL для группы используется проверка подлинности пользователя для управления доступом к группе, и список разрешённых адресов не используется и игнорируется при установке. Если какие-либо из узлов-источников группы указаны в group_replication_group_seeds с IPv6-адресом, в то время как у этого узла есть IPv4 group_replication_local_address, или наоборот, необходимо также настроить и разрешить альтернативный адрес для этого узла для требуемого протокола (или имя хоста, которое разрешается на адрес для этого протокола). Более подробную информацию см. в Разделе 20.6.4, «Group Replication IP Address Permissions».

  • group_replication_member_expel_timeout

    Формат командной строки --group-replication-member-expel-timeout=#
    Системная переменная group_replication_member_expel_timeout
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применимо Нет
    Тип Целое число
    Значение по умолчанию 5
    Минимальное значение 0
    Максимальное значение 3600
    Единица измерения секунды

    Значение этой системной переменной можно изменить во время работы Групповой репликации, и изменения вступят в силу немедленно. Текущее значение системной переменной считывается каждый раз, когда Групповая репликация проверяет таймаут. Необязательно, чтобы все узлы группы имели одинаковые настройки, но рекомендуется, чтобы избежать непредвиденных исключений.

    group_replication_member_expel_timeout задаёт период времени в секундах, который узел Групповой репликации ожидает после возникновения подозрения, прежде чем исключить из группы узел, заподозренный в отказе. Начальный период обнаружения 5 секунд до создания подозрения не считается частью этого времени. Значение group_replication_member_expel_timeout по умолчанию равно 5, что означает, что заподозренный узел может быть исключен через 5 секунд после периода обнаружения в 5 секунд.

    Изменение значения group_replication_member_expel_timeout на узле группы вступает в силу немедленно для существующих и будущих подозрений относительно этого узла группы. Поэтому это можно использовать как метод принудительного истечения срока подозрения и исключения подозреваемого узла, позволяя изменять конфигурацию группы. Более подробную информацию см. в Разделе 20.7.7.1, «Expel Timeout».

    Увеличение значения group_replication_member_expel_timeout может помочь избежать ненужных исключений в медленных или менее стабильных сетях или в случае ожидаемых временных сбоев сети или замедления работы машины. Если подозреваемый узел снова становится активным до истечения срока подозрения, он применяет все сообщения, которые были буферизованы остальными узлами группы, и переходит в состояние ONLINE без вмешательства оператора. Необходимо убедиться, что кэш сообщений XCom достаточно велик, чтобы вместить ожидаемый объём сообщений за указанный период времени, плюс начальный период обнаружения в 5 секунд; в противном случае узлы не смогут повторно подключиться. Размер ограничения кэша можно настроить с помощью системной переменной group_replication_message_cache_size. Более подробную информацию см. в Разделе 20.7.6, «XCom Cache Management».

    Если таймаут истечёт, подозреваемый узел будет исключён сразу после истечения срока подозрения. Если узел сможет возобновить коммуникацию и получит уведомление об исключении, и у узла установлена системная переменная group_replication_autorejoin_tries с указанием количества попыток автоматического повторного подключения, он предпринимает указанное количество попыток повторного подключения к группе в режиме только чтения. Если у узла не задано количество попыток автоматического повторного подключения или он исчерпал указанное количество попыток, он выполняет действие, указанное в системной переменной group_replication_exit_state_action.

    Более подробную информацию об использовании настройки group_replication_member_expel_timeout см. в Разделе 20.7.7.1, «Expel Timeout». Альтернативные стратегии смягчения последствий, чтобы избежать ненужных исключений, где эта системная переменная недоступна, см. в Разделе 20.3.2, «Group Replication Limitations».

  • group_replication_member_weight

    Формат командной строки --group-replication-member-weight=#
    Системная переменная group_replication_member_weight
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применимо к подсказке Нет
    Тип Целое число
    Значение по умолчанию 50
    Минимальное значение 0
    Максимальное значение 100
    Единицы измерения процент

    Значение этой системной переменной можно изменить во время работы Group Replication, и изменения вступят в силу немедленно. Текущее значение системной переменной считывается во время ситуации failover.

    group_replication_member_weight определяет процентный вес, который можно назначить членам, чтобы повлиять на вероятность избрания члена в качестве первичного в случае failover, например, когда существующий первичный член покидает группу с одним первичным членом. Назначайте числовые веса членам, чтобы гарантировать избрание конкретных членов, например, во время планового технического обслуживания первичного члена или для обеспечения приоритета определенного оборудования в случае failover.

    Для группы с членами, настроенными следующим образом:

    • 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

    во время выбора нового первичного члена упомянутые члены будут отсортированы как member-2, member-3, member-4 и member-1. В результате member-2 будет выбран в качестве нового первичного члена в случае failover. Для получения дополнительной информации см. Раздел 20.1.3.1, «Режим с одним первичным членом».

  • group_replication_message_cache_size

    Формат командной строки --group-replication-message-cache-size=#
    Системная переменная group_replication_message_cache_size
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применимо к подсказке Нет
    Тип Целое число
    Значение по умолчанию 1073741824 (1 GB)
    Минимальное значение 134217728 (128 MB)
    Максимальное значение (64-битные платформы) 18446744073709551615 (16 EiB)
    Максимальное значение (32-битные платформы) 315360004294967295 (4 GB)
    Единицы измерения байты

    Эта системная переменная должна иметь одинаковое значение на всех членах группы. Значение этой системной переменной можно изменить во время работы Group Replication. Изменения вступят в силу на каждом члене группы после остановки и перезапуска Group Replication на этом члене. В процессе этого значения системной переменной могут отличаться между членами группы, но члены могут не смогут подключиться снова в случае отключения.

    group_replication_message_cache_size устанавливает максимальный объем памяти, доступный для кэша сообщений в движке групповой коммуникации Group Replication (XCom). Кэш сообщений XCom хранит сообщения (и их метаданные), которые обмениваются между членами группы в рамках протокола консенсуса. Среди прочего, кэш сообщений используется для восстановления пропущенных сообщений членами, которые подключаются к группе после периода, когда они не могли взаимодействовать с другими членами группы.

    Переменная group_replication_member_expel_timeout определяет период ожидания (до одного часа), который разрешен в дополнение к начальному 5-секундному периоду обнаружения для возвращения членов в группу вместо их исключения. Размер кэша сообщений XCom должен устанавливаться с учетом ожидаемого объема сообщений в этот период, чтобы он содержал все пропущенные сообщения, необходимые для успешного возвращения членов. По умолчанию период ожидания составляет 5 секунд после 5-секундного периода обнаружения, в общей сложности 10 секунд.

    Убедитесь, что на вашем компьютере достаточно памяти для выбранного размера кэша, учитывая размер других кэшей и пулов объектов сервера. Значение по умолчанию составляет 1073741824 байта (1 ГБ). Минимальное значение 134217728 байт (128 МБ) позволяет развертывание на хосте с ограниченным объемом доступной памяти и хорошей сетевой связью, чтобы свести к минимуму частоту и продолжительность временных потерь подключения для членов группы. Обратите внимание, что ограничение, установленное с помощью group_replication_message_cache_size, относится только к данным, хранящимся в кэше, а для структур кэша требуется дополнительная память в объеме 50 МБ.

    Размер кэша можно динамически увеличивать или уменьшать во время выполнения. Если вы уменьшите размер кэша, XCom удаляет самые старые записи, которые были приняты и переданы, пока текущий размер не станет меньше ограничения. Система групповой коммуникации Group Replication (GCS) уведомляет вас сообщением об ошибке, когда сообщение, которое, вероятно, потребуется для восстановления членом, который в настоящее время недоступен, удаляется из кэша сообщений. Для получения дополнительной информации по настройке размера кэша сообщений см. Раздел 20.7.6, «Управление кэшем XCom».

  • group_replication_paxos_single_leader

    Формат командной строки --group-replication-paxos-single-leader[={OFF|ON}]
    Системная переменная group_replication_paxos_single_leader
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Булево
    Значение по умолчанию OFF
    Примечание

    Эта системная переменная является настройкой конфигурации для всей группы, и для вступления изменений в силу требуется полная перезагрузка группы репликации.

    group_replication_paxos_single_leader позволяет двигателю групповой коммуникации работать с единственным лидером консенсуса, когда группа находится в режиме единого первичного сервера. Со значением по умолчанию OFF, это поведение отключено, и каждый член группы используется в качестве лидера, что соответствует поведению в релизах до появления этой системной переменной. Когда эта переменная установлена в ON, движок групповой коммуникации может использовать единственного лидера для управления консенсусом. Работа с единственным лидером консенсуса повышает производительность и устойчивость в режиме единого первичного сервера, особенно когда некоторые из вторичных членов группы недоступны. Дополнительную информацию см. в разделе 20.7.3 «Единственный лидер консенсуса».

    Для того, чтобы движок групповой коммуникации мог использовать единственного лидера консенсуса, версия протокола коммуникации группы должна быть MySQL 8.0.27 или более поздней. Используйте group_replication_get_communication_protocol() для получения версии протокола коммуникации группы. Если используется более ранняя версия, группа не может использовать это поведение. Вы можете использовать group_replication_set_communication_protocol() для установки протокола коммуникации на более новую версию, если все члены группы ее поддерживают. Дополнительную информацию см. в разделе 20.5.1.4 «Установка версии протокола коммуникации группы».

    Эта системная переменная является настройкой конфигурации для всей группы. Она должна иметь одинаковое значение на всех участниках группы, не может быть изменена во время работы Group Replication и требует полной перезагрузки группы (запуска bootstrap сервером с group_replication_bootstrap_group=ON), чтобы изменения вступили в силу. Инструкции по безопасному запуску bootstrap группы, где были выполнены и подтверждены транзакции, см. в разделе 20.5.2 «Перезапуск группы».

    Если в группе установлено значение для этой системной переменной, а у присоединяющегося члена установлено другое значение, присоединяющийся член не может присоединиться к группе до тех пор, пока значение не будет изменено на совпадающее. Если члены группы имеют значение для этой системной переменной, а присоединяющийся член не поддерживает эту переменную, он не может присоединиться к группе.

    Столбец WRITE_CONSENSUS_SINGLE_LEADER_CAPABLE таблицы Performance Schema replication_group_communication_information показывает, поддерживает ли группа использование единственного лидера, даже если group_replication_paxos_single_leader в настоящее время установлено в OFF на запрошенном члене. Значение столбца равно 1, если группа была запущена со значением group_replication_paxos_single_leader равным ON, и версия ее протокола коммуникации MySQL 8.0.27 или более поздняя.

  • group_replication_poll_spin_loops

    Формат командной строки --group-replication-poll-spin-loops=#
    Системная переменная group_replication_poll_spin_loops
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Целое число
    Значение по умолчанию 0
    Минимальное значение 0
    Максимальное значение (64-битные платформы) 18446744073709551615
    Максимальное значение (32-битные платформы) 4294967295

    Значение этой системной переменной может быть изменено во время работы Group Replication, но изменение вступает в силу только после остановки и перезапуска Group Replication на члене группы.

    group_replication_poll_spin_loops указывает количество раз, когда поток групповой коммуникации ожидает освобождения мьютекса движка коммуникации, прежде чем поток будет ожидать новых входящих сетевых сообщений.

  • group_replication_preemptive_garbage_collection

    Формат командной строки --group-replication-preemptive-garbage-collection[=ON|OFF]
    Системная переменная group_replication_preemptive_garbage_collection
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Булево
    Значение по умолчанию OFF

    Включить упреждающую очистку памяти в режиме единого первичного сервера (только), сохраняя только наборы записей для тех транзакций, которые еще не были подтверждены в базе данных.

    В режиме единого первичного сервера очистка наборов записей для данной транзакции возможна раньше, чем в режиме множественных первичных серверов; это потому, что конфликты обнаруживаются и обрабатываются менеджером блокировок базы данных на сервере во время выполнения транзакций; таким образом, наборы записей полезны только для вычисления зависимостей между транзакциями, а не для обнаружения конфликтов. Это означает, что наборы записей могут быть очищены, как только транзакция, к которой они относятся, отслеживается в модуле Group Replication для определения зависимостей и конфликтов транзакций.

    Агрессивная очистка наборов записей, которая выполняется при включенном group_replication_preemptive_garbage_collection, имеет следующие эффекты:

    • Сокращение памяти, используемой для хранения наборов записей в памяти

    • Снижение влияния отстающих вторичных серверов на отслеживание наборов записей на первичном сервере

    • Снижение времени удержания блокировки базы данных набора записей за раунд удаления набора записей, а следовательно, и снижение его влияния на пропускную способность

    Значение group_replication_preemptive_garbage_collection может быть изменено только при отсутствии работы Group Replication, и не влияет на группу, работающую в режиме множественных первичных серверов. Кроме того, при включении этой системной переменной невозможно переключаться между режимом множественных первичных серверов и режимом единого первичного сервера (см. раздел 20.5.1.2 «Изменение режима группы»).

    group_replication_preemptive_garbage_collection должно иметь одинаковое значение на всех участниках группы. Значение group_replication_preemptive_garbage_collection нового присоединившегося участника должно быть таким же, как у всех текущих участников группы, иначе он не сможет присоединиться.

    Участник группы, работающий на версии MySQL до 8.4.0, не отправляет никакого значения group_replication_preemptive_garbage_collection; в таких случаях значение считается OFF.

  • group_replication_preemptive_garbage_collection_rows_threshold

    Формат командной строки --group-replication-preemptive-garbage-collection-rows-threshold=#
    Системная переменная group_replication_preemptive_garbage_collection_rows_threshold
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Целое число
    Значение по умолчанию 100000
    Минимальное значение 10000
    Максимальное значение 100000000

    При включенной упреждающей очистке памяти в режиме единого первичного сервера (group_replication_preemptive_garbage_collection равно ON), это число строк информации о сертификации, необходимой для активации ее использования.

    Эта переменная не влияет на группу, работающую в режиме множественных первичных серверов.

  • group_replication_recovery_compression_algorithms

    Формат командной строки --group-replication-recovery-compression-algorithms=value
    Системная переменная group_replication_recovery_compression_algorithms
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется ли подсказка Нет
    Тип Множество
    Значение по умолчанию uncompressed
    Допустимые значения

    zlib

    zstd

    uncompressed

    group_replication_recovery_compression_algorithms определяет алгоритмы сжатия, разрешенные для распределенных соединений восстановления Group Replication для передачи состояния из двоичного журнала донора. Доступные алгоритмы такие же, как для системной переменной protocol_compression_algorithms. Дополнительную информацию см. в разделе 6.2.8, «Управление сжатием соединений».

    Значение этой системной переменной можно изменить во время работы Group Replication, но изменение вступит в силу только после остановки и перезапуска Group Replication на узле группы.

    Это значение не применяется, если сервер настроен для поддержки клонирования (см. раздел 20.5.4.2, «Клонирование для распределенного восстановления»), и при распределенном восстановлении используется операция удаленного клонирования. Для этого метода передачи состояния применяется значение параметра плагина клонирования clone_enable_compression.

  • group_replication_recovery_get_public_key

    Формат командной строки --group-replication-recovery-get-public-key[={OFF|ON}]
    Системная переменная group_replication_recovery_get_public_key
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется ли подсказка Нет
    Тип Булево
    Значение по умолчанию OFF

    Значение этой системной переменной можно изменить во время работы Group Replication, но изменение вступит в силу только после остановки и перезапуска Group Replication на узле группы.

    group_replication_recovery_get_public_key указывает, нужно ли запросить у источника открытый ключ, необходимый для обмена паролями на основе пар ключей RSA. Если group_replication_recovery_public_key_path задано значением валидного файла открытого ключа, это значение имеет приоритет над group_replication_recovery_get_public_key. Эта переменная применяется, если вы не используете SSL для распределенного восстановления через канал group_replication_recovery (group_replication_recovery_use_ssl=ON), и учетная запись пользователя репликации для Group Replication аутентифицируется с помощью плагина caching_sha2_password (по умолчанию). Более подробную информацию см. в разделе 20.6.3.1.1, «Пользователь репликации с плагином аутентификации кэширования SHA-2».

  • group_replication_recovery_public_key_path

    Формат командной строки --group-replication-recovery-public-key-path=file_name
    Системная переменная group_replication_recovery_public_key_path
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется ли подсказка Нет
    Тип Имя файла
    Значение по умолчанию empty string

    Значение этой системной переменной можно изменить во время работы Group Replication, но изменение вступит в силу только после остановки и перезапуска Group Replication на узле группы.

    group_replication_recovery_public_key_path указывает имя файла, содержащего копию открытого ключа стороны реплики, необходимую источнику для обмена паролями на основе пар ключей RSA. Файл должен быть в формате PEM. Если group_replication_recovery_public_key_path задано значением валидного файла открытого ключа, это значение имеет приоритет над group_replication_recovery_get_public_key. Эта переменная применяется, если вы не используете SSL для распределенного восстановления через канал group_replication_recovery (то есть group_replication_recovery_use_ssl задано значением OFF), и учетная запись пользователя репликации для Group Replication аутентифицируется с помощью плагина caching_sha2_password (по умолчанию) или плагина sha256_password (устаревший). (Для sha256_password, значение group_replication_recovery_public_key_path применяется только в том случае, если MySQL был скомпилирован с использованием OpenSSL.) Дополнительную информацию см. в разделе 20.6.3.1.1, «Пользователь репликации с плагином аутентификации кэширования SHA-2».

  • group_replication_recovery_reconnect_interval

    Формат командной строки --group-replication-recovery-reconnect-interval=#
    Системная переменная group_replication_recovery_reconnect_interval
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется ли подсказка Нет
    Тип Целое
    Значение по умолчанию 60
    Минимальное значение 0
    Максимальное значение 31536000
    Единица измерения секунды

    Значение этой системной переменной можно изменить во время работы Group Replication, но изменение вступит в силу только после остановки и перезапуска Group Replication на узле группы.

    group_replication_recovery_reconnect_interval задает время ожидания в секундах между попытками повторного подключения, когда в группе не был найден подходящий донор для распределенного восстановления.

  • group_replication_recovery_retry_count

    Формат командной строки --group-replication-recovery-retry-count=#
    Системная переменная group_replication_recovery_retry_count
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется ли подсказка Нет
    Тип Целое
    Значение по умолчанию 10
    Минимальное значение 0
    Максимальное значение 31536000

    Значение этой системной переменной можно изменить во время работы Group Replication, но изменение вступит в силу только после остановки и перезапуска Group Replication на узле группы.

    group_replication_recovery_retry_count указывает количество попыток подключения узла, присоединяющегося к доступным донорам для распределенного восстановления, прежде чем прекратить попытки.

  • group_replication_recovery_ssl_ca

    Формат командной строки --group-replication-recovery-ssl-ca=value
    Системная переменная group_replication_recovery_ssl_ca
    Область действия Глобальная
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Строка

    Значение этой системной переменной может быть изменено во время работы Group Replication, но изменение вступит в силу только после остановки и перезапуска Group Replication на члене группы.

    group_replication_recovery_ssl_ca указывает путь к файлу, содержащему список доверенных центров сертификации SSL для подключений распределенного восстановления. См. Раздел 20.6.2, «Обеспечение безопасности подключений групповой коммуникации с помощью Secure Socket Layer (SSL)» для получения информации о настройке SSL для распределенного восстановления.

    Если этот сервер настроен на поддержку клонирования (см. Раздел 20.5.4.2, «Клонирование для распределенного восстановления»), и вы установили group_replication_recovery_use_ssl в ON, Group Replication автоматически настраивает параметр для параметра SSL-клонирования clone_ssl_ca так, чтобы он соответствовал вашему параметру для group_replication_recovery_ssl_ca.

    Когда для группы используется стек коммуникаций MySQL (group_replication_communication_stack = MYSQL), этот параметр используется для конфигурации TLS/SSL для подключений групповой коммуникации, а также для подключений распределенного восстановления.

  • group_replication_recovery_ssl_capath

    Формат командной строки --group-replication-recovery-ssl-capath=value
    Системная переменная group_replication_recovery_ssl_capath
    Область действия Глобальная
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Строка

    Значение этой системной переменной может быть изменено во время работы Group Replication, но изменение вступит в силу только после остановки и перезапуска Group Replication на члене группы.

    group_replication_recovery_ssl_capath указывает путь к каталогу, содержащему сертификаты доверенных центров сертификации SSL для подключений распределенного восстановления. См. Раздел 20.6.2, «Обеспечение безопасности подключений групповой коммуникации с помощью Secure Socket Layer (SSL)» для получения информации о настройке SSL для распределенного восстановления.

    Когда для группы используется стек коммуникаций MySQL (group_replication_communication_stack = MYSQL), этот параметр используется для конфигурации TLS/SSL для подключений групповой коммуникации, а также для подключений распределенного восстановления.

  • group_replication_recovery_ssl_cert

    Формат командной строки --group-replication-recovery-ssl-cert=value
    Системная переменная group_replication_recovery_ssl_cert
    Область действия Глобальная
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Строка

    Значение этой системной переменной может быть изменено во время работы Group Replication, но изменение вступит в силу только после остановки и перезапуска Group Replication на члене группы.

    group_replication_recovery_ssl_cert указывает имя файла сертификата SSL, который используется для установления защищенного соединения для распределенного восстановления. См. Раздел 20.6.2, «Обеспечение безопасности подключений групповой коммуникации с помощью Secure Socket Layer (SSL)» для получения информации о настройке SSL для распределенного восстановления.

    Если этот сервер настроен на поддержку клонирования (см. Раздел 20.5.4.2, «Клонирование для распределенного восстановления»), и вы установили group_replication_recovery_use_ssl в ON, Group Replication автоматически настраивает параметр для параметра SSL-клонирования clone_ssl_cert так, чтобы он соответствовал вашему параметру для group_replication_recovery_ssl_cert.

    Когда для группы используется стек коммуникаций MySQL (group_replication_communication_stack = MYSQL), этот параметр используется для конфигурации TLS/SSL для подключений групповой коммуникации, а также для подключений распределенного восстановления.

  • group_replication_recovery_ssl_cipher

    Формат командной строки --group-replication-recovery-ssl-cipher=value
    Системная переменная group_replication_recovery_ssl_cipher
    Область действия Глобальная
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Строка

    Значение этой системной переменной может быть изменено во время работы Group Replication, но изменение вступит в силу только после остановки и перезапуска Group Replication на члене группы.

    group_replication_recovery_ssl_cipher указывает список допустимых шифров для шифрования SSL. См. Раздел 20.6.2, «Обеспечение безопасности подключений групповой коммуникации с помощью Secure Socket Layer (SSL)» для получения информации о настройке SSL для распределенного восстановления.

    Когда для группы используется стек коммуникаций MySQL (group_replication_communication_stack = MYSQL), этот параметр используется для конфигурации TLS/SSL для подключений групповой коммуникации, а также для подключений распределенного восстановления.

  • group_replication_recovery_ssl_crl

    Формат командной строки --group-replication-recovery-ssl-crl=value
    Системная переменная group_replication_recovery_ssl_crl
    Область действия Глобальная
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Имя файла

    Значение этой системной переменной может быть изменено во время работы Group Replication, но изменение вступит в силу только после остановки и перезапуска Group Replication на члене группы.

    group_replication_recovery_ssl_crl указывает путь к каталогу, содержащему файлы, содержащие списки отозванных сертификатов. См. Раздел 20.6.2, «Обеспечение безопасности подключений групповой коммуникации с помощью Secure Socket Layer (SSL)» для получения информации о настройке SSL для распределенного восстановления.

    Когда для группы используется стек коммуникаций MySQL (group_replication_communication_stack = MYSQL), этот параметр используется для конфигурации TLS/SSL для подключений групповой коммуникации, а также для подключений распределенного восстановления.

  • group_replication_recovery_ssl_crlpath

    Формат командной строки --group-replication-recovery-ssl-crlpath=value
    Системная переменная group_replication_recovery_ssl_crlpath
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Имя каталога

    Значение этой системной переменной можно изменить во время работы Group Replication, но изменения вступят в силу только после остановки и перезапуска Group Replication на узле группы.

    group_replication_recovery_ssl_crlpath указывает путь к каталогу, содержащему файлы с списками отозванных сертификатов. См. Раздел 20.6.2, «Защита соединений групповой связи с помощью Secure Socket Layer (SSL)» для получения информации о настройке SSL для распределенного восстановления.

    Когда для группы используется стек коммуникаций MySQL (group_replication_communication_stack = MYSQL), это значение используется для конфигурации TLS/SSL для соединений групповой связи, а также для соединений распределенного восстановления.

  • group_replication_recovery_ssl_key

    Формат командной строки --group-replication-recovery-ssl-key=value
    Системная переменная group_replication_recovery_ssl_key
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Строка

    Значение этой системной переменной можно изменить во время работы Group Replication, но изменения вступят в силу только после остановки и перезапуска Group Replication на узле группы.

    group_replication_recovery_ssl_key указывает имя файла ключа SSL для создания защищенного соединения. См. Раздел 20.6.2, «Защита соединений групповой связи с помощью Secure Socket Layer (SSL)» для получения информации о настройке SSL для распределенного восстановления.

    Если на этом сервере настроено клонирование (см. Раздел 20.5.4.2, «Клонирование для распределенного восстановления»), и вы установили group_replication_recovery_use_ssl в значение ON, Group Replication автоматически настраивает значение для опции клонирования SSL clone_ssl_key для соответствия вашему значению для group_replication_recovery_ssl_key.

    Если для группы используется стек коммуникаций MySQL (group_replication_communication_stack = MYSQL), это значение используется для конфигурации TLS/SSL для соединений групповой связи, а также для соединений распределенного восстановления.

  • group_replication_recovery_ssl_verify_server_cert

    Формат командной строки --group-replication-recovery-ssl-verify-server-cert[={OFF|ON}]
    Системная переменная group_replication_recovery_ssl_verify_server_cert
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Булево
    Значение по умолчанию OFF

    Значение этой системной переменной можно изменить во время работы Group Replication, но изменения вступят в силу только после остановки и перезапуска Group Replication на узле группы.

    group_replication_recovery_ssl_verify_server_cert определяет, нужно ли соединению распределенного восстановления проверять значение общего имени сервера в сертификате, отправленном донором. См. Раздел 20.6.2, «Защита соединений групповой связи с помощью Secure Socket Layer (SSL)» для получения информации о настройке SSL для распределенного восстановления.

    Если для группы используется стек коммуникаций MySQL (group_replication_communication_stack = MYSQL), это значение используется для конфигурации TLS/SSL для соединений групповой связи, а также для соединений распределенного восстановления.

  • group_replication_recovery_tls_ciphersuites

    Формат командной строки --group-replication-recovery-tls-ciphersuites=value
    Системная переменная group_replication_recovery_tls_ciphersuites
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется подсказка Нет
    Тип Строка
    Значение по умолчанию NULL

    Значение этой системной переменной можно изменить во время работы Group Replication, но изменения вступят в силу только после остановки и перезапуска Group Replication на узле группы.

    group_replication_recovery_tls_ciphersuites определяет список разрешенных наборов шифров, разделенных двоеточием, используемых при шифровании TLSv1.3 для подключения распределенного восстановления, когда этот сервер является клиентом в подключении распределенного восстановления, то есть присоединяющимся членом. Если эта системная переменная установлена в значение NULL при использовании TLSv1.3 (что является значением по умолчанию, если вы не устанавливаете системную переменную), то разрешены наборы шифров, включенные по умолчанию, как указано в Разделе 8.3.2, «Протоколы TLS и наборы шифров для защищенного соединения». Если эта системная переменная установлена в пустую строку, то наборы шифров не разрешены, и TLSv1.3 не используется. См. Раздел 20.6.2, «Защита соединений групповой связи с помощью Secure Socket Layer (SSL)» для получения информации о настройке SSL для распределенного восстановления.

    Если для группы используется стек коммуникаций MySQL (group_replication_communication_stack = MYSQL), это значение используется для конфигурации TLS/SSL для соединений групповой связи, а также для соединений распределенного восстановления.

  • group_replication_recovery_tls_version

    Формат командной строки --group-replication-recovery-tls-version=value
    Системная переменная group_replication_recovery_tls_version
    Область видимости Глобальная
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Строка
    Значение по умолчанию TLSv1.2,TLSv1.3

    Значение этой системной переменной может быть изменено во время работы Group Replication, но изменение вступает в силу только после остановки и перезапуска Group Replication на члене группы.

    group_replication_recovery_tls_version указывает разделенный запятыми список одного или нескольких разрешенных протоколов TLS для шифрования соединения, когда этот экземпляр сервера является клиентом в соединении распределенного восстановления, то есть присоединяющимся членом. Участники группы, участвующие в каждом соединении распределенного восстановления в качестве клиента (присоединяющегося члена) и сервера (донора), согласовывают самую высокую версию протокола, которую они оба настроены поддерживать.

    Когда для группы используется стек коммуникаций MySQL (group_replication_communication_stack = MYSQL), это значение используется для конфигурации TLS/SSL для соединений групповой связи, а также для соединений распределенного восстановления.

    Значение по умолчанию — “TLSv1.2,TLSv1.3”. Убедитесь, что указанные версии протокола являются непрерывными, без пропущенных номеров версий из середины последовательности.

    Важно
    • Поддержка протокола TLSv1.3 доступна в MySQL 9.2 при условии, что MySQL был скомпилирован с использованием OpenSSL 1.1.1. Сервер проверяет версию OpenSSL при запуске, и если она ниже 1.1.1, TLSv1.3 удаляется из значения по умолчанию для системной переменной. В этом случае значение по умолчанию — TLSv1.2.

    • Group Replication поддерживает TLSv1.3 с поддержкой выбора cipher suite. См. Раздел 20.6.2, «Обеспечение безопасности соединений групповой связи с помощью Secure Socket Layer (SSL)» для получения дополнительной информации.

    См. Раздел 20.6.2, «Обеспечение безопасности соединений групповой связи с помощью Secure Socket Layer (SSL)» для получения информации о настройке SSL для распределенного восстановления.

  • group_replication_recovery_use_ssl

    Формат командной строки --group-replication-recovery-use-ssl[={OFF|ON}]
    Системная переменная group_replication_recovery_use_ssl
    Область видимости Глобальная
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Булево
    Значение по умолчанию OFF

    Значение этой системной переменной может быть изменено во время работы Group Replication, но изменение вступает в силу только после остановки и перезапуска Group Replication на члене группы.

    group_replication_recovery_use_ssl указывает, должны ли соединения распределенного восстановления Group Replication между членами группы использовать SSL или нет. См. Раздел 20.6.2, «Обеспечение безопасности соединений групповой связи с помощью Secure Socket Layer (SSL)» для получения информации о настройке SSL для распределенного восстановления.

    Если этот сервер был настроен для поддержки клонирования (см. Раздел 20.5.4.2, «Клонирование для распределенного восстановления»), и вы установите этот параметр в ON, Group Replication будет использовать SSL для удаленных операций клонирования, а также для передачи состояния из бинарного журнала донора. Если вы установите этот параметр в OFF, Group Replication не будет использовать SSL для удаленных операций клонирования.

  • group_replication_recovery_zstd_compression_level

    Формат командной строки --group-replication-recovery-zstd-compression-level=#
    Системная переменная group_replication_recovery_zstd_compression_level
    Область видимости Глобальная
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Целое число
    Значение по умолчанию 3
    Минимальное значение 1
    Максимальное значение 22

    Значение этой системной переменной может быть изменено во время работы Group Replication, но изменение вступает в силу только после остановки и перезапуска Group Replication на члене группы.

    group_replication_recovery_zstd_compression_level указывает уровень сжатия, который следует использовать для соединений распределенного восстановления Group Replication, использующих алгоритм сжатия zstd. Допустимые уровни — от 1 до 22, при этом большие значения указывают на возрастающие уровни сжатия. Уровень сжатия по умолчанию zstd равен 3. Для соединений распределенного восстановления, которые не используют сжатие zstd, эта переменная не оказывает никакого влияния.

    Для получения дополнительной информации см. Раздел 6.2.8, «Управление сжатием соединения».

  • group_replication_single_primary_mode

    Формат командной строки --group-replication-single-primary-mode[={OFF|ON}]
    Системная переменная group_replication_single_primary_mode
    Область видимости Глобальная
    Динамическая Да
    SET_VAR Подсказка применяется Нет
    Тип Булево
    Значение по умолчанию ON
    Примечание

    Эта системная переменная является настройкой конфигурации всей группы, и для вступления изменения в силу требуется полная перезагрузка группы репликации.

    group_replication_single_primary_mode предписывает группе автоматически выбирать один сервер, который будет обрабатывать рабочую нагрузку чтения/записи. Этот сервер является основным, а все остальные — вторичными.

    Эта системная переменная является настройкой конфигурации всей группы. Она должна иметь одно и то же значение на всех членах группы, не может быть изменена во время работы Group Replication и требует полной перезагрузки группы (загрузки сервером с group_replication_bootstrap_group=ON), чтобы изменение значения вступило в силу. Инструкции по безопасной загрузке группы, в которой были выполнены и подтверждены транзакции, см. в Разделе 20.5.2, «Перезапуск группы».

    Если для группы установлено значение для этой системной переменной, а для присоединяющегося члена установлено другое значение для системной переменной, присоединяющийся член не сможет присоединиться к группе, пока значение не будет изменено на совпадающее. Если у членов группы установлено значение для этой системной переменной, а присоединяющийся член не поддерживает системную переменную, он не сможет присоединиться к группе.

    Установка этой переменной в ON приводит к игнорированию любой настройки для group_replication_auto_increment_increment.

    Используйте функции group_replication_switch_to_single_primary_mode() и group_replication_switch_to_multi_primary_mode() для изменения значения этой системной переменной, пока группа все еще работает. Для получения дополнительной информации см. Раздел 20.5.1.2, «Изменение режима группы».

  • group_replication_ssl_mode

    Командная строка --group-replication-ssl-mode=value
    Системная переменная group_replication_ssl_mode
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется ли подсказка Нет
    Тип Перечисление
    Значение по умолчанию DISABLED
    Допустимые значения

    DISABLED

    REQUIRED

    VERIFY_CA

    VERIFY_IDENTITY

    Значение этой системной переменной можно изменить во время работы Group Replication, но изменения вступят в силу только после остановки и перезапуска Group Replication на узле группы.

    group_replication_ssl_mode задает состояние безопасности соединений групповой связи между узлами Group Replication. Возможные значения следующие:

    DISABLED

    Установить нешифрованное соединение (по умолчанию).

    REQUIRED

    Установить безопасное соединение, если сервер поддерживает безопасные соединения.

    VERIFY_CA

    Как REQUIRED, но дополнительно проверяет сертификат сервера TLS по отношению к настроенным сертификатам Удостоверяющего центра (УЦ).

    VERIFY_IDENTITY

    Как VERIFY_CA, но дополнительно проверяет, соответствует ли сертификат сервера хосту, к которому происходит попытка подключения.

    См. Раздел 20.6.2, «Обеспечение безопасности соединений групповой связи с помощью Secure Socket Layer (SSL)» для получения информации о настройке SSL для групповой связи.

  • group_replication_start_on_boot

    Командная строка --group-replication-start-on-boot[={OFF|ON}]
    Системная переменная group_replication_start_on_boot
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется ли подсказка Нет
    Тип Булево
    Значение по умолчанию ON

    Значение этой системной переменной можно изменить во время работы Group Replication, но изменения вступят в силу только после остановки и перезапуска Group Replication на узле группы.

    group_replication_start_on_boot указывает, должен ли сервер автоматически запускать Group Replication (ON) или нет (OFF) во время запуска сервера. При установке этого параметра в значение ON, Group Replication автоматически перезапускается после использования удаленной операции клонирования для распределенного восстановления.

    Для автоматического запуска Group Replication при запуске сервера учетные данные пользователя для распределенного восстановления должны храниться в репозиториях метаданных репликации на сервере с использованием инструкции CHANGE REPLICATION SOURCE TO. Если вы предпочитаете указывать учетные данные пользователя в рамках инструкции START GROUP_REPLICATION, которая хранит учетные данные пользователя только в памяти, убедитесь, что group_replication_start_on_boot установлена в значение OFF.

  • group_replication_tls_source

    Командная строка --group-replication-tls-source=value
    Системная переменная group_replication_tls_source
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется ли подсказка Нет
    Тип Перечисление
    Значение по умолчанию mysql_main
    Допустимые значения

    mysql_main

    mysql_admin

    Значение этой системной переменной можно изменить во время работы Group Replication, но изменения вступят в силу только после остановки и перезапуска Group Replication на узле группы.

    group_replication_tls_source указывает источник TLS-материалов для Group Replication.

  • group_replication_transaction_size_limit

    Командная строка --group-replication-transaction-size-limit=#
    Системная переменная group_replication_transaction_size_limit
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется ли подсказка Нет
    Тип Целое число
    Значение по умолчанию 150000000
    Минимальное значение 0
    Максимальное значение 2147483647
    Единицы измерения байты

    Эта системная переменная должна иметь одинаковое значение на всех узлах группы. Значение этой системной переменной можно изменить во время работы Group Replication. Изменение вступает в силу немедленно на узле группы и применяется с начала следующей транзакции на этом узле. В этом процессе разрешено различие значений переменной между узлами группы, но некоторые транзакции могут быть отклонены.

    group_replication_transaction_size_limit настраивает максимальный размер транзакции в байтах, который группа репликации принимает. Транзакции, превышающие этот размер, откатываются принимающим узлом и не транслируются в группу. Крупные транзакции могут вызвать проблемы для группы репликации с точки зрения выделения памяти, что может привести к замедлению системы, или с точки зрения потребления сетевой полосы пропускания, что может привести к подозрению в отказе узла из-за его занятости обработкой большой транзакции.

    При установке этой системной переменной в значение 0, размер транзакций, принимаемых группой, не ограничен. Значение по умолчанию — 150000000 байтов (приблизительно 143 МБ). Настройте значение этой системной переменной в зависимости от максимального размера сообщения, который должна переносить группа, помня о том, что время обработки транзакции пропорционально её размеру. Значение group_replication_transaction_size_limit должно быть одинаковым на всех узлах группы. Для получения дополнительных стратегий по смягчению последствий больших транзакций см. Раздел 20.3.2, «Ограничения Group Replication».

  • group_replication_unreachable_majority_timeout

    Командная строка --group-replication-unreachable-majority-timeout=#
    Системная переменная group_replication_unreachable_majority_timeout
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется ли подсказка Нет
    Тип Целое число
    Значение по умолчанию 0
    Минимальное значение 0
    Максимальное значение 31536000
    Единица измерения секунды

    Значение этой системной переменной можно изменить во время работы Group Replication, и изменения вступят в силу немедленно. Текущее значение системной переменной считывается при возникновении проблемы, требующей соответствующего поведения.

    group_replication_unreachable_majority_timeout задаёт количество секунд, в течение которого члены, попавшие в сеть разбиения и не способные подключиться к большинству, ожидают перед выходом из группы. В группе из 5 серверов (S1,S2,S3,S4,S5), если происходит разрыв соединения между (S1,S2) и (S3,S4,S5), имеет место разбиение сети. Первая группа (S1,S2) теперь находится в меньшинстве, поскольку не может связаться более чем с половиной группы. В то время как группа большинства (S3,S4,S5) продолжает работу, группа меньшинства ждёт заданное время для повторного подключения к сети. Подробное описание этой ситуации см. в Разделе 20.7.8, «Обработка разбиения сети и потери кворума».

    По умолчанию, group_replication_unreachable_majority_timeout установлено в 0, что означает, что члены, оказавшиеся в меньшинстве из-за разбиения сети, ожидают бесконечно долго, прежде чем покинуть группу. Если вы установите таймаут, когда истечёт заданное время, все ожидающие транзакции, обработанные меньшинством, будут отменены, а серверы в меньшинстве перейдут в состояние ERROR. Если у члена установлено значение системной переменной group_replication_autorejoin_tries для указания количества попыток повторного присоединения, он предпримет указанное количество попыток присоединения к группе в режиме супер-только для чтения. Если у члена не задано количество попыток повторного присоединения или попытки исчерпаны, он выполнит действие, заданное системной переменной group_replication_exit_state_action.

    Предупреждение

    При симметричной группе, например, с двумя членами (S0,S2), если происходит разбиение сети и нет большинства, после истечения заданного таймаута все члены переходят в состояние ERROR.

    Дополнительную информацию об использовании этого параметра см. в Разделе 20.7.7.2, «Таймаут недоступного большинства».

  • group_replication_view_change_uuid

    Командная строка --group-replication-view-change-uuid=value
    Устаревшее Да
    Системная переменная group_replication_view_change_uuid
    Область действия Глобальная
    Динамическая Да
    SET_VAR Применяется ли подсказка Нет
    Тип Строка
    Значение по умолчанию AUTOMATIC
    Примечание

    Эта системная переменная является групповой конфигурацией, и для вступления изменений в силу требуется полная перезагрузка группы репликации.

    group_replication_view_change_uuid задаёт альтернативный UUID для использования в качестве UUID части идентификатора в GTID для событий изменения представления, генерируемых группой. Альтернативный UUID упрощает различение этих внутренних транзакций от транзакций, полученных группой от клиентов. Это может быть полезно, если ваша настройка позволяет переключаться между группами, и вам нужно идентифицировать и отбрасывать транзакции, специфичные для резервной группы. Значение по умолчанию этой системной переменной — AUTOMATIC, что означает, что GTID для событий изменения представления используют имя группы, заданное системной переменной group_replication_group_name, как и транзакции от клиентов. Члены группы на версии, не имеющей этой системной переменной, рассматриваются как имеющие значение AUTOMATIC.

    Альтернативный UUID должен отличаться от имени группы, заданного системной переменной group_replication_group_name, и от UUID любого члена группы. Он также должен отличаться от любых UUID, используемых в GTID, применимых к анонимным транзакциям на каналах репликации где-либо в этой топологии, с использованием параметра ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS инструкции CHANGE REPLICATION SOURCE TO.

    Эта системная переменная является групповой конфигурацией. Она должна иметь одинаковое значение на всех членах группы, её нельзя изменить во время работы Group Replication, и для вступления изменений в силу требуется полная перезагрузка группы (с началом работы сервером с group_replication_bootstrap_group=ON). Инструкции по безопасному запуску группы, где были выполнены и подтверждены транзакции, см. в Разделе 20.5.2, «Перезапуск группы».

    Если для этой системной переменной установлено значение в группе, и присоединяющийся член имеет другое значение, присоединение члена невозможно до изменения значения на совпадение. Если у членов группы установлено значение для этой системной переменной, а присоединяющийся член не поддерживает её, присоединение невозможно.

    Ведение журнала событий изменения представления заменено совместным использованием метаданных восстановления, поэтому эта переменная устарела и может быть удалена в будущих версиях MySQL.

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-9.2-en/group-replication-system-variables.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API