8.1 Требования к InnoDB ClusterSet
Основой развертывания InnoDB ClusterSet является существующий InnoDB Cluster в MySQL 8.0.27 или выше, и несколько автономных экземпляров MySQL Server, которые могут быть объединены в кластеры реплик для обеспечения отказоустойчивости для этого основного кластера. Если вы хотите опробовать InnoDB ClusterSet, вы можете использовать MySQL Shell для настройки тестового развертывания на вашем локальном компьютере. Вам потребуется установить MySQL Server 8.0.27 или выше и MySQL Router 8.0.27 или выше. Используя команды AdminAPI в MySQL Shell, вы можете создать тестовые экземпляры MySQL Server, настроить InnoDB Cluster, используя некоторые из них, а затем следовать инструкциям в этом разделе для настройки развертывания InnoDB ClusterSet, используя другие как кластеры реплик. Инструкции по развертыванию и управлению тестовыми экземплярами см. в разделе 6.8 «AdminAPI MySQL Sandboxes».
Рекомендуется всегда использовать последнюю версию MySQL Shell, MySQL Router и MySQL Server. Последняя версия MySQL Shell может использоваться с любой релизной версией MySQL 8.0 или выше.
Для настройки производственного развертывания InnoDB ClusterSet убедитесь, что у вас есть следующие компоненты:
Компоненты программного обеспечения
Для настройки развертывания InnoDB ClusterSet требуется MySQL Server 8.0.27 или выше, MySQL Shell 8.0.27 или выше и MySQL Router 8.0.27 или выше. Это компоненты программного обеспечения, необходимые для AdminAPI. См. раздел 6.2 «Установка компонентов программного обеспечения AdminAPI».
Всегда используйте самые последние доступные версии MySQL Shell и MySQL Router, и убедитесь, что их версия совпадает или выше, чем версия MySQL Server. Оба продукта могут управлять более старыми версиями MySQL Server, но более старые версии не могут управлять функциями в более новых версиях MySQL Server.
InnoDB Cluster
Существующий InnoDB Cluster, который будет основным кластером. Это кластер, для которого развертывание InnoDB ClusterSet обеспечивает отказоустойчивость. Группа Group Replication может быть принята как InnoDB Cluster. Инструкции по настройке InnoDB Cluster или принятию группы Group Replication см. в разделе 7.4 «Развертывание производственного InnoDB Cluster».
InnoDB Cluster, который должен быть основным кластером, должен соответствовать этим требованиям:
Кластер не должен уже быть частью развертывания InnoDB ClusterSet. InnoDB Cluster может участвовать только в одном развертывании InnoDB ClusterSet.
Все экземпляры серверов-членов кластера должны быть версии MySQL 8.0.27 или выше.
Версия метаданных InnoDB Cluster должна быть 2.1.0 или выше. При выполнении любых операций с кластером (например, команды
dba.getCluster()), AdminAPI предупреждает вас, если метаданные кластера требуют обновления. Вы можете обновить метаданные до соответствующей версии для операций InnoDB ClusterSet, выполнив командуdba.upgradeMetadata()в MySQL Shell 8.0.27 или выше. Обратите внимание, что после обновления метаданных кластера он больше не может администрироваться более старыми версиями MySQL Shell. Дополнительная информация приведена в разделе 6.11 «Обновление схемы метаданных».Кластер должен быть в режиме single-primary. InnoDB Cluster может быть в режиме single-primary или multi-primary, но InnoDB ClusterSet не поддерживает режим multi-primary. Вы можете использовать команду
в MySQL Shell для преобразования кластера в режиме multi-primary в режим single-primary и выбрать экземпляр для роли первичного сервера.cluster.switchToSinglePrimaryMode()-
Для экземпляров MySQL Server с версии 8.0.27 до 8.2.0 для InnoDB Cluster, который является частью InnoDB ClusterSet, переменная системы должна быть установлена с одинаковым значением на всех серверах-членах кластера для предоставления альтернативного UUID для событий изменения представлений. С MySQL 8.0.27 InnoDB Cluster, созданный с помощью команды
dba.createCluster(), получает сгенерированное и установленное значение для переменной системы на всех серверах-членах. InnoDB Cluster, созданный до MySQL 8.0.27, может не иметь установленной переменной системы, но процесс создания InnoDB ClusterSet проверяет это и завершается с предупреждением, если ее нет.ПримечаниеЭто не требуется для InnoDB Clusters, работающих на MySQL Server 8.3.0 или выше.
Команда
может использоваться для генерации и установки значения для переменной системы на всех серверах-членах в InnoDB Cluster. Команда возвращает сообщение об ошибке, чтобы проинформировать вас о необходимости установки значения для системной переменной, или вы можете включить опциюCluster.rescan()updateViewChangeUuidдля автоматической генерации и установки значения во время сканирования. После перезагрузки кластера вы можете повторить процесс создания InnoDB ClusterSet. На любом сервере-члене не должно быть каналов входящей репликации от серверов за пределами группы. Разрешены каналы, автоматически созданные Group Replication (
group_replication_applierиgroup_replication_recovery).-
Вам необходимо знать имя пользователя и пароль учетной записи конфигурации серверов InnoDB Cluster (см. раздел 8.3 «Учетные записи пользователей для InnoDB ClusterSet»). Это учетная запись, которая была создана с помощью
dba.configureInstanceна серверах-членах в InnoDB Cluster. Вам потребуется создать эту учетную запись на экземплярах MySQL Server, которые сформируют кластер реплик, и использовать ее для их настройки.ПримечаниеВы не можете использовать учетную запись администратора InnoDB Cluster (созданную с помощью
) для настройки автономных экземпляров MySQL Server для кластера реплик.cluster.setupAdminAccount()недоступна на автономном экземпляре, и если вы создадите одну из этих учетных записей на автономных экземплярах с помощьюcluster.setupAdminAccount()dba.configureInstanceили вручную, она впоследствии будет реплицирована из основного кластера, что приведет к остановке репликации с ошибкой. В момент создания развертывания InnoDB ClusterSet InnoDB Cluster должен быть активным и работоспособным, а его первичный сервер-член должен быть доступен с помощью MySQL Shell.
Серверы MySQL
Несколько независимых серверов MySQL, которые можно объединить в один или несколько кластеров реплик. Для обеспечения отказоустойчивости рекомендуется использовать минимум три сервера в каждом кластере реплик, хотя развертывание InnoDB ClusterSet может включать кластеры реплик, состоящие из одного сервера. При развертывании в условиях высокой доступности каждый кластер реплик должен размещаться в альтернативном месте, например, в другом дата-центре.
Каждый сервер MySQL, используемый в кластерах реплик, должен соответствовать следующим требованиям:
Сервер не является частью развертывания InnoDB ClusterSet, InnoDB ClusterSet или InnoDB ReplicaSet.
Данные на сервере не требуются. Если сервер ранее использовался для обработки транзакций, данные будут перезаписаны при добавлении его в кластер реплик (если транзакции не являются подмножеством транзакций основного кластера).
-
Сервер не входит в группу Group Replication (даже если сервер покинул группу). Нельзя добавить существующую группу Group Replication или текущего или бывшего участника в качестве кластера реплик. Если вы хотите использовать серверы, которые в настоящее время входят в группу репликации, выполните команду
STOP GROUP_REPLICATIONна всех участниках группы, чтобы группа полностью отключилась. После этого отдельные серверы можно объединить в кластер реплик с помощью AdminAPI.ВажноБудьте осторожны при использовании бывших участников группы Group Replication в качестве участников кластера реплик InnoDB ClusterSet, особенно если вы внесли много изменений в параметры конфигурации Group Replication или если группа была создана в более ранней версии, и вы внесли изменения в конфигурацию, основанные на ситуации в этой версии.
Процесс создания кластера реплик InnoDB ClusterSet перезаписывает любые существующие сохраненные параметры конфигурации Group Replication, для которых вы указываете новые значения в команде. Он также всегда перезаписывает следующие системные переменные, даже если вы их не указываете в команде: , , , (только версии с 8.0.27 по 8.2.0) и . Однако другие параметры конфигурации Group Replication, которые вы изменили, остаются без изменений. Эти пользовательские настройки могут потенциально повлиять на работу или производительность InnoDB ClusterSet, который ожидает, что значения по умолчанию MySQL 8.0.27 будут использоваться для параметров конфигурации Group Replication, которые не изменены во время создания кластера реплик InnoDB ClusterSet.
Если вы все-таки хотите использовать сервер Group Replication, проверьте и удалите все пользовательские настройки, если это возможно, в частности, убедитесь, что системная переменная установлена по умолчанию в значение
ON. В этой ситуации самым безопасным вариантом для бывшего участника группы Group Replication является переустановка сервера MySQL, а не обновление установки до MySQL 8.0.27. Сервер имеет версию MySQL 8.0.27 или выше. При клонировании для предоставления дополнительных серверов-участников кластера реплики все серверы должны иметь одинаковую версию и ту же операционную систему.
На сервере уникальный идентификатор сервера (системенная переменная) и UUID сервера (системенная переменная) во всем InnoDB ClusterSet, включая все неактивные или недоступные серверы-участники.
На сервере не настроены каналы входящей репликации. Разрешены только каналы Group Replication (
group_replication_applierиgroup_replication_recovery).Сервер может подключиться к основному кластеру в InnoDB ClusterSet, и основной кластер может подключиться к нему.
В момент создания развертывания InnoDB ClusterSet сервер должен быть активным, работоспособным и доступным с помощью MySQL Shell.
Требуемые учетные данные пользователя, метаданные InnoDB ClusterSet и конфигурация Group Replication будут настроены во время процесса создания кластера реплик InnoDB ClusterSet.
Серверы MySQL Router
Один или несколько серверов MySQL Router для маршрутизации трафика клиентских приложений к соответствующим кластерам в развертывании InnoDB ClusterSet. Рекомендуется развертывать MySQL Router на том же хосте, что и клиентское приложение.
Если вы используете существующий InnoDB Cluster в качестве основного кластера в развертывании InnoDB ClusterSet и уже настроили MySQL Router для взаимодействия с этим кластером, снова настройте его с помощью параметра --force для InnoDB ClusterSet, затем остановите и перезапустите MySQL Router. Параметры в файле статической конфигурации сервера MySQL Router необходимо обновить для InnoDB ClusterSet. Следуйте описанному в Разделе 8.6, «Интеграция MySQL Router с InnoDB ClusterSet» процессу для этого.
© 2025 Oracle
Licensed under the GPLv2 License.