20.7.7.2 Время ожидания недоступной большей части
По умолчанию, узлы, оказавшиеся в меньшинстве из-за сетевого разделения, не покидают группу автоматически. Вы можете использовать системную переменную group_replication_unreachable_majority_timeout, чтобы задать количество секунд, которые узел будет ждать после потери связи с большинством узлов группы, а затем покинет группу. Установка таймаута означает, что вам не нужно активно отслеживать серверы, оказавшиеся в группе меньшинства после сетевого разделения, и вы можете избежать возможности создания ситуации раздвоения мозга (с двумя версиями членства в группе) из-за ненадлежащего вмешательства.
По истечении таймаута, заданного переменной group_replication_unreachable_majority_timeout, все ожидающие транзакции, которые были обработаны узлом и другими узлами в группе меньшинства, отменяются, и серверы в этой группе переходят в состояние ERROR. Вы можете использовать системную переменную group_replication_autorejoin_tries, чтобы заставить узел автоматически попытаться повторно присоединиться к группе в этот момент. Эта функция активна по умолчанию; узел выполняет три попытки автоматического повторного присоединения. Если процедура автоматического повторного присоединения не удается или не предпринимается, узел меньшинства следует процедуре выхода, определённой переменной group_replication_exit_state_action.
Рассмотрите следующие моменты при принятии решения о том, устанавливать ли таймаут недоступной большей части:
В симметричной группе, например, группе из двух или четырёх серверов, если обе части содержат равное количество серверов, обе группы считают себя в меньшинстве и переходят в состояние
ERROR. В этой ситуации группа не имеет функционального разделения.Пока группа меньшинства существует, все транзакции, обработанные группой меньшинства, принимаются, но блокируются, поскольку серверы меньшинства не могут достичь кворума, до тех пор, пока либо команда
STOP GROUP_REPLICATIONне будет выполнена на этих серверах, либо не будет достигнут таймаут недоступной большей части.Если вы не установите таймаут недоступной большей части, серверы в группе меньшинства никогда не перейдут в состояние
ERRORавтоматически, и вам необходимо остановить их вручную.Установка таймаута недоступной большей части не оказывает никакого влияния, если она установлена на серверах в группе меньшинства после обнаружения потери большинства.
Если вы не используете системную переменную group_replication_unreachable_majority_timeout, процесс вмешательства оператора в случае сетевого разделения описан в разделе 20.7.8, «Обработка сетевого разделения и потери кворума». Процесс включает проверку работоспособности серверов и принудительное обновление членства в группе при необходимости.
© 2025 Oracle
Licensed under the GPLv2 License.