25.6.7.2 Добавление узлов данных NDB Cluster онлайн: базовый метод
В этом разделе перечислены базовые шаги, необходимые для добавления новых узлов данных в NDB Cluster. Этот метод применим, если вы используете двоичные файлы ndbd или ndbmtd для процессов узлов данных. Более подробный пример см. в разделе 25.6.7.3 «Добавление узлов данных NDB Cluster онлайн: подробный пример».
Предполагая, что у вас уже есть работающий NDB Cluster, добавление узлов данных онлайн требует следующих шагов:
-
Отредактируйте файл конфигурации кластера
config.ini, добавив новые секции[ndbd], соответствующие добавляемым узлам. В случае использования кластером нескольких серверов управления, эти изменения необходимо внести во все файлыconfig.ini, используемые серверами управления.Следует быть внимательным, чтобы идентификаторы узлов для любых новых узлов данных, добавленных в файл
config.ini, не пересекались с идентификаторами узлов, используемыми существующими узлами. В случае наличия узлов API, использующих динамически назначаемые идентификаторы узлов, и эти идентификаторы совпадают с идентификаторами узлов, которые вы хотите использовать для новых узлов данных, возможно принудительно заставить такие узлы API «мигрировать», как описано далее в этой процедуре. -
Выполните поочерёдный перезапуск всех серверов управления NDB Cluster.
-
Выполните поочерёдный перезапуск всех существующих узлов данных NDB Cluster. Не требуется (и обычно нежелательно) использовать
--initialпри перезапуске существующих узлов данных.Если вы используете узлы API с динамически назначаемыми идентификаторами, совпадающими с любыми идентификаторами узлов, которые вы хотите назначить новым узлам данных, вы должны перезапустить все узлы API (включая узлы SQL) перед перезапуском любых процессов узлов данных на этом шаге. Это заставит любые узлы API с идентификаторами узлов, которые ранее не были явно назначены, отказаться от этих идентификаторов и получить новые.
Выполните поочерёдный перезапуск любых узлов SQL или API, подключённых к NDB Cluster.
-
Запустите новые узлы данных.
Новые узлы данных можно запускать в любом порядке. Их также можно запускать одновременно, при условии, что они запущены после завершения поочерёдных перезапусков всех существующих узлов данных и перед переходом к следующему шагу.
Выполните одну или несколько команд
CREATE NODEGROUPв клиенте управления NDB Cluster для создания новой группы узлов или групп узлов, к которым принадлежат новые узлы данных.-
Перераспределите данные кластера между всеми узлами данных, включая новые. Обычно это делается путём выполнения инструкции
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, существовавшую до добавления новых узлов, не распределяются с использованием новых узлов до тех пор, пока эта таблица не будет реорганизована. -
ALTER TABLE ... REORGANIZE PARTITION ALGORITHM=INPLACEреорганизует разделы, но не освобождает занимаемое пространство на «старых» узлах. Это можно сделать, выполнив для каждой таблицыNDBCLUSTERинструкциюOPTIMIZE TABLEв клиенте mysql.Это работает для пространства, используемого столбцами переменной ширины в таблицах памяти
NDB.OPTIMIZE TABLEне поддерживается для столбцов фиксированной ширины в таблицах памяти; он также не поддерживается для таблиц данных на диске.
Вы можете добавить все желаемые узлы, а затем выполнить несколько команд CREATE NODEGROUP последовательно, чтобы добавить новые группы узлов в кластер.
© 2025 Oracle
Licensed under the GPLv2 License.