20.8.1 Объединение разных версий узлов в группе
Group Replication имеет версию, соответствующую версии MySQL Server, с которой был связан плагин Group Replication. Например, если узел работает под MySQL 8.4.4, то это и есть версия плагина Group Replication. Для проверки версии MySQL Server на узле группы выполните:
SELECT MEMBER_HOST,MEMBER_PORT,MEMBER_VERSION FROM performance_schema.replication_group_members;
+-------------+-------------+----------------+
| member_host | member_port | member_version |
+-------------+-------------+----------------+
| example.com | 3306 | 8.4.4 |
+-------------+-------------+----------------+
Для получения информации о понимании версии MySQL Server и выборе версии см. Раздел 2.1.2, «Выбор версии и дистрибутива MySQL».
Для оптимальной совместимости и производительности все узлы группы должны использовать одну и ту же версию MySQL Server и, следовательно, Group Replication. Однако во время онлайн-обновления группы для максимальной доступности могут понадобиться узлы с разными версиями MySQL Server. В зависимости от изменений между версиями MySQL могут возникнуть несовместимости. Например, если функция была устарела между основными версиями, объединение версий в группе может привести к сбою узлов, которые полагаются на устаревшую функцию. И наоборот, запись на узел с более новой версией MySQL при наличии узлов чтения/записи в группе с более старой версией MySQL может вызвать проблемы на узлах, которым не хватает функций, введённых в более новой версии.
Для предотвращения таких проблем Group Replication включает политики совместимости, которые позволяют безопасно объединять узлы, работающие с различными версиями MySQL в одной группе. Узел применяет эти политики, чтобы решить, присоединиться к группе обычно, в режиме только чтения или не присоединяться к группе, в зависимости от выбора, который обеспечивает безопасную работу присоединяющегося узла и существующих узлов группы. В сценарии обновления каждый сервер должен выйти из группы, быть обновлён и снова присоединиться к группе с новой версией сервера. В этот момент узел применяет политики для своей новой версии сервера, которые могут измениться по сравнению с политиками, применёнными при первоначальном присоединении к группе.
Как администратор, вы можете поручить любому серверу попытаться присоединиться к любой группе, соответствующим образом настроив сервер и выдав START GROUP_REPLICATION оператор. Решение о присоединении или неприсоединении к группе, или о присоединении в режиме только чтения, принимается и реализуется самим присоединяющимся узлом после попытки добавить его в группу. Присоединяющийся узел получает информацию о версиях MySQL Server текущих узлов группы, оценивает собственную совместимость с этими узлами и применяет политики, используемые в собственной версии MySQL Server (а не политики, используемые существующими узлами), чтобы определить совместимость.
Политики совместимости, которые присоединяющийся узел применяет при попытке присоединиться к группе, следующие:
Узел присоединяется к группе обычно, если он работает с той же версией MySQL Server, что и самая низкая версия, на которой работают существующие узлы группы.
Узел присоединяется к группе, но остаётся в режиме только чтения, если он работает с более высокой версией MySQL Server, чем самая низкая версия, на которой работают существующие узлы группы. Это поведение имеет значение только при работе группы в режиме с несколькими первичными узлами, потому что в группе, работающей в режиме одного первичного узла, вновь добавленные узлы по умолчанию работают в режиме только чтения в любом случае.
При проверке совместимости узлы учитывают полную версию ПО в формате major.minor.release.
В группе с несколькими первичными узлами и узлами, использующими разные версии MySQL Server, Group Replication автоматически управляет режимами чтения/записи и только чтения узлов. Если узел покидает группу, узлы, использующие версию, которая теперь является самой низкой, автоматически переключаются в режим чтения/записи. При переключении группы с режима одного первичного узла на режим нескольких первичных узлов с помощью group_replication_switch_to_multi_primary_mode(), Group Replication автоматически устанавливает каждый узел в соответствующий режим. Узлы автоматически переключаются в режим только чтения, если они используют более высокую версию MySQL Server, чем самая низкая версия в группе, а узлы, использующие самую низкую версию, переключаются в режим чтения/записи.
© 2025 Oracle
Licensed under the GPLv2 License.