Spec-Zone.ru › MySQL Shell 9.2

8.4.3 Создание кластера InnoDB

После подготовки ваших экземпляров используйте функцию dba.createCluster() для создания кластера, используя экземпляр, к которому подключена MySQL Shell, в качестве исходного экземпляра кластера. Исходный экземпляр реплицируется на другие экземпляры, которые вы добавляете в кластер, делая их репликами исходного экземпляра. В этой процедуре используется экземпляр ic-1 в качестве исходного. При выполнении dba.createCluster(name) MySQL Shell создаёт сеанс классического протокола MySQL для серверного экземпляра, подключенного к текущей глобальной сессии MySQL Shell. Например, чтобы создать кластер с именем testCluster и присвоить возвращённый кластер переменной с именем cluster:

mysql-js> var cluster = dba.createCluster('testCluster')
Validating instance at icadmin@ic-1:3306...
This instance reports its own address as ic-1
Instance configuration is suitable.
Creating InnoDB cluster 'testCluster' on 'icadmin@ic-1:3306'...
Adding Seed Instance...
Cluster successfully created. Use Cluster.addInstance() to add MySQL instances.
At least 3 instances are needed for the cluster to be able to withstand up to
one server failure.
Примечание

Имя кластера должно быть не пустым и не длиннее 63 символов. Оно может начинаться с буквенно-цифрового символа или с символа подчеркивания (_), и может содержать только буквенно-цифровые символы, символ подчеркивания (_), точку (.) или дефис (-).

Этот шаблон присвоения возвращённого кластера переменной позволяет вам выполнять дальнейшие операции с кластером, используя методы объекта Cluster. Возвращаемый объект Cluster использует новый сеанс, независимый от глобальной сессии MySQL Shell. Это гарантирует, что если вы измените глобальную сессию MySQL Shell, объект Cluster сохранит свой сеанс с экземпляром.

Для управления кластером необходимо убедиться, что у вас есть подходящий пользователь с необходимыми привилегиями. Рекомендуется создать пользователя для администрирования. Если вы не создали пользователя для администрирования при настройке экземпляров, используйте операцию Cluster.setupAdminAccount(). Например, чтобы создать пользователя с именем icadmin, который может администрировать кластер InnoDB, присвоенный переменной cluster, выполните:

mysql-js> cluster.setupAdminAccount("icadmin")

Подробнее об учётных записях администраторов кластера InnoDB см. в разделе Настройка учётных записей администраторов кластера InnoDB вручную.

При запуске dba.createCluster() и при добавлении дополнительного серверного экземпляра в кластер InnoDB с помощью Cluster.addInstance(), следующие ошибки регистрируются в журнале ошибок серверного экземпляра MySQL. Эти сообщения не опасны и связаны со способом запуска Group Replication AdminAPI:

2020-02-10T10:53:43.727246Z 12 [ERROR] [MY-011685] [Repl] Plugin
group_replication reported: 'The group name option is mandatory'
2020-02-10T10:53:43.727292Z 12 [ERROR] [MY-011660] [Repl] Plugin
group_replication reported: 'Unable to start Group Replication on boot'
Примечание

Если вы столкнётесь с ошибкой, связанной с недоступностью метаданных, возможно, у вас настроено интерфейс петли обратной связи. Для корректной работы кластера InnoDB отключите интерфейс петли обратной связи.

Чтобы проверить, был ли создан кластер, используйте функцию status() экземпляра кластера. См. Проверка состояния кластера с помощью функции Cluster.status().

Подсказка

После того, как серверные экземпляры станут частью кластера, их необходимо администрировать только с помощью MySQL Shell и AdminAPI. Попытки вручную изменить конфигурацию Group Replication на экземпляре после его добавления в кластер не поддерживаются. Аналогично, изменения серверных переменных, критически важных для InnoDB Cluster, таких как , после конфигурирования экземпляра с помощью AdminAPI не поддерживаются.

При создании кластера с помощью MySQL Shell можно задать время ожидания перед исключением экземпляров из кластера, например, когда они становятся недоступными. Передайте опцию expelTimeout к операции dba.createCluster(), которая настраивает переменную на исходном экземпляре. Опция expelTimeout может принимать целое значение в диапазоне от 0 до 3600. Все экземпляры, выполняющие MySQL Server 8.0.13 и выше, которые добавляются в кластер с настроенной опцией expelTimeout, автоматически настраиваются на то, чтобы иметь такое же значение expelTimeout, как и настроенное на исходном экземпляре.

Дополнительную информацию об остальных опциях, которые можно передать dba.createCluster(), см. в разделе Раздел 8.9, «Изменение или расформирование кластера InnoDB».

Можно включить или отключить с помощью dba.createCluster().

Примечание

Это может быть установлено только MySQL Shell на MySQL Server 8.0.31 или выше, потому что MySQL Shell требует информации, предоставляемой WRITE_CONSENSUS_SINGLE_LEADER_CAPABLE в таблице, которая была введена в MySQL 8.0.31.

InnoDB Cluster replicationAllowedHost

При создании кластера, если у вас есть требования безопасности, что все учётные записи, созданные автоматически AdminAPI, имеют жёсткие требования к аутентификации, вы можете задать значение для параметра конфигурации кластера replicationAllowedHost. Параметр replicationAllowedHost означает, что все автоматически созданные учётные записи могут подключаться только с разрешённых хостов, используя жёсткое фильтрование на основе подсетей. Ранее учётные записи, создаваемые кластером InnoDB (replicationAllowedHost), по умолчанию, были доступны откуда угодно.

Параметр replicationAllowedHost может принимать строковое значение. Например, чтобы создать кластер с именем testCluster и установить параметр replicationAllowedHost на значение 192.0.2.0/24, выполните:

mysql-js> dba.createCluster('testCluster', {replicationAllowedHost:'192.0.2.0/24'})

Настройка стека взаимодействия

InnoDB Cluster поддерживает стек взаимодействия MySQL, представленный для Group Replication в MySQL 8.0.27.

Параметр communicationStack: XCOM|MYSQL задаёт значение системной переменной Group Replication.

Например:

       mysql-js> dba.createCluster("testCluster", {communicationStack: "xcom"})
      

Стек взаимодействия MYSQL является значением по умолчанию для всех новых кластеров, созданных для MySQL 8.0.27 и выше.

Более подробная информация представлена в разделе Раздел 8.5.9, «Настройка стека взаимодействия Group Replication».

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

Spec-Zone.ru

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