MySQL кластера с использованием 2 mysqld(API) приводит к различным таблицам на доступ
Я использую кластер mysql с 4 узлами данных и 2 серверами с узлами доступа (API) и управления на каждом.
Если я создаю таблицу с использованием API-узла 1, она отображается как несуществующая, если я пытаюсь получить доступ к ней на API-узле 2. Может кто-нибудь объяснить, почему это происходит или как это исправить. Точка запуска 2 узлов API на 2 отдельных серверах предназначена для резервирования.
Пожалуйста, смотрите конфигурацию SHOW ниже (я удалил свои ips):
Cluster Configuration
---------------------
[ndbd(NDB)] 4 node(s)
id=5 @*.*.*.* (mysql-5.6.19 ndb-7.3.6, Nodegroup: 0)
id=6 @*.*.*.* (mysql-5.6.19 ndb-7.3.6, Nodegroup: 0, *)
id=7 @*.*.*.* (mysql-5.6.19 ndb-7.3.6, Nodegroup: 1)
id=8 @*.*.*.* (mysql-5.6.19 ndb-7.3.6, Nodegroup: 1)
[ndb_mgmd(MGM)] 2 node(s)
id=1 @*.*.*.* (mysql-5.6.19 ndb-7.3.6)
id=2 @*.*.*.* (mysql-5.6.19 ndb-7.3.6)
[mysqld(API)] 2 node(s)
id=3 @*.*.*.* (mysql-5.6.19 ndb-7.3.6)
id=4 @*.*.*.* (mysql-5.6.19 ndb-7.3.6)
Если вам нужна дополнительная информация, пожалуйста, спросите, и я обновлю свой вопрос.
1 ответ
Используете ли вы правильный механизм хранения? Если таблица должна быть "кластеризованной" (хранящейся на кластерных датодах), вы должны использовать engine=ndbcluster.
Таблицы, созданные как innodb или myisam, будут храниться локально на узле, для которого они созданы, и недоступны для других узлов mysql api.
Преобразовать узел хранения в движок ndb можно с помощью таблицы alter.
механизм изменения таблицы =ndbcluster;