20.5.1.5 Настройка действий участников
Группа репликации позволяет задавать действия для участников группы в определенных ситуациях. Действия участников можно включать и отключать индивидуально с помощью функций. Конфигурацию действий участников для сервера также можно сбросить к значениям по умолчанию после выхода из группы.
Администраторы (с привилегией GROUP_REPLICATION_ADMIN) могут настроить действие участника на основном сервере группы с помощью функции group_replication_enable_member_action или group_replication_disable_member_action. Конфигурация действий участников, включающая все действия участников и их состояние (включено/выключено), затем распространяется на других участников группы и новых участников с помощью групповых сообщений группы репликации. Таким образом, все участники группы имеют одинаковую конфигурацию действий участников. Вы также можете настроить действия участников на сервере, который не входит в группу, при условии, что плагин Group Replication установлен. В этом случае конфигурация действий участников не будет распространена на другие сервера.
Если сервер, на котором вы используете функции для настройки действия участника, входит в группу, он должен быть текущим основным сервером в группе в режиме единого основного сервера и должен входить в большинство. Изменение конфигурации отслеживается внутри группы репликации, но ему не присваивается GTID и он не записывается в двоичный журнал, поэтому он не распространяется на серверы за пределами группы, такие как вторичные реплики. Group Replication увеличивает номер версии своей конфигурации действий участников каждый раз, когда действие участника включается или отключается.
Конфигурация действий участников распространяется на участников следующим образом:
При запуске группы конфигурация действий участников сервера, который инициализирует группу, становится конфигурацией для группы.
Если самая низкая версия MySQL Server в группе поддерживает действия участников, присоединяющиеся участники получают конфигурацию действий участников группы во время процесса обмена состояниями, который происходит при их присоединении. В этом случае присоединяющийся участник заменяет свою собственную конфигурацию действий участников конфигурацией группы.
Если присоединяющийся участник, поддерживающий действия участников, присоединяется к группе, в которой самая низкая версия MySQL Server не поддерживает действия участников, он не получает конфигурацию действий участников при присоединении. В этом случае присоединяющийся участник сбрасывает свою собственную конфигурацию до значений по умолчанию.
Участник, не поддерживающий действия участников, не может присоединиться к группе, имеющей конфигурацию действий участников, потому что версия его MySQL Server ниже минимальной версии, на которой работают существующие участники группы.
Таблица Performance Schema replication_group_member_actions перечисляет доступные действия участников в конфигурации, события, которые их запускают, и текущее состояние включения/выключения. Действия участников имеют приоритет от 1 до 100, при этом действия с более низкими значениями выполняются в первую очередь. Если при выполнении действия участника возникает ошибка, ошибка действия участника может быть записана в журнал, но в противном случае игнорируется. Если отказ действия участника считается критическим, он обрабатывается в соответствии с политикой, определенной системной переменной group_replication_exit_state_action.
Таблица mysql.replication_group_configuration_version, которую можно просмотреть с помощью таблицы Performance Schema replication_group_configuration_version, записывает текущую версию конфигурации действий участников. Всякий раз, когда действие участника включается или отключается с помощью функций, номер версии увеличивается.
Функция group_replication_reset_member_actions может быть использована только на сервере, который не входит в группу. Она сбрасывает конфигурацию действий участников до значений по умолчанию и сбрасывает номер версии до 1. Сервер должен быть доступен для записи (с системной переменной read_only установленной в OFF) и иметь установленный плагин Group Replication. Вы можете использовать эту функцию для удаления конфигурации действий участников, которую использовал сервер, когда он был частью группы, если вы планируете использовать его как автономный сервер без действий участников или с другими действиями участников.
Действие участника mysql_disable_super_read_only_if_primary может быть установлено таким образом, чтобы группа в режиме единого основного сервера оставалась в режиме супер-только для чтения, когда избирается новый основной сервер; это означает, что группа принимает только реплицированные транзакции и не принимает прямые записи от клиентов. Эта настройка означает, что когда группа предназначена для предоставления резервной копии другому группе для обеспечения отказоустойчивости, можно гарантировать, что вторичная группа остается синхронизированной с первой.
По умолчанию режим супер-только для чтения отключен на основном сервере при его избрании, поэтому основной сервер становится доступным для чтения/записи и принимает обновления от сервера-источника репликации и от клиентов. Такая ситуация возникает, когда действие участника mysql_disable_super_read_only_if_primary включено, что является его значением по умолчанию. Если вы установите действие в выключенное состояние с помощью функции group_replication_disable_member_action(), основной сервер остается в режиме супер-только для чтения после избрания. В этом состоянии он не принимает обновления от клиентов, даже если у пользователей есть привилегии CONNECTION_ADMIN или SUPER. Однако он продолжает принимать обновления, выполняемые репликационными потоками.
© 2025 Oracle
Licensed under the GPLv2 License.