Spec-Zone.ru › MySQL 8.4

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-8.4-en/group-replication-distributed-recovery-fault.html

Spec-Zone.ru

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