Spec-Zone.ru › MySQL 9.2

25.6.7.2 Добавление узлов данных NDB Cluster онлайн: базовый метод

В этом разделе перечислены базовые шаги, необходимые для добавления новых узлов данных в NDB Cluster. Этот метод применим, если вы используете двоичные файлы ndbd или ndbmtd для процессов узлов данных. Более подробный пример см. в разделе 25.6.7.3 «Добавление узлов данных NDB Cluster онлайн: подробный пример».

Предполагая, что у вас уже есть работающий NDB Cluster, добавление узлов данных онлайн требует следующих шагов:

  1. Отредактируйте файл конфигурации кластера config.ini, добавив новые секции [ndbd], соответствующие добавляемым узлам. В случае использования кластером нескольких серверов управления, эти изменения необходимо внести во все файлы config.ini, используемые серверами управления.

    Следует быть внимательным, чтобы идентификаторы узлов для любых новых узлов данных, добавленных в файл config.ini, не пересекались с идентификаторами узлов, используемыми существующими узлами. В случае наличия узлов API, использующих динамически назначаемые идентификаторы узлов, и эти идентификаторы совпадают с идентификаторами узлов, которые вы хотите использовать для новых узлов данных, возможно принудительно заставить такие узлы API «мигрировать», как описано далее в этой процедуре.

  2. Выполните поочерёдный перезапуск всех серверов управления NDB Cluster.

    Важно

    Все серверы управления должны быть перезапущены с опцией --reload или --initial для принудительного чтения новой конфигурации.

  3. Выполните поочерёдный перезапуск всех существующих узлов данных NDB Cluster. Не требуется (и обычно нежелательно) использовать --initial при перезапуске существующих узлов данных.

    Если вы используете узлы API с динамически назначаемыми идентификаторами, совпадающими с любыми идентификаторами узлов, которые вы хотите назначить новым узлам данных, вы должны перезапустить все узлы API (включая узлы SQL) перед перезапуском любых процессов узлов данных на этом шаге. Это заставит любые узлы API с идентификаторами узлов, которые ранее не были явно назначены, отказаться от этих идентификаторов и получить новые.

  4. Выполните поочерёдный перезапуск любых узлов SQL или API, подключённых к NDB Cluster.

  5. Запустите новые узлы данных.

    Новые узлы данных можно запускать в любом порядке. Их также можно запускать одновременно, при условии, что они запущены после завершения поочерёдных перезапусков всех существующих узлов данных и перед переходом к следующему шагу.

  6. Выполните одну или несколько команд CREATE NODEGROUP в клиенте управления NDB Cluster для создания новой группы узлов или групп узлов, к которым принадлежат новые узлы данных.

  7. Перераспределите данные кластера между всеми узлами данных, включая новые. Обычно это делается путём выполнения инструкции ALTER TABLE ... ALGORITHM=INPLACE, REORGANIZE PARTITION в клиенте mysql для каждой таблицы NDBCLUSTER.

    Исключение: Для таблиц, созданных с использованием опции MAX_ROWS, эта инструкция не работает; вместо этого используйте ALTER TABLE ... ALGORITHM=INPLACE MAX_ROWS=... для реорганизации таких таблиц. Вы также должны помнить, что использование MAX_ROWS для установки количества разделов таким способом устарело, и вы должны использовать PARTITION_BALANCE вместо этого; см. раздел 15.1.21.12 «Указание параметров комментариев NDB» для получения дополнительной информации.

    Примечание

    Это необходимо сделать только для таблиц, которые уже существовали на момент добавления новой группы узлов. Данные в таблицах, созданных после добавления новой группы узлов, распределяются автоматически; однако данные, добавленные в любую таблицу tbl, существовавшую до добавления новых узлов, не распределяются с использованием новых узлов до тех пор, пока эта таблица не будет реорганизована.

  8. ALTER TABLE ... REORGANIZE PARTITION ALGORITHM=INPLACE реорганизует разделы, но не освобождает занимаемое пространство на «старых» узлах. Это можно сделать, выполнив для каждой таблицы NDBCLUSTER инструкцию OPTIMIZE TABLE в клиенте mysql.

    Это работает для пространства, используемого столбцами переменной ширины в таблицах памяти NDB. OPTIMIZE TABLE не поддерживается для столбцов фиксированной ширины в таблицах памяти; он также не поддерживается для таблиц данных на диске.

Вы можете добавить все желаемые узлы, а затем выполнить несколько команд CREATE NODEGROUP последовательно, чтобы добавить новые группы узлов в кластер.

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-9.2-en/mysql-cluster-online-add-node-basics.html

Spec-Zone.ru

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