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