25.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. Более подробная информация о том, как это сделать, представлена в описании в руководстве NDB Cluster API Guide. Операции ALTER TABLE.
ALTER TABLEне полностью блокирует выполнение при использовании нескольких серверов MySQL (узлов SQL). (Как обсуждалось в предыдущем пункте, NDB Cluster не поддерживает распределённые блокировки таблиц.)
Несколько узлов управления. При использовании нескольких серверов управления:
Если некоторые серверы управления работают на одном хосте, необходимо явно указывать идентификаторы узлов в строках подключения, поскольку автоматическое назначение идентификаторов узлов не работает при наличии нескольких серверов управления на одном хосте. Это не требуется, если каждый сервер управления находится на разных хостах.
При запуске сервера управления он сначала проверяет наличие других серверов управления в том же NDB кластере, и при успешном подключении к другому серверу управления использует его данные конфигурации. Это означает, что опции перезагрузки сервера управления
--reloadи запуска--initialигнорируются, если сервер управления является единственным запущенным. Это также означает, что при выполнении плавного перезапуска NDB кластера с несколькими узлами управления сервер управления читает свой собственный конфигурационный файл, только если он является единственным сервером управления, работающим в этом NDB кластере. Более подробную информацию см. в разделе 25.6.5, «Выполнение плавного перезапуска NDB кластера».
Несколько сетевых адресов. Не поддерживается несколько сетевых адресов на один узел данных. Их использование может вызвать проблемы: в случае сбоя узла данных узел SQL ждёт подтверждения о выходе из строя узла данных, но никогда его не получает, потому что открыт другой маршрут к этому узлу данных. Это может сделать кластер неработоспособным.
Можно использовать несколько сетевых интерфейсов (например, сетевые карты Ethernet) для одного узла данных, но они должны быть привязаны к одному адресу. Это также означает, что невозможно использовать более одного [tcp] раздела на одно подключение в файле config.ini. Более подробную информацию см. в разделе 25.4.3.10, «TCP/IP подключения NDB кластера».
© 2025 Oracle
Licensed under the GPLv2 License.