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.20.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.