21.2.7.10 Ограничения, связанные с несколькими узлами NDB кластера
Несколько узлов SQL. Ниже приведены проблемы, связанные с использованием нескольких серверов MySQL в качестве узлов SQL NDB кластера, и специфичные для движка хранилища NDBCLUSTER:
Хранящиеся программы не распределяются. Хранящиеся процедуры, хранящиеся функции, триггеры и запланированные события поддерживаются таблицами, использующими движок хранилища
NDB, но эти элементы не автоматически распространяются между серверами MySQL, действующими как узлы SQL кластера, и должны быть повторно созданы на каждом узле SQL. См. Хранящиеся программы в NDB кластере.-
Нет распределённых блокировок таблиц. Оператор
LOCK TABLESили вызовGET_LOCK()работают только для узла SQL, на котором выдаётся блокировка; ни один другой узел SQL в кластере “не видит” эту блокировку. Это справедливо для любой команды, которая блокирует таблицы в ходе своей работы. (См. следующий пункт для примера.)Реализация блокировок таблиц в
NDBCLUSTERможет быть выполнена в приложении API, и необходимо убедиться, что все приложения начинают работу, установив значение вLM_ReadилиLM_Exclusive. Более подробную информацию об этом см. в описании в справочнике по API NDB кластера. Операции ALTER TABLE.
ALTER TABLEне полностью блокирует работу при использовании нескольких серверов MySQL (узлов SQL). (Как обсуждалось в предыдущем пункте, NDB кластер не поддерживает распределённые блокировки таблиц.)
Несколько узлов управления. При использовании нескольких серверов управления:
Если какие-либо из серверов управления работают на одном хосте, вам необходимо явно указать идентификаторы узлов в строках подключения, потому что автоматическое назначение идентификаторов узлов не работает для нескольких серверов управления на одном хосте. Это не требуется, если каждый сервер управления находится на разных хостах.
Когда сервер управления запускается, он сначала проверяет наличие других серверов управления в том же NDB кластере, и при успешном подключении к другому серверу управления использует его данные конфигурации. Это означает, что опции перезагрузки сервера управления
--reloadи начальной загрузки--initialигнорируются, если сервер управления работает единственным. Это также означает, что при выполнении поэтапной перезагрузки NDB кластера с несколькими узлами управления, сервер управления считывает свой собственный файл конфигурации, если (и только если) он единственный сервер управления, работающий в этом NDB кластере. Подробную информацию см. в Разделе 21.6.5, «Выполнение поэтапной перезагрузки NDB кластера».
Несколько сетевых адресов. Не поддерживается несколько сетевых адресов на узел данных. Использование таких адресов может привести к проблемам: в случае сбоя узла данных узел SQL ожидает подтверждения того, что узел данных вышел из строя, но никогда его не получает, потому что другой путь к этому узлу данных остаётся открытым. Это может сделать кластер неработоспособным.
Можно использовать несколько сетевых интерфейсов (например, сетевых карт) для одного узла данных, но они должны быть связаны с одним адресом. Это также означает, что невозможно использовать более одной секции [tcp] на соединение в файле config.ini. Подробную информацию см. в Разделе 21.4.3.10, «NDB Cluster TCP/IP соединения».
© 2025 Oracle
Licensed under the GPLv2 License.