Назад | Перейти на главную страницу

Таблица кластеров ndb заполнена

Я использую ndb cluster au для установки с простыми операциями с высокой нагрузкой на запись. Кластер успешно запущен. Затем я отредактировал create-minimal-mysql.sql файл, заменив InnoDB с участием NDBCLUSTER и запустите его. Это шоу:
ОШИБКА 1114 (HY000) в строке 1703: таблица UserGroup заполнена.

Вот мой config.ini файл в каталоге конфигурации узла управления:

#
# Configuration file for MyCluster
#

[NDB_MGMD DEFAULT]
Portnumber=1186

[NDB_MGMD]  
NodeId=49  
HostName=192.168.5.4  
DataDir=/home/admin/MySQL_Cluster/49/  
Portnumber=1186  

[TCP DEFAULT]  
SendBufferMemory=8M  
ReceiveBufferMemory=8M    

[NDBD DEFAULT]
BackupMaxWriteSize=1M  
BackupDataBufferSize=16M  
BackupLogBufferSize=4M  
BackupMemory=20M  
BackupReportFrequency=10  
MemReportFrequency=30  
LogLevelStartup=15  
LogLevelShutdown=15  
LogLevelCheckpoint=8  
LogLevelNodeRestart=15  
DataMemory=1146M  
IndexMemory=184M  
MaxNoOfTables=4096  
MaxNoOfTriggers=3500  
MaxNoOfAttributes=25000  
NoOfReplicas=2  
StringMemory=25  
DiskPageBufferMemory=64M  
SharedGlobalMemory=20M  
LongMessageBuffer=32M  
MaxNoOfConcurrentTransactions=16384  
BatchSizePerLocalScan=512  
FragmentLogFileSize=64M  
NoOfFragmentLogFiles=16  
RedoBuffer=64M  
MaxNoOfExecutionThreads=2  
StopOnError=false  
LockPagesInMainMemory=1  
TimeBetweenEpochsTimeout=32000  
TimeBetweenWatchdogCheckInitial=60000  
TransactionInactiveTimeout=60000  
HeartbeatIntervalDbDb=15000  
HeartbeatIntervalDbApi=15000  

[NDBD]  
NodeId=1  
HostName=192.168.5.4  
DataDir=/home/admin/MySQL_Cluster/1/  

[NDBD]  
NodeId=2  
HostName=192.168.5.75  
DataDir=/home/admin/MySQL_Cluster/2/  

[MYSQLD DEFAULT]  

[MYSQLD]  
NodeId=52  
HostName=192.168.5.4  

[MYSQLD]  
NodeId=55  
HostName=192.168.5.75  

[API]
NodeId=50
HostName=192.168.5.4

[API]  
NodeId=51  
HostName=192.168.5.4  

[API]  
NodeId=53  
HostName=192.168.5.75  

[API]  
NodeId=54  
HostName=192.168.5.75  

Отчет в узле управления:

Node 1: Data usage is 0%(48 32K pages of total 64000)  
Node 1: Index usage is 0%(468 8K pages of total 64032)  
Node 2: Data usage is 0%(48 32K pages of total 64000)  
Node 2: Index usage is 0%(468 8K pages of total 64032)

И конфигурация:

Connected to Management Server at: localhost:1186  
Cluster Configuration  
---------------------  
[ndbd(NDB)]     2 node(s)  
id=1    @192.168.5.4  (mysql-5.6.11 ndb-7.3.2, Nodegroup: 0, Master)  
id=2    @192.168.5.75  (mysql-5.6.11 ndb-7.3.2, Nodegroup: 0)  

[ndb_mgmd(MGM)] 1 node(s)  
id=49   @192.168.5.4  (mysql-5.6.11 ndb-7.3.2)  

[mysqld(API)]   6 node(s)  
id=50 (not connected, accepting connect from 192.168.5.4)  
id=51 (not connected, accepting connect from 192.168.5.4)  
id=52   @192.168.5.4  (mysql-5.6.11 ndb-7.3.2)  
id=53 (not connected, accepting connect from 192.168.5.75)  
id=54 (not connected, accepting connect from 192.168.5.75)  
id=55   @192.168.5.75  (mysql-5.6.11 ndb-7.3.2)  

Что я должен делать???

Существует ряд возможных причин ошибки 1114.

Первое, на что следует обратить внимание, это наличие у узлов разрешения на запись в свои папки данных. Пользователь, который запускает ndbd на узле данных 1 владелец /home/admin/MySQL_Cluster/1/ папка? Также проверьте это на узле 2.

Затем проверьте требования к оборудованию ваших узлов в соответствии с http://dev.mysql.com/doc/refman/5.5/en/faqs-mysql-cluster.html#qandaitem-B-10-1-13. Самое главное, убедитесь, что все узлы имеют равный объем оперативной памяти. Кроме того, проверьте, достаточно ли объема ОЗУ для хранения всех данных и индексов (для вашей конфигурации вам потребуется около 2,5 ГБ на узел NDB, но 3 ГБ было бы лучше).

Ваш скрипт дает сбой сразу или после вставки нескольких строк? Если он может записать несколько строк, а затем не удается, проблема не связана с разрешениями на запись на узлах.

Попробуйте вставить некоторые данные в базу данных вручную (с помощью mysql-client), а если это не удастся, введите show warnings, это должно предоставить вам дополнительную информацию об ошибке, которую вы получаете.

Пока вы используете клиент mysql, запустите этот сценарий:

SELECT TABLE_SCHEMA, TABLE_NAME, TABLE_ROWS
FROM INFORMATION_SCHEMA.TABLES
WHERE ENGINE='ndbcluster';

Он покажет вам, есть ли у вас большие таблицы, использующие ndb_engine.

Редактировать: Добавлена ​​информация на основе комментариев ужина aban_89.

Похоже, вы все еще работаете с параметрами конфигурации по умолчанию. Увидеть Документация MySQL: значение по умолчанию для MaxNoOfTables - 128.

Вы должны закрыть узел управления NDB, а затем перезапустить его со своим файлом конфигурации:

/usr/local/mysql/bin/ndb_mgmd --initial --reload --config-file=/usr/local/mysql/config.ini

После этого выполните непрерывный перезапуск узлов данных, войдя в клиент управления NDB и один за другим перезапустив узлы NDB. Вы должны увидеть такой вывод:

Connected to Management Server at: localhost:1186  
Cluster Configuration  
---------------------  
[ndbd(NDB)]     2 node(s)  
id=1    @192.168.5.4  (mysql-5.6.11 ndb-7.3.2, Nodegroup: 0, Master)  
id=2    @192.168.5.75  (mysql-5.6.11 ndb-7.3.2, Nodegroup: 0)  

[ndb_mgmd(MGM)] 1 node(s)  
id=49   @192.168.5.4  (mysql-5.6.11 ndb-7.3.2)  

[mysqld(API)]   6 node(s)  
id=50 (not connected, accepting connect from 192.168.5.4)  
id=51 (not connected, accepting connect from 192.168.5.4)  
id=52   @192.168.5.4  (mysql-5.6.11 ndb-7.3.2)  
id=53 (not connected, accepting connect from 192.168.5.75)  
id=54 (not connected, accepting connect from 192.168.5.75)  
id=55   @192.168.5.75  (mysql-5.6.11 ndb-7.3.2) 

ndb_mgm> 1 restart
Node 1: Node shutdown initiated
Node 1: Node shutdown completed, restarting, no start.
Node 1 is being restarted

ndb_mgm> Node 1: Start initiated (version 7.3.2)
Node 1: Started (version 7.3.2)
2 restart
Node 2: Node shutdown initiated
Node 2: Node shutdown completed, restarting, no start.
Node 2 is being restarted

ndb_mgm> Node 2: Start initiated (version 7.3.2)
Node 2: Started (version 7.3.2)

После завершения непрерывного перезапуска ваши узлы данных будут использовать новую конфигурацию и, надеюсь, ваши проблемы будут решены.

Изменить 2: разработка на основании комментария №2

Из эта страница: сценарий может быть слишком большим для вашего сервера. Попробуйте разделить его на отдельные файлы примерно по 1000 строк в каждом, это должно создать 3 или, может быть, 4 файла. (Я использовал http://haitianschoolwithoutborders.org/liferay/create-minimal/create-minimal-mysql.sql для справки).

Не забудьте добавить use lportal; поверх каждого файла или указать базу данных в вашей команде импорта (например, mysql -uliferay -p lportal < minimal.1.sql).