21.6.7.2 Добавление узлов данных NDB Cluster онлайн: базовая процедура
В этом разделе мы перечислим базовые шаги, необходимые для добавления новых узлов данных в кластер NDB. Эта процедура применима как при использовании бинарников ndbd, так и ndbmtd для процессов узлов данных. Для более подробного примера см. Раздел 21.6.7.3, «Добавление узлов данных NDB Cluster онлайн: подробный пример».
Предполагая, что у вас уже есть работающий кластер NDB, для добавления узлов данных онлайн требуется выполнить следующие шаги:
-
Измените файл конфигурации кластера
config.ini, добавив новые[ndbd]секции, соответствующие узлам, которые нужно добавить. В случае использования кластера с несколькими серверами управления эти изменения необходимо внести во все файлыconfig.ini, используемые серверами управления.Необходимо следить, чтобы идентификаторы узлов для всех новых узлов данных, добавленных в файл
config.ini, не пересекались с идентификаторами узлов существующих узлов. В случае наличия API-узлов, использующих динамически назначенные идентификаторы узлов, которые совпадают с идентификаторами узлов, которые вы хотите использовать для новых узлов данных, можно заставить такие API-узлы “переместиться”, как описано позже в этой процедуре. -
Выполните поэтапную перезагрузку всех серверов управления кластером NDB.
-
Выполните поэтапную перезагрузку всех существующих узлов данных кластера NDB. При перезагрузке существующих узлов данных нет необходимости (и обычно даже нежелательно) использовать
--initial.Если вы используете API-узлы с динамически назначенными идентификаторами, совпадающими с любыми идентификаторами узлов, которые вы хотите назначить новым узлам данных, необходимо перезагрузить все API-узлы (включая SQL-узлы) перед перезагрузкой любых процессов узлов данных на этом шаге. Это заставит любые API-узлы с идентификаторами узлов, которые ранее не были явно назначены, отказаться от этих идентификаторов и получить новые.
Выполните поэтапную перезагрузку всех SQL- или API-узлов, подключенных к кластеру NDB.
-
Запустите новые узлы данных.
Новые узлы данных можно запускать в любом порядке. Их также можно запускать одновременно, при условии, что они запускаются после завершения поэтапной перезагрузки всех существующих узлов данных и до перехода к следующему шагу.
Выполните одну или несколько команд
CREATE NODEGROUPв клиенте управления кластером NDB для создания новой группы узлов или групп узлов, к которым принадлежат новые узлы данных.-
Перераспределите данные кластера между всеми узлами данных, включая новые. Обычно это делается путем выполнения инструкции
ALTER TABLE ... ALGORITHM=INPLACE, REORGANIZE PARTITIONв клиенте mysql для каждой таблицыNDBCLUSTER.Исключение: Для таблиц, созданных с использованием опции
MAX_ROWS, эта инструкция не работает; вместо этого используйтеALTER TABLE ... ALGORITHM=INPLACE MAX_ROWS=...для переорганизации таких таблиц. Также следует учитывать, что использованиеMAX_ROWSдля установки количества разделов таким образом устарело в NDB 7.5.4 и более поздних версиях, где следует использоватьPARTITION_BALANCE; см. Раздел 13.1.18.9, «Установка параметров комментариев NDB» для получения дополнительной информации.ПримечаниеЭто необходимо только для таблиц, уже существующих на момент добавления новой группы узлов. Данные в таблицах, созданных после добавления новой группы узлов, распределяются автоматически; однако данные, добавленные в любую таблицу
tbl, которая существовала до добавления новых узлов, не распределяются с использованием новых узлов до тех пор, пока эта таблица не будет переорганизована. -
ALTER TABLE ... REORGANIZE PARTITION ALGORITHM=INPLACEпереорганизовывает разделы, но не освобождает пространство, освобожденное на узлах “старых”. Для этого можно выполнить для каждой таблицыNDBCLUSTERинструкциюOPTIMIZE TABLEв клиенте mysql.Это работает для пространства, используемого столбцами переменной длины в таблицах памяти
NDB.OPTIMIZE TABLEне поддерживается для столбцов фиксированной длины таблиц памяти; он также не поддерживается для таблиц данных на диске.
Вы можете добавить все желаемые узлы, а затем последовательно выполнить несколько команд CREATE NODEGROUP для добавления новых групп узлов в кластер.
© 2025 Oracle
Licensed under the GPLv2 License.