Spec-Zone.ru › MySQL 8.4

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.
https://docs.oracle.com/cd/E17952_01/mysql-8.4-en/mysql-cluster-limitations-multiple-nodes.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API