25.4.3.7 Определение узлов SQL и других API в кластере NDB
Разделы [mysqld] и [api] в файле config.ini определяют поведение серверов MySQL (узлы SQL) и других приложений (узлы API), используемых для доступа к данным кластера. Ни один из показанных параметров не является обязательным. Если не указано имя компьютера или хоста, любой хост может использовать этот узел SQL или API.
В общем случае, раздел [mysqld] используется для указания сервера MySQL, предоставляющего интерфейс SQL для кластера, а раздел [api] используется для приложений, отличных от процессов mysqld, которые обращаются к данным кластера, но эти обозначения фактически являются синонимами; например, вы можете перечислить параметры сервера MySQL, действующего в качестве узла SQL, в разделе [api].
Обсуждение параметров сервера MySQL для NDB Cluster см. в Разделе 25.4.3.9.1, «Параметры сервера MySQL для NDB Cluster». Сведения о системных переменных сервера MySQL, относящихся к NDB Cluster, см. в Разделе 25.4.3.9.2, «Системные переменные NDB Cluster».
-
IdВерсия (или более поздняя) NDB 9.2.0 Тип или единицы unsigned Значение по умолчанию [...] Диапазон 1 - 255 Тип перезапуска Первоначальный перезапуск системы: Требуется полное выключение кластера, очистка и восстановление файловой системы кластера из резервной копии, а затем перезапуск кластера. (NDB 9.2.0)
Idпредставляет собой целочисленное значение, используемое для идентификации узла во всех внутренних сообщениях кластера. Допустимый диапазон значений — от 1 до 255 включительно. Это значение должно быть уникальным для каждого узла в кластере, независимо от типа узла.ПримечаниеИдентификаторы узлов данных должны быть меньше 145. Если вы планируете развернуть большое количество узлов данных, рекомендуется ограничить идентификаторы узлов для узлов API (и узлов управления) значениями больше 144.
NodeId— предпочтительное имя параметра, используемое при идентификации узлов API. (Idпродолжает поддерживаться для обратной совместимости, но теперь устарел и генерирует предупреждение при использовании. Он также может быть удален в будущем.) -
ConnectionMapВерсия (или более поздняя) NDB 9.2.0 Тип или единицы string Значение по умолчанию [...] Диапазон ... Тип перезапуска Перезапуск узла: Требуется последовательный перезапуск кластера. (NDB 9.2.0)
Указывает, к каким узлам данных необходимо подключаться.
-
NodeIdВерсия (или более поздняя) NDB 9.2.0 Тип или единицы unsigned Значение по умолчанию [...] Диапазон 1 - 255 Тип перезапуска Первоначальный перезапуск системы: Требуется полное выключение кластера, очистка и восстановление файловой системы кластера из резервной копии, а затем перезапуск кластера. (NDB 9.2.0)
NodeIdпредставляет собой целочисленное значение, используемое для идентификации узла во всех внутренних сообщениях кластера. Допустимый диапазон значений — от 1 до 255 включительно. Это значение должно быть уникальным для каждого узла в кластере, независимо от типа узла.ПримечаниеИдентификаторы узлов данных должны быть меньше 145. Если вы планируете развернуть большое количество узлов данных, рекомендуется ограничить идентификаторы узлов для узлов API (и узлов управления) значениями больше 144.
NodeId— предпочтительное имя параметра, используемое при идентификации узлов управления. ПсевдонимIdиспользовался для этой цели в очень старых версиях NDB Cluster и продолжает поддерживаться для обратной совместимости; теперь он устарел и генерирует предупреждение при использовании, и может быть удален в будущих версиях NDB Cluster. -
ExecuteOnComputerВерсия (или более поздняя) NDB 9.2.0 Тип или единицы name Значение по умолчанию [...] Диапазон ... Устарел Да (в NDB 7.5) Тип перезапуска Перезапуск системы: Требуется полное выключение и перезапуск кластера. (NDB 9.2.0)
Это относится к набору
Idдля одного из компьютеров (хостов), определенных в разделе[computer]файла конфигурации.ВажноЭтот параметр устарел и может быть удален в будущих версиях. Используйте вместо него параметр
HostName. -
Идентификатор узла для этого узла может быть предоставлен только соединениям, которые явно его запрашивают. Сервер управления, запрашивающий идентификатор узла “любой”, не может использовать этот. Этот параметр можно использовать при запуске нескольких серверов управления на одном хосте, а
HostNameнедостаточно для различения процессов. -
HostNameВерсия (или более поздняя) NDB 9.2.0 Тип или единицы name or IP address Значение по умолчанию [...] Диапазон ... Тип перезапуска Перезапуск узла: Требуется последовательный перезапуск кластера. (NDB 9.2.0)
Указание этого параметра определяет имя хоста компьютера, на котором должен находиться узел SQL (узел API). Используйте
HostNameдля указания имени хоста, отличного отlocalhost.Если
HostNameне указан в данном разделе[mysql]или[api]файлаconfig.ini, то узел SQL или API может подключаться, используя соответствующий “слот” с любого хоста, который может установить сетевое соединение с хост-машиной сервера управления. Это отличается от поведения по умолчанию для узлов данных, гдеlocalhostпредполагается дляHostName, если не указано иное. -
Версия (или более поздняя) NDB 9.2.0 Тип или единицы integer Значение по умолчанию 0 Диапазон 0 - 16 Тип перезапуска Перезапуск системы: Требуется полное выключение и перезапуск кластера. (NDB 9.2.0)
Назначает узел SQL или другой узел API определенному домену доступности (также известному как зона доступности) в облаке. Информируя
NDBо том, какие узлы находятся в каких доменах доступности, производительность может быть улучшена в облачной среде следующим образом:Если запрашиваемые данные не найдены на том же узле, чтение может быть направлено на другой узел в том же домене доступности.
Гарантируется, что связь между узлами в разных доменах доступности будет использовать поддержку WAN-транспортеров
NDBбез какого-либо дополнительного вмешательства.Номер группы транспортера может основываться на используемом домене доступности, так что узлы SQL и другие узлы API также взаимодействуют с локальными узлами данных в том же домене доступности, когда это возможно.
Арбитр может быть выбран из домена доступности, в котором отсутствуют узлы данных, или, если такой домен доступности не найден, из третьего домена доступности.
LocationDomainIdпринимает целочисленное значение от 0 до 16 включительно, при этом 0 является значением по умолчанию; использование 0 эквивалентно тому, что параметр не задан. -
ArbitrationRankВерсия (или более поздняя) NDB 9.2.0 Тип или единицы 0-2 Значение по умолчанию 0 Диапазон 0 - 2 Тип перезапуска Перезапуск узла: Требуется последовательный перезапуск кластера. (NDB 9.2.0)
Этот параметр определяет, какие узлы могут выступать в качестве арбитров. И узлы управления, и узлы SQL могут быть арбитрами. Значение 0 означает, что данный узел никогда не используется в качестве арбитра, значение 1 присваивает узлу высокий приоритет в качестве арбитра, а значение 2 — низкий приоритет. В обычной конфигурации сервер управления используется в качестве арбитра, устанавливая его
ArbitrationRankв 1 (по умолчанию для узлов управления), а для всех узлов SQL — в 0 (по умолчанию для узлов SQL).Установив
ArbitrationRankв 0 для всех узлов управления и SQL, вы можете полностью отключить арбитраж. Вы также можете управлять арбитражем, переопределив этот параметр; для этого установите параметрArbitrationв разделе[ndbd default]глобального файла конфигурацииconfig.ini.
-
ArbitrationDelayВерсия (или более поздняя) NDB 9.2.0 Тип или единицы измерения миллисекунды Значение по умолчанию 0 Диапазон 0 - 4294967039 (0xFFFFFEFF) Тип перезапуска Перезапуск узла: Требуется пошаговая перезагрузка кластера. (NDB 9.2.0)
Установка этого параметра на любое значение, отличное от 0 (значение по умолчанию), означает, что ответы арбитра на запросы арбитража будут задерживаться на указанное количество миллисекунд. Обычно нет необходимости изменять это значение.
-
Версия (или более поздняя) NDB 9.2.0 Тип или единицы измерения байты Значение по умолчанию 16K Диапазон 1K - 1M Тип перезапуска Перезапуск узла: Требуется пошаговая перезагрузка кластера. (NDB 9.2.0)
Для запросов, которые преобразуются в полное сканирование таблиц или сканирование диапазонов по индексам, для достижения наилучшей производительности важно извлекать записи пакетами соответствующего размера. Можно задать соответствующий размер как по количеству записей (
BatchSize), так и в байтах (BatchByteSize). Фактический размер пакета ограничен обоими параметрами.Скорость выполнения запросов может изменяться более чем на 40% в зависимости от того, как установлен этот параметр.
Этот параметр измеряется в байтах. Значение по умолчанию — 16K.
-
Версия (или более поздняя) NDB 9.2.0 Тип или единицы измерения записи Значение по умолчанию 256 Диапазон 1 - 992 Тип перезапуска Перезапуск узла: Требуется пошаговая перезагрузка кластера. (NDB 9.2.0)
Этот параметр измеряется в количестве записей и по умолчанию установлен в 256. Максимальный размер — 992.
-
Версия (или более поздняя) NDB 9.2.0 Тип или единицы измерения байты Значение по умолчанию 0 Диапазон 0 - 4294967039 (0xFFFFFEFF) Тип перезапуска Перезапуск узла: Требуется пошаговая перезагрузка кластера. (NDB 9.2.0)
Этот параметр указывает объем памяти буфера отправки транспортера, который необходимо выделить в дополнение к любому объему, установленному с помощью
TotalSendBufferMemory,SendBufferMemoryили обоих. -
Версия (или более поздняя) NDB 9.2.0 Тип или единицы измерения строка Значение по умолчанию [...] Диапазон ... Тип перезапуска Перезапуск узла: Требуется пошаговая перезагрузка кластера. (NDB 9.2.0)
Используйте этот параметр для установки политики планирования и приоритета потоков пульсации для узлов управления и API. Синтаксис для установки этого параметра показан здесь:
HeartbeatThreadPriority =
policy[,priority]policy: {FIFO | RR}При установке этого параметра необходимо указать политику. Это один из
FIFO(первым пришел, первым обслужен) илиRR(круговая очередь). За этим необязательно следует приоритет (целое число). -
Версия (или более поздняя) NDB 9.2.0 Тип или единицы измерения байты Значение по умолчанию 256K Диапазон 32K - 16M Тип перезапуска Перезапуск узла: Требуется пошаговая перезагрузка кластера. (NDB 9.2.0)
Размер пакета — это размер каждого пакета, отправляемого с каждого узла данных. Большинство сканирований выполняются параллельно, чтобы защитить сервер MySQL от получения слишком больших объемов данных от многих узлов параллельно; этот параметр устанавливает ограничение на общий размер пакета по всем узлам.
Значение по умолчанию этого параметра установлено в 256 КБ. Его максимальный размер — 16 МБ.
-
TotalSendBufferMemoryВерсия (или более поздняя) NDB 9.2.0 Тип или единицы измерения байты Значение по умолчанию 0 Диапазон 256K - 4294967039 (0xFFFFFEFF) Тип перезапуска Перезапуск узла: Требуется пошаговая перезагрузка кластера. (NDB 9.2.0)
Этот параметр используется для определения общего объема памяти, который необходимо выделить на этом узле для общей памяти буфера отправки среди всех настроенных транспортеров.
Если этот параметр установлен, его минимально допустимое значение составляет 256 КБ; 0 указывает на то, что параметр не установлен. Для получения более подробной информации см. Раздел 25.4.3.14, «Настройка параметров буфера отправки кластера NDB».
-
Версия (или более поздняя) NDB 9.2.0 Тип или единицы измерения булево Значение по умолчанию false Диапазон true, false Тип перезапуска Перезапуск узла: Требуется пошаговая перезагрузка кластера. (NDB 9.2.0)
Этот параметр по умолчанию
false. Это заставляет отключенные узлы API (включая серверы MySQL, выступающие в качестве узлов SQL) использовать новое соединение с кластером, а не пытаться повторно использовать существующее, поскольку повторное использование соединений может вызывать проблемы при использовании динамически распределяемых идентификаторов узлов. (Ошибка #45921)ПримечаниеЭтот параметр можно переопределить с помощью API NDB. Для получения дополнительной информации см., и .
-
DefaultOperationRedoProblemActionВерсия (или более поздняя) NDB 9.2.0 Тип или единицы перечисление Значение по умолчанию QUEUE Диапазон ABORT, QUEUE Тип перезапуска Перезапуск узла: Требуется повторный запуск кластера. (NDB 9.2.0)
Этот параметр (наряду с
RedoOverCommitLimitиRedoOverCommitCounter) управляет обработкой узлом данных операций, когда на запись журналов redo в диск тратится слишком много времени. Это происходит, когда запись журнала redo занимает больше времени, чемRedoOverCommitLimitсекунд, более чемRedoOverCommitCounterраз, вызывая прерывание всех ожидающих транзакций.В этом случае узел может реагировать одним из двух способов, в зависимости от значения
DefaultOperationRedoProblemAction, перечисленных здесь:ABORT: Все ожидающие операции из прерванных транзакций также прерываются.QUEUE: Ожидающие операции из прерванных транзакций помещаются в очередь для повторной попытки. Это значение используется по умолчанию. Ожидающие операции по-прежнему прерываются, когда в журнале redo заканчивается место — то есть, когда возникают ошибки P_TAIL_PROBLEM.
-
Версия (или более поздняя) NDB 9.2.0 Тип или единицы ячейки Значение по умолчанию 3840 Диапазон 0 - 3840 Тип перезапуска Перезапуск узла: Требуется повторный запуск кластера. (NDB 9.2.0)
Размер таблиц хэш-карт, используемых
NDB, можно настроить с помощью этого параметра.DefaultHashMapSizeможет принимать одно из трех возможных значений (0, 240, 3840). Эти значения и их влияние описаны в следующей таблице.Таблица 25.16 Значения параметра DefaultHashMapSize
Таблица 25.16 Значения параметра DefaultHashMapSize Значение Описание / Эффект 0Используется наименьшее установленное значение этого параметра среди всех узлов данных и узлов API в кластере; если он не установлен ни на одном узле данных или API, используется значение по умолчанию. 240Старый размер хэш-карты по умолчанию 3840Размер хэш-карты, используемый по умолчанию в NDB 9.2 Первоначально этот параметр предназначался для упрощения обновления и понижения версии до и из более старых версий NDB Cluster, в которых размер хэш-карты отличался, из-за того, что это изменение не было обратно совместимым.
-
Версия (или более поздняя) NDB 9.2.0 Тип или единицы булево Значение по умолчанию false Диапазон true, false Тип перезапуска Перезапуск узла: Требуется повторный запуск кластера. (NDB 9.2.0)
Использовать настройку WAN TCP по умолчанию.
-
Версия (или более поздняя) NDB 9.2.0 Тип или единицы целое число Значение по умолчанию 0 Диапазон 0 - 4294967039 (0xFFFFFEFF) Тип перезапуска Перезапуск узла: Требуется повторный запуск кластера. (NDB 9.2.0)
В кластере NDB с большим количеством незапущенных узлов данных значение этого параметра может быть увеличено, чтобы избежать попыток подключения к узлам данных, которые еще не начали функционировать в кластере, а также смягчить высокую нагрузку на узлы управления. Пока узел API не подключен ни к каким новым узлам данных, применяется значение параметра
StartConnectBackoffMaxTime; в противном случае,ConnectBackoffMaxTimeиспользуется для определения длительности ожидания в миллисекундах между попытками подключения.Время, прошедшее во время попыток подключения узла, не учитывается при вычислении прошедшего времени для этого параметра. Тайм-аут применяется с разрешением приблизительно 100 мс, начиная с задержки 100 мс; для каждой последующей попытки длительность этого периода удваивается, пока не достигнет
ConnectBackoffMaxTimeмиллисекунд, максимум до 100000 мс (100 с).После того, как узел API подключится к узлу данных, и этот узел сообщит (в сообщении о сердцебиении), что он подключился к другим узлам данных, попытки подключения к этим узлам данных больше не будут затронуты этим параметром, и будут производиться каждые 100 мс до тех пор, пока не будет установлено соединение. После запуска узла данных может пройти до
HeartbeatIntervalDbApi, прежде чем узел API получит уведомление о том, что это произошло. -
Версия (или более поздняя) NDB 9.2.0 Тип или единицы целое число Значение по умолчанию 0 Диапазон 0 - 4294967039 (0xFFFFFEFF) Тип перезапуска Перезапуск узла: Требуется повторный запуск кластера. (NDB 9.2.0)
В кластере NDB с большим количеством незапущенных узлов данных значение этого параметра может быть увеличено, чтобы избежать попыток подключения к узлам данных, которые еще не начали функционировать в кластере, а также смягчить высокую нагрузку на узлы управления. Пока узел API не подключен ни к каким новым узлам данных, применяется значение параметра
StartConnectBackoffMaxTime; в противном случае,ConnectBackoffMaxTimeиспользуется для определения длительности ожидания в миллисекундах между попытками подключения.Время, прошедшее во время попыток подключения узла, не учитывается при вычислении прошедшего времени для этого параметра. Тайм-аут применяется с разрешением приблизительно 100 мс, начиная с задержки 100 мс; для каждой последующей попытки длительность этого периода удваивается, пока не достигнет
StartConnectBackoffMaxTimeмиллисекунд, максимум до 100000 мс (100 с).После того, как узел API подключится к узлу данных, и этот узел сообщит (в сообщении о сердцебиении), что он подключился к другим узлам данных, попытки подключения к этим узлам данных больше не будут затронуты этим параметром, и будут производиться каждые 100 мс до тех пор, пока не будет установлено соединение. После запуска узла данных может пройти до
HeartbeatIntervalDbApi, прежде чем узел API получит уведомление о том, что это произошло.
Параметры отладки узла API. Вы можете использовать параметр конфигурации ApiVerbose для включения вывода отладочной информации с заданного узла API. Этот параметр принимает целое значение. 0 является значением по умолчанию и отключает такую отладку; 1 включает вывод отладочной информации в лог кластера; 2 добавляет отладочный вывод DBDICT. (Ошибка #20638450) См. также DUMP 1229.
Вы также можете получить информацию с сервера MySQL, работающего как SQL-узел кластера NDB, используя SHOW
STATUS в клиенте mysql, как показано здесь:
mysql> SHOW STATUS LIKE 'ndb%';
+-----------------------------+----------------+
| Variable_name | Value |
+-----------------------------+----------------+
| Ndb_cluster_node_id | 5 |
| Ndb_config_from_host | 198.51.100.112 |
| Ndb_config_from_port | 1186 |
| Ndb_number_of_storage_nodes | 4 |
+-----------------------------+----------------+
4 rows in set (0.02 sec)
Для получения информации о переменных состояния, отображаемых в выводе этого оператора, см. Раздел 25.4.3.9.3, «Переменные состояния кластера NDB».
Для добавления новых узлов SQL или API в конфигурацию работающего NDB-кластера необходимо выполнить плавную перезагрузку всех узлов кластера после добавления новых разделов [mysqld] или [api] в файл config.ini (или файлы, если вы используете более одного сервера управления). Это необходимо сделать, прежде чем новые узлы SQL или API смогут подключиться к кластеру.
Не нужно выполнять перезагрузку кластера, если новые узлы SQL или API могут использовать ранее неиспользуемые слоты API в конфигурации кластера для подключения к кластеру.
Типы перезагрузки. Информация о типах перезагрузки, используемых в описаниях параметров в этом разделе, представлена в следующей таблице:
Таблица 25.17 Типы перезагрузки NDB-кластера
| Символ | Тип перезагрузки | Описание |
|---|---|---|
| N | Узел | Параметр можно обновить, используя плавную перезагрузку (см. Раздел 25.6.5, «Выполнение плавной перезагрузки NDB-кластера») |
| S | Система | Для изменения этого параметра необходимо полностью выключить все узлы кластера и затем перезапустить их. |
| I | Инициализация | Узлы данных необходимо перезапустить, используя опцию --initial |
© 2025 Oracle
Licensed under the GPLv2 License.