17.5.1.1 Режим с единственным первичным сервером
В этом режиме группа имеет один первичный сервер, настроенный в режиме чтения/записи. Все остальные члены группы настроены в режиме только для чтения (с помощью super-read-only=ON). Это происходит автоматически. Первичный сервер, как правило, является первым сервером, который инициализирует группу; все остальные серверы, присоединяющиеся автоматически, узнают о первичном сервере и настраиваются на чтение только для чтения.
Рисунок 17.5 Выборы нового первичного сервера
При работе в режиме с единственным первичным сервером некоторые проверки, используемые в режиме с несколькими первичными серверами, отключены, так как система гарантирует, что только один сервер выполняет запись в группу. Например, изменения в таблицах, имеющих каскадные внешние ключи, разрешены, в то время как в режиме с несколькими первичными серверами они запрещены. При отказе первичного члена механизм автоматических выборов нового первичного члена выбирает нового первичного члена. Процесс выборов выполняется путём рассмотрения нового представления и упорядочивания потенциальных новых первичных серверов на основе значения group_replication_member_weight. Предполагая, что группа работает со всеми членами, использующими одну и ту же версию MySQL, членом с наибольшим значением для group_replication_member_weight избирается новым первичным сервером. В случае, если у нескольких серверов одинаковое значение group_replication_member_weight, серверы затем ранжируются по их server_uuid в лексикографическом порядке и выбирается первый из них. После избрания нового первичного сервера он автоматически настраивается на чтение/запись, а другие вторичные серверы остаются вторичными и, таким образом, работают только для чтения.
При избрании нового первичного сервера он доступен для записи только после обработки всех транзакций, полученных от старого первичного сервера. Это предотвращает возможные проблемы конкурентного доступа между старыми транзакциями от старого первичного сервера и новыми транзакциями, выполняемыми на этом члене. Рекомендуется подождать, пока новый первичный сервер применит свои связанные с репликацией логи ретрансляции, прежде чем перенаправлять к нему клиентские приложения.
Если группа работает с членами, использующими разные версии MySQL, процесс выборов может быть повлиять. Например, если какой-либо член не поддерживает group_replication_member_weight, то первичный сервер выбирается на основе server_uuid членов младшей основной версии. В качестве альтернативы, если все члены, использующие различные версии MySQL, поддерживают group_replication_member_weight, первичный сервер выбирается на основе group_replication_member_weight членов младшей основной версии.
© 2025 Oracle
Licensed under the GPLv2 License.