Таблица кластеров 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)
Что я должен делать???
1 ответ
Существует несколько возможных причин ошибки 1114.
Первое, на что нужно обратить внимание - есть ли у узлов права на запись в свои папки данных. Пользователь, который запускает ndbd
на узле данных 1 владелец /home/admin/MySQL_Cluster/1/
папка? Также проверьте это на узле 2.
Затем проверьте требования к оборудованию для ваших узлов в соответствии с http://dev.mysql.com/doc/refman/5.5/en/faqs-mysql-cluster.html. Самое главное, убедитесь, что все узлы имеют одинаковый объем оперативной памяти. Также проверьте, достаточен ли объем оперативной памяти для хранения всех данных и индексов (для вашей конфигурации вам потребуется около 2,5 ГБ на узел NDB, но лучше 3 ГБ).
Ваш скрипт завершается неудачно сразу или после вставки ряда строк? Если он может записать несколько строк, но не может, проблема не связана с разрешениями на запись на узлах.
Попробуйте вставить некоторые данные в базу данных вручную (с помощью mysql-клиента), а если это не удастся, введите 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
).