Ошибка кластера MySQL 1114 (HY000): таблица «пользователи» полна
-
10-10-2019 - |
Вопрос
У меня есть настройка кластера MySQL, есть 2 узла данных и 1 узел управления. Сейчас мы получаем ошибки на наших узлах данных при выполнении вставки.
Ошибка 1114 (HY000): таблица «пользователи» полна
Пожалуйста, любая помощь ценится, это проблема конфигурации, если да, какой узел? Каждый узел является сервером Ubuntu 9.
Решение
Ответ здесь:http://dev.mysql.com/doc/refman/5.0/en/faqs-mysql-cluster.html#qandaitem-b-10-1-13
Короче говоря: двигатель NDB содержит все данные в ОЗУ. Если у ваших узлов есть 1 ГБ оперативной памяти, и вы пытаетесь загрузить базу данных 4 ГБ, вам (почти) вам не повезло.
Существует способ настроить NDB для использования диска для хранения данных, чтобы ОЗУ использовалась только для хранения индексов (их все еще нужно хранить в оперативной памяти), вот как:http://dev.mysql.com/doc/refman/5.1/en/mysql-cluster-disk-data-objects.html
Однако, если вы сделаете это, вы получите гораздо более низкие выступления.
Другие советы
На случай, если кто -то выполнит эту проблему, основной причиной этого вопроса является ценность для MaxNoOfConcurrentOperations
, который должен быть поднят соответственно в сочетании с количеством рядов, которые, как ожидается, будет держать таблицу.
Следующее должно быть решением для этого вопроса.
Измените таблицу создания таблицы начального создания таблицы, чтобы включить значение MAX_ROWS, чтобы быть вдвое больше, чем число строк, ожидается, что эта таблица будет удерживать.
Увеличить стоимость
MaxNoOfConcurrentOperations
а такжеMaxNoOfConcurrentTransactions
до значения, превышающего самую большую таблицу в кластере. Вероятно, это связано с тем, что кластер MySQL работает на всех рядах параллельно при применении любой операции на большой таблице.
Проверить innodb_data_file_path
Настройка - эта ошибка предполагает, что вы превысили доступное пространство, определенное в этом ключе. Проверять эта ссылка Для переосмысления пространства для Innodb.
В качестве альтернативы, вы могли бы просто закончить дисковое пространство в разделе, в котором хранятся данные.
Я столкнулся с той же ошибкой, когда загружал только структуру таблиц DB. Что значит DataMemory
или же IndexMemory
здесь не было помощи. Также количество таблиц не достигло предела в MaxNoOfTables
Так что это не проблема. Решением для меня здесь было увеличение значений для MaxNoOfOrderedIndexes
а также MaxNoOfUniqueHashIndexes
которые отражают максимальное количество индексов, которые вы можете иметь в кластере. Поэтому, если в вашем БД есть много индексов, попробуйте соответствующим образом увеличить эти переменные. Конечно, [перезапуск проката] [1] должен быть сделан после этого изменения, чтобы вступить в силу!
Я надеюсь, что это может кому -то помочь!