Spec-Zone.ru › MySQL 9.2

20.7.7 Ответы на обнаружение сбоев и разбиение сети

  • 20.7.7.1 Таймаут исключения
  • 20.7.7.2 Таймаут недоступного большинства
  • 20.7.7.3 Автоматическое присоединение
  • 20.7.7.4 Действие выхода

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

Обычно все члены группы регулярно обмениваются сообщениями со всеми другими членами группы. Если член группы не получает сообщений от определенного коллеги в течение 5 секунд, по завершении этого периода обнаружения возникает подозрение относительно коллеги. При истечении срока подозрения предполагается, что подозреваемый член вышел из строя, и его исключают из группы. Исключенный член удаляется из списка участников, видимого другими членами, но он не знает, что его исключили из группы, поэтому он считает себя онлайн, а других членов — недоступными. Если член на самом деле не вышел из строя (например, из-за временной проблемы с сетью) и может возобновить общение с другими членами, он получает представление, содержащее информацию о том, что его исключили из группы.

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

  1. В MySQL 9.2, когда создаётся подозрение, добавляется период ожидания в 5 секунд перед истечением срока подозрения и возможным исключением подозреваемого члена.

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

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

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

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

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

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

Spec-Zone.ru

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