Spec-Zone.ru › MySQL 5.7

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

Spec-Zone.ru

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