Spec-Zone.ru › MySQL 8.4

20.5.4 Распределённое восстановление

  • 20.5.4.1 Подключения для распределённого восстановления
  • 20.5.4.2 Клонирование для распределённого восстановления
  • 20.5.4.3 Настройка распределённого восстановления
  • 20.5.4.4 Устойчивость к отказам для распределённого восстановления
  • 20.5.4.5 Как работает распределённое восстановление

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

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

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

Группа репликации использует комбинацию этих методов для передачи состояния во время распределённого восстановления:

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

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

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

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

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

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

Подсказка

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

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

Spec-Zone.ru

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