20.5.4.2 Клонирование для распределённого восстановления
Для использования операций удалённого клонирования для распределённого восстановления в группе, необходимо предварительно настроить существующих членов и присоединяющихся членов для поддержки этой функции. Если вы не хотите использовать эту функцию в группе, не настраивайте её, в этом случае Group Replication будет использовать только передачу состояния из бинарного лога.
Для использования клонирования, по меньшей мере, один существующий член группы и присоединяющийся член должны быть предварительно настроены для поддержки операций удалённого клонирования. Как минимум, необходимо установить плагин клонирования на донорском и присоединяющемся члене, предоставить пользователю репликации разрешение BACKUP_ADMIN для распределённого восстановления и установить системную переменную group_replication_clone_threshold на соответствующий уровень. Для обеспечения максимальной доступности доноров, рекомендуется настроить всех текущих и будущих членов группы для поддержки операций удалённого клонирования.
Обратите внимание, что операция удалённого клонирования удаляет созданные пользователем табличные пространства и данные с присоединяющегося члена перед передачей данных с донора. Если операция прервана во время выполнения, присоединяющийся член может остаться с частичными данными или без данных. Это можно исправить, повторив операцию удалённого клонирования, что Group Replication делает автоматически.
20.5.4.2.1 Предварительные условия для клонирования
Полные инструкции по настройке и конфигурации плагина клонирования см. в разделе 7.6.7, «Плагин клонирования». Подробные предварительные условия для операции удалённого клонирования рассмотрены в разделе 7.6.7.3, «Клонирование удалённых данных». Для Group Replication обратите внимание на следующие ключевые моменты и различия:
Донор (существующий член группы) и получатель (присоединяющийся член) должны иметь установленный и активный плагин клонирования. Инструкции по этому см. в разделе 7.6.7.1, «Установка плагина клонирования».
Донор и получатель должны работать на одной операционной системе и использовать одну и ту же серию выпусков MySQL Server. Поэтому клонирование не подходит для групп, члены которых используют разные версии MySQL Server, такие как MySQL 8.0 и 8.4.
На доноре и получателе должен быть установлен и активен плагин Group Replication, а любые другие активные плагины на доноре (например, плагин keyring) также должны быть активны на получателе.
Если распределённое восстановление настроено на использование SSL (
group_replication_recovery_use_ssl=ON), Group Replication применяет это значение для операций удалённого клонирования. Group Replication автоматически настраивает значения для параметров SSL клонирования (clone_ssl_ca,clone_ssl_certиclone_ssl_key) в соответствии с вашими настройками для соответствующих параметров распределённого восстановления Group Replication (group_replication_recovery_ssl_ca,group_replication_recovery_ssl_certиgroup_replication_recovery_ssl_key).Для присоединения к группе репликации вам не нужно создавать список допустимых доноров в системной переменной
clone_valid_donor_list. Group Replication автоматически настраивает это значение после выбора донора из существующих членов группы. Обратите внимание, что операции удалённого клонирования используют имя хоста и порт SQL-протокола сервера.Плагин клонирования имеет ряд системных переменных для управления сетевой нагрузкой и влиянием на производительность операции удалённого клонирования. Group Replication не настраивает эти значения, поэтому вы можете их просмотреть и настроить, если хотите, или оставить по умолчанию. Обратите внимание, что когда операция удалённого клонирования используется для распределённого восстановления, значение плагина клонирования
clone_enable_compressionприменяется к операции, а не к параметру сжатия Group Replication.Для вызова операции удалённого клонирования на получателе Group Replication использует внутреннего пользователя
mysql.session, у которого уже есть разрешениеCLONE_ADMIN, поэтому вам не нужно его настраивать.-
В качестве пользователя клонирования на доноре для операции удалённого клонирования Group Replication использует пользователя репликации, которого вы настроили для распределённого восстановления (описано в разделе 20.2.1.3, «Учётные данные пользователя для распределённого восстановления»). Поэтому вы должны предоставить разрешение
BACKUP_ADMINэтому пользователю репликации на всех членах группы, поддерживающих клонирование. Также предоставьте это разрешение пользователю репликации на присоединяющихся членах при их настройке для Group Replication, так как они могут выступать в роли доноров после присоединения к группе. Один и тот же пользователь репликации используется для распределённого восстановления на каждом члене группы. Чтобы предоставить это разрешение пользователю репликации на существующих членах, вы можете выполнить эту команду на каждом члене группы индивидуально с отключённым бинарным логом или на одном члене с включённым бинарным логом:GRANT BACKUP_ADMIN ON *.* TO
rpl_user@'%'; Если вы используете
START GROUP_REPLICATIONдля указания учётных данных пользователя репликации на сервере, который ранее предоставлял учётные данные пользователя с помощьюCHANGE REPLICATION SOURCE TO, убедитесь, что вы удалили учётные данные пользователя из репозиториев метаданных репликации перед выполнением любых операций удалённого клонирования. Также убедитесь, чтоgroup_replication_start_on_boot=OFFустановлен на присоединяющемся члене. Инструкции см. в разделе 20.6.3, «Защита соединений распределённого восстановления». Если вы не отменяете учётные данные пользователя, они будут переданы присоединяющемуся члену во время операций удалённого клонирования. Каналgroup_replication_recoveryможет быть нежелательно запущен с сохранёнными учётными данными, как на оригинальном члене, так и на членах, клонированных из него. Автоматический запуск Group Replication при запуске сервера (включая после операции удалённого клонирования) будет использовать сохранённые учётные данные пользователя, а также они будут использоваться, если оператор не указал учётные данные распределённого восстановления в командеSTART GROUP_REPLICATION.
20.5.4.2.2 Порог для клонирования
Когда члены группы настроены для поддержки клонирования, системная переменная group_replication_clone_threshold задаёт порог, выраженный в количестве транзакций, для использования удалённой операции клонирования при распределённом восстановлении. Если разрыв между транзакциями на доноре и транзакциями на присоединяющемся члене больше этого числа, для передачи состояния присоединяющемуся члену используется операция удалённого клонирования, если это технически возможно. Group Replication вычисляет, превышен ли порог, на основе наборов gtid_executed существующих членов группы. Использование операции удалённого клонирования в случае большого разрыва между транзакциями позволяет добавлять новых членов в группу без предварительного ручного переноса данных группы на сервер, а также позволяет члену, сильно отставшему, догнать другие члены более эффективно.
Значение по умолчанию для системной переменной group_replication_clone_threshold Group Replication чрезвычайно велико (максимально допустимый порядковый номер транзакции в GTID), поэтому оно фактически отключает клонирование везде, где возможна передача состояния из двоичного журнала. Чтобы позволить Group Replication выбрать операцию удалённого клонирования для передачи состояния, когда это более целесообразно, установите системную переменную, чтобы указать количество транзакций как разрыв транзакций, превышение которого должно инициировать клонирование.
Не используйте низкое значение для group_replication_clone_threshold в активной группе. Если в группе произойдёт количество транзакций, превышающих порог, во время выполнения операции удалённого клонирования, присоединяющийся член снова инициирует операцию удалённого клонирования после перезапуска и может продолжать это неопределённое время. Чтобы избежать этой ситуации, убедитесь, что порог установлен выше, чем ожидаемое количество транзакций, которое может произойти в группе за время выполнения операции удалённого клонирования.
Group Replication пытается выполнить операцию удалённого клонирования независимо от вашего порога, когда передача состояния из двоичного журнала донора невозможна, например, потому что транзакции, необходимые присоединяющемуся члену, недоступны в двоичном журнале любого из существующих членов группы. Group Replication определяет это на основе наборов gtid_purged существующих членов группы. Вы не можете использовать системную переменную group_replication_clone_threshold для отключения клонирования, когда необходимые транзакции недоступны в двоичных журналах ни одного из членов, потому что в этой ситуации клонирование является единственной альтернативой ручному переносу данных на присоединяющийся член.
20.5.4.2.3 Операции клонирования
Когда члены группы и присоединяющиеся члены настроены для клонирования, Group Replication управляет операциями удалённого клонирования за вас. Операция удалённого клонирования может занять некоторое время, в зависимости от размера данных. См. Раздел 7.6.7.10, «Мониторинг операций клонирования» для получения информации о мониторинге процесса.
После завершения передачи состояния Group Replication перезапускает присоединяющийся член для завершения процесса. Если group_replication_start_on_boot=OFF установлен на присоединяющемся члене, например, потому что вы укажите учетные данные пользователя репликации в инструкции START GROUP_REPLICATION, вы должны вручную снова выполнить START
GROUP_REPLICATION после этого перезапуска. Если group_replication_start_on_boot=ON и другие настройки, необходимые для запуска Group Replication, были установлены в файле конфигурации или с помощью инструкции SET
PERSIST, вам не нужно вмешиваться, и процесс автоматически продолжится, чтобы подключить присоединяющийся член к сети.
Операция удалённого клонирования клонирует настройки, сохраняемые в таблицах от донора к получателю, а также данные. Group Replication управляет настройками, которые относятся конкретно к каналам Group Replication. Настройки членов Group Replication, сохраняемые в файлах конфигурации, такие как локальный адрес репликации Group Replication, не клонируются и не изменяются на присоединяющемся члене. Group Replication также сохраняет настройки канала, относящиеся к использованию SSL, поэтому они уникальны для каждого члена.
Если учетные данные пользователя репликации, используемые донором для канала репликации group_replication_recovery, были сохранены в репозиториях метаданных репликации с помощью инструкции CHANGE REPLICATION
SOURCE TO, они передаются и используются присоединяющимся членом после клонирования, и они должны быть валидными там. С сохранёнными учетными данными все члены группы, получившие передачу состояния с помощью операции удалённого клонирования, автоматически получают пользователя репликации и пароль для распределённого восстановления. Если вы указываете учетные данные пользователя репликации в инструкции START
GROUP_REPLICATION, они используются для запуска операции удалённого клонирования, но они не передаются и не используются присоединяющимся членом после клонирования. Если вы не хотите, чтобы учетные данные передавались новым присоединившимся участникам и записывались там, убедитесь, что вы их сняли перед выполнением операций удалённого клонирования, как описано в Разделе 20.6.3, «Защита соединений распределённого восстановления», и используйте START GROUP_REPLICATION для их предоставления вместо этого.
Если для обеспечения безопасности приложений репликации использована учётная запись PRIVILEGE_CHECKS_USER (см. Раздел 19.3.3.2, «Проверка привилегий для каналов Group Replication»), учётная запись PRIVILEGE_CHECKS_USER и связанные настройки с донора клонируются на присоединяющийся член. Если присоединяющийся член настроен на запуск Group Replication при загрузке, он автоматически использует учётную запись для проверки привилегий по соответствующим каналам репликации.
20.5.4.2.4 Клонирование для других целей
Group Replication инициирует и управляет операциями клонирования для распределённого восстановления. Члены группы, которые настроены для поддержки клонирования, также могут участвовать в операциях клонирования, инициируемых пользователем вручную. Например, вы можете создать новый экземпляр сервера, клонировав его с члена группы в качестве донора, но не хотите, чтобы новый экземпляр сервера сразу же присоединился к группе или вообще никогда.
Во всех выпусках, поддерживающих клонирование, вы можете вручную инициировать операцию клонирования, включающую член группы, на котором остановлена Group Replication. Обратите внимание, что, поскольку клонирование требует, чтобы активные плагины на доноре и получателе совпадали, плагин Group Replication должен быть установлен и активен на другом экземпляре сервера, даже если вы не планируете присоединять этот экземпляр сервера к группе. Вы можете установить плагин, выполнив эту инструкцию:
INSTALL PLUGIN group_replication SONAME 'group_replication.so';
Вы можете вручную инициировать операцию клонирования, если операция включает член группы, на котором Group Replication запущена, при условии, что операция клонирования не удаляет и не заменяет данные на получателе. Поэтому инструкция для инициирования операции клонирования должна включать в себя условие DATA
DIRECTORY, если Group Replication запущена.
© 2025 Oracle
Licensed under the GPLv2 License.