Spec-Zone.ru › MySQL 9.2

20.5.4.4 Устойчивость к сбоям при распределённом восстановлении

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

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

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

  • Ошибка соединения - Проблема с аутентификацией или другая проблема с установлением соединения с кандидатом в доноры.

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

  • Ошибки операции удалённого клонирования - Операция удалённого клонирования завершается неудачно или останавливается до её завершения.

  • Донор покидает группу - Донор покидает группу или Group Replication останавливается на доноре, в то время как передача состояния находится в процессе.

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

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

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

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

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

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

  • Превышено лимит попыток подключения - Присоединяющийся член выполнил все разрешённые попытки подключения в соответствии с лимитом повторных подключений. Вы можете настроить это с помощью системной переменной group_replication_recovery_retry_count (см. Раздел 20.5.4.3, «Настройка распределённого восстановления»).

  • Больше нет доноров - Присоединяющийся член неуспешно предпринял операцию удалённого клонирования с каждым онлайн-донором, поддерживающим клонирование (если плагин клонирования установлен), затем неуспешно предпринял передачу состояния из двоичного журнала с каждым подходящим онлайн-донором по очереди, если это возможно.

  • Присоединяющийся член покидает группу - Присоединяющийся член покидает группу или Group Replication останавливается на присоединяющемся члене во время передачи состояния.

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

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

Spec-Zone.ru

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