Spec-Zone.ru › MySQL 5.7

21.6.7.2 Добавление узлов данных NDB Cluster онлайн: базовая процедура

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

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

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

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

  2. Выполните поэтапную перезагрузку всех серверов управления кластером NDB.

    Важно

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

  3. Выполните поэтапную перезагрузку всех существующих узлов данных кластера NDB. При перезагрузке существующих узлов данных нет необходимости (и обычно даже нежелательно) использовать --initial.

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

  4. Выполните поэтапную перезагрузку всех SQL- или API-узлов, подключенных к кластеру NDB.

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

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

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

  7. Перераспределите данные кластера между всеми узлами данных, включая новые. Обычно это делается путем выполнения инструкции 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, которая существовала до добавления новых узлов, не распределяются с использованием новых узлов до тех пор, пока эта таблица не будет переорганизована.

  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-5.7-en/mysql-cluster-online-add-node-basics.html

Spec-Zone.ru

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