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