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.