21.2.4.1 Что нового в NDB Cluster 7.5
Основные изменения и новые функции в NDB Cluster 7.5, которые, вероятно, будут представлять интерес, приведены в следующем списке:
-
Улучшения ndbinfo. В базе данных
ndbinfoвнесен ряд изменений, главными из которых являются предоставление подробной информации о параметрах конфигурации узлов NDB Cluster.Таблица
config_paramsстала только для чтения и дополнена дополнительными столбцами, предоставляющими информацию о каждом параметре конфигурации, включая тип параметра, значения по умолчанию, максимальные и минимальные значения (если применимо), краткое описание параметра и является ли параметр обязательным. Эта таблица также присваивает каждому параметру уникальныйparam_number.Строка в таблице
config_valuesотображает текущее значение заданного параметра на узле с указанным ID. Параметр определяется значением столбцаconfig_param, который сопоставляется со столбцомparam_numberв таблицеconfig_params.Используя эту связь, можно выполнить объединение этих двух таблиц, чтобы получить значения по умолчанию, максимальные, минимальные и текущие значения для одного или нескольких параметров конфигурации NDB Cluster по имени. Пример SQL-запроса с таким объединением показан здесь:
SELECT p.param_name AS Name, v.node_id AS Node, p.param_type AS Type, p.param_default AS 'Default', p.param_min AS Minimum, p.param_max AS Maximum, CASE p.param_mandatory WHEN 1 THEN 'Y' ELSE 'N' END AS 'Required', v.config_value AS Current FROM config_params p JOIN config_values v ON p.param_number = v.config_param WHERE p. param_name IN ('NodeId', 'HostName','DataMemory', 'IndexMemory');Дополнительную информацию об этих изменениях см. в разделе разделе 21.6.15.8, «Таблица ndbinfo config_params». Дополнительную информацию и примеры см. в разделе разделе 21.6.15.9, «Таблица ndbinfo config_values».
Кроме того, база данных
ndbinfoбольше не зависит от движка храненияMyISAM. Все таблицы и представленияndbinfoтеперь используютNDB(показано какNDBINFO).В NDB 7.5.4 было введено несколько новых таблиц
ndbinfo. Эти таблицы перечислены ниже с краткими описаниями:dict_obj_infoпредоставляет имена и типы объектов базы данных вNDB, а также информацию об родительских объектах, где это применимоtable_distribution_statusпредоставляет информацию о статусе распределения таблицNDBtable_fragmentsпредоставляет информацию о распределении фрагментов таблицыNDBtable_infoпредоставляет информацию о ведении журнала, контрольных точках, хранении и других параметрах, действующих для каждой таблицыNDBtable_replicasпредоставляет информацию о репликах фрагментов
Дополнительную информацию см. в описаниях отдельных таблиц.
-
Изменения формата строк и столбцов по умолчанию. Начиная с NDB 7.5.1, значение по умолчанию для опции
ROW_FORMATи опцииCOLUMN_FORMATдляCREATE TABLEможет быть установлено вDYNAMICвместоFIXED. В рамках этого изменения добавляется новая переменная сервера MySQLndb_default_column_format. Установите её вFIXEDилиDYNAMIC(или запустите mysqld с эквивалентной опцией--ndb-default-column-format=FIXED), чтобы принудительно использовать это значение дляCOLUMN_FORMATиROW_FORMAT. До NDB 7.5.4 значение по умолчанию для этой переменной былоDYNAMIC; в этой и более поздних версиях значение по умолчанию —FIXED, что обеспечивает обратную совместимость с предыдущими выпусками (ошибка #24487363).Формат строк и столбцов, используемый существующими столбцами таблицы, не затрагиваются этим изменением. Новые столбцы, добавленные в такие таблицы, используют новые значения по умолчанию (возможно, переопределённые
ndb_default_column_format), а существующие столбцы также изменяются, при условии, что операция ALTER TABLE указывает наALGORITHM=COPY.ПримечаниеНеявное копирование
ALTER TABLEневозможно, если mysqld запускается с опцией--ndb-allow-copying-alter-table=FALSE. -
ndb_binlog_index больше не зависит от MyISAM. Начиная с NDB 7.5.2, таблица
ndb_binlog_index, используемая в NDB Cluster Replication, теперь использует движок храненияInnoDBвместоMyISAM. При обновлении можно запустить mysql_upgrade с--force--upgrade-system-tables, чтобы заставить его выполнитьALTER TABLE ... ENGINE=INNODBдля этой таблицы. ИспользованиеMyISAMдля этой таблицы по-прежнему поддерживается для обратной совместимости.Преимущество этого изменения заключается в возможности опираться на транзакционное поведение и чтение без блокировок для этой таблицы, что может помочь снизить проблемы с одновременностью при операциях очистки и вращении журналов, а также повысить доступность этой таблицы.
-
Изменения в ALTER TABLE. Раньше NDB Cluster поддерживал альтернативную синтаксическую конструкцию для онлайн
ALTER TABLE. В NDB Cluster 7.5 это больше не поддерживается, и используется толькоALGORITHM = DEFAULT|COPY|INPLACEдля DDL таблиц, как и в стандартном MySQL Server.Ещё одно изменение, влияющее на использование этого оператора, заключается в том, что
ALTER TABLE ... ALGORITHM=INPLACE RENAMEможет теперь содержать DDL-операции в дополнение к переименованию. Параметр ExecuteOnComputer устарел. Параметр конфигурации
ExecuteOnComputerдля узлов управления, узлов данных и узлов API устарел и может быть удалён в будущих релизах NDB Cluster. Следует использовать эквивалентный параметрHostNameдля всех трёх типов узлов.-
Оптимизация records-per-key. Обработчик NDB теперь использует интерфейс records-per-key для статистики индексов, реализованной для оптимизатора в MySQL 5.7.5. Некоторые из преимуществ этого изменения включают следующие:
Оптимизатор теперь выбирает лучшие планы выполнения во многих случаях, где ранее выбирался менее оптимальный индекс соединения или порядок соединения таблиц
Оценки строк, показанные командой
EXPLAIN, более точныОценки кардинальности, показанные командой
SHOW INDEX, улучшены
-
Идентификаторы узлов пула подключений. NDB 7.5.0 добавляет опцию mysqld
--ndb-cluster-connection-pool-nodeids, которая позволяет установить набор идентификаторов узлов для пула подключений. Это значение переопределяет--ndb-nodeid, что означает, что оно также переопределяет опцию--ndb-connectstringи переменную средыNDB_CONNECTSTRING.ПримечаниеРазмер пула подключений можно установить, используя опцию
--ndb-cluster-connection-poolдля mysqld. create_old_temporals удалён. Система переменная
create_old_temporalsбыла устарела в NDB Cluster 7.4 и теперь удалена.-
Команда ndb_mgm Client PROMPT. NDB Cluster 7.5 добавляет новую команду для установки приглашения командной строки клиента. Следующий пример демонстрирует использование команды
PROMPT:ndb_mgm>
PROMPT mgm#1:mgm#1:SHOWCluster Configuration --------------------- [ndbd(NDB)] 4 node(s) id=5 @10.100.1.1 (mysql-5.7.44-ndb-7.5.36, Nodegroup: 0, *) id=6 @10.100.1.3 (mysql-5.7.44-ndb-7.5.36, Nodegroup: 0) id=7 @10.100.1.9 (mysql-5.7.44-ndb-7.5.36, Nodegroup: 1) id=8 @10.100.1.11 (mysql-5.7.44-ndb-7.5.36, Nodegroup: 1) [ndb_mgmd(MGM)] 1 node(s) id=50 @10.100.1.8 (mysql-5.7.44-ndb-7.5.36) [mysqld(API)] 2 node(s) id=100 @10.100.1.8 (5.7.44-ndb-7.5.36) id=101 @10.100.1.10 (5.7.44-ndb-7.5.36) mgm#1:PROMPTndb_mgm>EXITjon@valhaj:/usr/local/mysql/bin>Дополнительную информацию и примеры см. в разделе разделе 21.6.1, «Команды в клиенте управления NDB Cluster».
Увеличен объём хранилища столбцов FIXED на фрагмент. NDB Cluster 7.5 и более поздние версии поддерживают максимальный объём данных в столбцах
FIXEDв 128 ТБ на фрагмент. В NDB Cluster 7.4 и более ранних версиях этот объём составлял 16 ГБ на фрагмент.
-
Устаревшие параметры удалены. Следующие параметры конфигурации узлов данных NDB Cluster устарели в предыдущих выпусках NDB Cluster и были удалены в NDB 7.5.0:
Id: устарел в NDB 7.1.9; заменен наNodeId.NoOfDiskPagesToDiskDuringRestartTUP,NoOfDiskPagesToDiskDuringRestartACC: оба устарели, не имели эффекта; заменены в MySQL 5.1.6 наDiskCheckpointSpeedInRestart, который впоследствии был устаревшим (в NDB 7.4.1) и теперь также удален.NoOfDiskPagesToDiskAfterRestartACC,NoOfDiskPagesToDiskAfterRestartTUP: оба устарели, не имели эффекта; заменены в MySQL 5.1.6 наDiskCheckpointSpeed, который впоследствии был устаревшим (в NDB 7.4.1) и теперь также удален.ReservedSendBufferMemory: устарел; больше не имел эффекта.MaxNoOfIndexes: устаревший (до MySQL 4.1), не имел эффекта; давно заменен наMaxNoOfOrderedIndexesилиMaxNoOfUniqueHashIndexes.Discless: устаревший (до MySQL 4.1) синоним и давно заменен наDiskless.
Устаревший и неиспользуемый (и по этой причине ранее не документированный) параметр конфигурации компьютера
ByteOrderтакже был удален в NDB 7.5.0.Описанные выше параметры не поддерживаются в NDB 7.5. Попытка использовать любой из этих параметров в файле конфигурации NDB Cluster теперь приводит к ошибке.
-
Улучшения сканирования DBTC. Сканирование было улучшено за счет уменьшения количества сигналов, используемых для связи между ядром
DBTCиDBDIHядра вNDB, что обеспечивает более высокую масштабируемость узлов данных при использовании для операций сканирования, уменьшая использование ресурсов процессора для операций сканирования в некоторых случаях примерно на пять процентов.Также в результате этих изменений время отклика должно быть значительно улучшено, что может помочь предотвратить проблемы с перегрузкой основных потоков. Кроме того, сканирование, выполненное в ядре
BACKUP, также было улучшено и сделано более эффективным, чем в предыдущих выпусках. Поддержка столбцов JSON. NDB 7.5.2 и более поздние версии поддерживают тип столбца
JSONдля таблицNDBи функций JSON, присутствующих в MySQL Server, с ограничением, что таблицаNDBможет иметь не более 3 столбцовJSON.-
Чтение из любой реплики фрагмента; указание количества фрагментов разбиения хеш-мапы. Раньше все чтения направлялись к первичному фрагменту реплики, за исключением простых чтений. (Простое чтение — это чтение, которое блокирует строку во время чтения.) Начиная с NDB 7.5.2, можно включить чтение из любой реплики фрагмента. По умолчанию это выключено, но его можно включить для данного узла SQL с помощью переменной системы
ndb_read_backup, добавленной в этом выпуске.Ранее было возможно определять таблицы только с одним типом отображения разбиения, с одним первичным разбиением на каждом LDM в каждом узле, но в NDB 7.5.2 становится возможным более гибко подходить к распределению разбиений, устанавливая баланс разбиений (тип подсчета фрагментов). Возможные схемы баланса: одна на узел, одна на группу узлов, одна на LDM на узел и одна на LDM на группу узлов.
Этот параметр можно контролировать для отдельных таблиц с помощью опции
PARTITION_BALANCE(переименована изFRAGMENT_COUNT_TYPEв NDB 7.5.4), встроенной в комментарииNDB_TABLEвCREATE TABLEилиALTER TABLEоператорах. Также поддерживаются настройки для уровня таблицыREAD_BACKUPс использованием этого синтаксиса. Более подробную информацию и примеры см. в Разделе 13.1.18.9 «Указание параметров комментариев NDB».В приложениях NDB API баланс разбиений таблицы также можно получить и установить, используя методы, предназначенные для этой цели; см. , и , а также , для получения дополнительной информации об этих методах.
В рамках этой работы NDB 7.5.2 также вводит переменную системы
ndb_data_node_neighbour. Она предназначена для использования при подсказках транзакций, чтобы предоставить «близлежащий» узел данных этому узлу SQL.Кроме того, при восстановлении схем таблиц ndb_restore
--restore-metaтеперь использует стандартное разбиение целевого кластера, а не то же количество разбиений, что и в исходном кластере, из которого была сделана резервная копия. Дополнительную информацию и пример см. в Разделе 21.5.24.2.2 «Восстановление на большее количество узлов, чем в исходном».NDB 7.5.3 добавляет дополнительное улучшение к
READ_BACKUP: в этой и более поздних версиях можно установитьREAD_BACKUPдля заданной таблицы онлайн в рамкахALTER TABLE ... ALGORITHM=INPLACE .... -
Улучшения ThreadConfig. В NDB 7.5.2 реализован ряд улучшений и добавлений функций для параметра конфигурации многопоточного узла данных
ThreadConfig(ndbmtd), включая поддержку увеличенного числа платформ. Эти изменения описаны в следующих абзацах.Теперь на FreeBSD и Windows поддерживается неэксклюзивное блокирование процессора с использованием
cpubindиcpuset. Эксклюзивное блокирование процессора теперь поддерживается на Solaris (только) с использованием параметровcpubind_exclusiveиcpuset_exclusive, которые введены в этом выпуске.Теперь доступен приоритет потоков, управляемый новым параметром
thread_prio.thread_prioподдерживается на Linux, FreeBSD, Windows и Solaris и несколько отличается в зависимости от платформы. Дополнительную информацию см. в описанииThreadConfig.Параметр
realtimeтеперь поддерживается на платформах Windows. Разбиения размером более 16 ГБ. Благодаря улучшению реализации хеш-индексов, используемых узлами данных NDB Cluster, разбиения таблиц
NDBтеперь могут содержать более 16 ГБ данных для фиксированных столбцов, а максимальный размер разбиения для фиксированных столбцов теперь увеличен до 128 ТБ. Предыдущее ограничение было связано с тем, что блокDBACCв ядреNDBиспользовал только 32-битные ссылки на фиксированную часть строки в блокеDBTUP, хотя 45-битные ссылки на эти данные используются вDBTUPи в других частях ядра за пределамиDBACC; все такие ссылки в блокеDBACCтеперь используют 45 бит вместо 32.-
Вывод SQL-запросов из ndb_restore. NDB 7.5.4 добавляет параметр
--print-sql-logдля утилиты ndb_restore, поставляемой с дистрибутивом NDB Cluster. Этот параметр позволяет регистрировать SQL-запросы вstdout. Важно: каждая таблица, которую требуется восстановить с помощью этого параметра, должна иметь явно определенный первичный ключ.Дополнительную информацию см. в Разделе 21.5.24 «ndb_restore — Восстановление резервной копии NDB Cluster».
-
Организация пакетов RPM. Начиная с NDB 7.5.4, имена и организация пакетов RPM, предоставляемых для NDB Cluster, более соответствуют тем, что выпущены для MySQL server. Теперь имена всех RPM NDB Cluster начинаются с префикса
mysql-cluster. Узлы данных теперь устанавливаются с помощью пакетаdata-node; управляющие узлы теперь устанавливаются из пакетаmanagement-server; а узлы SQL требуют пакетовserverиcommon. Программы MySQL иNDB-клиенты, включая клиент mysql и клиент управления ndb_mgm, теперь включены в RPM-пакетclient.Полный список пакетов RPM NDB Cluster и другую информацию см. в Разделе 21.3.1.2 «Установка NDB Cluster из RPM».
-
Обработка и настройка таблиц ndbinfo и config_nodes. NDB 7.5.7 добавляет две таблицы в базу данных информации кластера
ndbinfo, чтобы предоставить информацию о узлах кластера; эти таблицы перечислены здесь:config_nodes: Эта таблица предоставляет идентификатор узла, тип процесса и имя хоста для каждого узла, указанного в файле конфигурации кластера NDB.Таблица
processesотображает информацию о узлах, подключенных в настоящее время к кластеру; эта информация включает имя процесса и системный идентификатор процесса; для каждого узла данных и узла SQL также отображается идентификатор процесса процесса ангела узла. Кроме того, таблица показывает адрес службы для каждого подключенного узла; этот адрес можно установить в приложениях NDB API с помощью метода, который также добавлен в NDB 7.5.7.
-
Имя системы. Имя системы кластера NDB можно использовать для идентификации конкретного кластера. Начиная с NDB 7.5.7, MySQL Server отображает это имя как значение статусной переменной
Ndb_system_name; приложения NDB API могут использовать метод, добавленный в этом же релизе.Имя системы, основанное на времени запуска сервера управления, генерируется автоматически; вы можете переопределить это значение, добавив раздел
[system]в файл конфигурации кластера и установив параметрNameв нужное вам значение в этом разделе перед запуском сервера управления. Опции ndb_restore. Начиная с NDB 7.5.13, опции
--nodeidи--backupidявляются обязательными при вызове ndb_restore.-
Улучшения ndb_blob_tool. Начиная с NDB 7.5.18, утилита ndb_blob_tool может обнаруживать отсутствующие части BLOB, для которых существуют встроенные части, и заменять их плейсхолдерами BLOB (состоящими из пробелов) соответствующей длины. Для проверки наличия отсутствующих частей BLOB используйте опцию
--check-missingс этой программой. Для замены любых отсутствующих частей BLOB плейсхолдерами используйте опцию--add-missing.Для получения более подробной информации см. Раздел 21.5.6, «ndb_blob_tool — Проверка и исправление столбцов BLOB и TEXT таблиц кластера NDB».
Опция --ndb-log-fail-terminate. Начиная с NDB 7.5.18, вы можете заставить узел SQL завершиться всякий раз, когда он не может полностью записать все события строк. Это можно сделать, запустив mysqld с опцией
--ndb-log-fail-terminate.-
Программы NDB—удаление зависимости NDBT. Удалена зависимость ряда утилит программ
NDBот библиотекиNDBT. Эта библиотека используется внутренне для разработки и не требуется для обычного использования; ее включение в эти программы может привести к нежелательным проблемам при тестировании.Затронутые программы перечислены здесь вместе с версиями
NDB, в которых зависимость была удалена:ndb_restore, в NDB 7.5.15
ndb_show_tables, в NDB 7.5.18
ndb_waiter, в NDB 7.5.18
Основной эффект этого изменения для пользователей заключается в том, что эти программы больше не выводят
NDBT_ProgramExit -после завершения выполнения. Приложения, зависящие от такого поведения, должны быть обновлены для отражения изменения при обновлении до указанных версий.status Устаревание и удаление Авто-инсталлятора. Веб-инструмент установки MySQL NDB Cluster Auto-Installer (ndb_setup.py) устарел в NDB 7.5.20 и удален в NDB 7.5.21 и более поздних версиях. Он больше не поддерживается.
Устаревание и удаление ndbmemcache.
ndbmemcacheбольше не поддерживается.ndbmemcacheбыл устарел в NDB 7.5.20 и удален в NDB 7.5.21.-
Удалена поддержка Node.js. Начиная с релиза NDB Cluster 7.5.20, поддержка Node.js NDB 7.5 была удалена.
Поддержка Node.js NDB Cluster поддерживается только в NDB 8.0.
-
Преобразование между NULL и NOT NULL во время операций восстановления. Начиная с NDB 7.5.23, ndb_restore может поддерживать восстановление столбцов
NULLкакNOT NULLи наоборот, используя указанные здесь опции:-
Для восстановления столбца
NULLкакNOT NULLиспользуйте опцию--lossy-conversions.Столбец, изначально объявленный как
NULL, не должен содержать строкNULL; если он содержит, ndb_restore завершается с ошибкой. Для восстановления столбца
NOT NULLкакNULLиспользуйте опцию--promote-attributes.Поддержка OpenSSL 3.0. Начиная с NDB 7.5.31, все двоичные файлы сервера и клиента MySQL, включенные в дистрибутив
NDB, скомпилированы с поддержкой Open SSL 3.0.
Для получения более подробной информации см. описания указанных опций ndb_restore.
-
ClusterJPA больше не поддерживается, начиная с NDB 7.5.7; исходный код и двоичные файлы были удалены из дистрибутива NDB Cluster.
NDB Cluster 7.5 также поддерживается MySQL Cluster Manager, который предоставляет расширенный командный интерфейс, который может упростить многие сложные задачи управления NDB Cluster. См. Руководство пользователя MySQL Cluster Manager 1.4.8 для получения дополнительной информации.
© 2025 Oracle
Licensed under the GPLv2 License.