Spec-Zone.ru › MySQL Shell 9.2

9.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 Cluster

  • Экземпляры MySQL Server

  • Экземпляры MySQL Router

Компоненты программного обеспечения

Для настройки развертывания 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 см. в разделе 8.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.10 «Обновление схемы метаданных».

  • Кластер должен быть в режиме single-primary. InnoDB Cluster может быть в режиме single-primary или multi-primary, но InnoDB ClusterSet не поддерживает режим multi-primary. Вы можете использовать команду cluster.switchToSinglePrimaryMode() в MySQL Shell, чтобы преобразовать кластер в режиме multi-primary в режим single-primary и выбрать экземпляр, который будет основным сервером.

  • Для экземпляров 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 или более поздних версиях.

    Команда Cluster.rescan() может быть использована для генерации и установки значения для на всех серверах-членах в InnoDB Cluster. Команда возвращает сообщение об ошибке, чтобы проинформировать вас о необходимости установить значение для переменной системы, или вы можете включить опцию updateViewChangeUuid, чтобы сгенерировать и установить значение автоматически во время сканирования. После перезагрузки кластера вы можете повторить процесс создания InnoDB ClusterSet.

  • На любом сервере-члене не должно быть входящих каналов репликации от серверов, находящихся вне группы. Допускаются каналы, созданные автоматически Group Replication (group_replication_applier и group_replication_recovery).

  • Вам необходимо знать имя пользователя и пароль учетной записи конфигурации сервера InnoDB Cluster (см. раздел 9.3 «Учетные записи пользователей для InnoDB ClusterSet»). Это учетная запись, которая была настроена с помощью dba.configureInstance на серверах-членах в InnoDB Cluster. Вам необходимо создать эту учетную запись на экземплярах MySQL Server, которые будут образовывать кластер реплик, и использовать ее для их настройки.

    Примечание

    Вы не можете использовать учетную запись администратора InnoDB Cluster (настроенную с помощью cluster.setupAdminAccount()) для настройки автономных экземпляров MySQL Server для кластера реплик. 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. Следуйте процедуре, описанной в Разделе 9.6, «Интеграция MySQL Router с InnoDB ClusterSet», для этого.

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-shell-9.2-en/innodb-clusterset-requirements.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API