20.5.1.5 Настройка действий участников
Группа репликации имеет возможность устанавливать действия для участников группы в определённых ситуациях. Действия участников можно включать и отключать индивидуально с помощью функций. Настройки действий участников для сервера также можно сбросить к значениям по умолчанию после выхода из группы.
Администраторы (с привилегией GROUP_REPLICATION_ADMIN) могут настроить действие участника на первичном узле группы, используя функцию group_replication_enable_member_action или group_replication_disable_member_action. Настройки действий участников, включающие все действия участников и их состояние (включены или отключены), затем распространяются на других участников группы и присоединяющихся участников с помощью групповых сообщений Группы репликации. Таким образом, у всех участников группы будут одинаковые настройки действий участников. Вы также можете настроить действия участников на сервере, который не является частью группы, при условии, что плагин Группы репликации установлен. В этом случае настройки действий участников не распространяются на другие серверы.
Если сервер, на котором вы используете функции для настройки действия участника, является частью группы, он должен быть текущим первичным узлом в группе в режиме с одним первичным узлом и должен входить в большинство. Изменение настроек отслеживается внутри Группы репликации, но ему не присваивается GTID и он не записывается в двоичный журнал, поэтому он не распространяется на любые серверы за пределами группы, такие как реплики по нисходящей. Группа репликации увеличивает номер версии своих настроек действий участников каждый раз, когда действие участника включается или отключается.
Настройки действий участников распространяются на участников следующим образом:
При запуске группы настройки действий участников сервера, который инициирует запуск группы, становятся настройками группы.
Если самая низкая версия 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) и иметь установленный плагин Группы репликации. Вы можете использовать эту функцию для удаления настроек действий участников, используемых сервером при его участии в группе, если вы планируете использовать его как автономный сервер без действий участников или с другими действиями участников.
Действие участника 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.