Ошибка кластера MySQL 1114 (HY000): таблица «пользователи» полна

StackOverflow https://stackoverflow.com/questions/4179087

Вопрос

У меня есть настройка кластера 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, который должен быть поднят соответственно в сочетании с количеством рядов, которые, как ожидается, будет держать таблицу.

Следующее должно быть решением для этого вопроса.

  1. Измените таблицу создания таблицы начального создания таблицы, чтобы включить значение MAX_ROWS, чтобы быть вдвое больше, чем число строк, ожидается, что эта таблица будет удерживать.

  2. Увеличить стоимость MaxNoOfConcurrentOperations а также MaxNoOfConcurrentTransactions до значения, превышающего самую большую таблицу в кластере. Вероятно, это связано с тем, что кластер MySQL работает на всех рядах параллельно при применении любой операции на большой таблице.

Проверить innodb_data_file_path Настройка - эта ошибка предполагает, что вы превысили доступное пространство, определенное в этом ключе. Проверять эта ссылка Для переосмысления пространства для Innodb.

В качестве альтернативы, вы могли бы просто закончить дисковое пространство в разделе, в котором хранятся данные.

Я столкнулся с той же ошибкой, когда загружал только структуру таблиц DB. Что значит DataMemory или же IndexMemory здесь не было помощи. Также количество таблиц не достигло предела в MaxNoOfTables Так что это не проблема. Решением для меня здесь было увеличение значений для MaxNoOfOrderedIndexes а также MaxNoOfUniqueHashIndexes которые отражают максимальное количество индексов, которые вы можете иметь в кластере. Поэтому, если в вашем БД есть много индексов, попробуйте соответствующим образом увеличить эти переменные. Конечно, [перезапуск проката] [1] должен быть сделан после этого изменения, чтобы вступить в силу!

Я надеюсь, что это может кому -то помочь!

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top