ndb tabela de clusters está cheia

2

Estou usando o ndb cluster au para instalar com opcoes de carga de escrita mais simples e mais simples. O cluster foi iniciado com sucesso. Em seguida, editei o arquivo create-minimal-mysql.sql substituindo InnoDB por NDBCLUSTER e executei-o. Mostrar:
ERRO 1114 (HY000) na linha 1703: A tabela 'UserGroup' está cheia.

Aqui está o meu arquivo config.ini no diretório de configuração do nó de gerenciamento:

#
# 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  

O relatório no nó de gerenciamento:

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)

E a configuração:

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)  

O que devo fazer ???

    
por supper aban_89 10.08.2013 / 06:27

1 resposta

2

Existem várias razões possíveis para o erro 1114.

A primeira coisa a procurar é se os nós tiverem permissões de gravação em suas pastas de dados. O usuário que executa ndbd no nó de dados 1 é o proprietário da pasta /home/admin/MySQL_Cluster/1/ ? Também verifique isso no nó 2.

Em seguida, verifique os requisitos de hardware de seus nós, conforme link . Mais importante, certifique-se de que todos os nós tenham uma quantidade igual de RAM. Além disso, verifique se a quantidade de RAM é suficiente para armazenar todos os dados e índices (você precisa de cerca de 2,5 GB por nó NDB para sua configuração, mas 3 GB seria melhor).

O seu script falha imediatamente, ou depois de inserir um número de linhas? Se for capaz de escrever algumas linhas, do que falhar, o problema não tem a ver com permissões de gravação nos nós.

Tente inserir alguns dados no banco de dados manualmente (usando o mysql-client), e quando ele falhar, digite show warnings , isso deve fornecer mais informações sobre o erro que você está recebendo.

Enquanto você estiver usando o cliente mysql, execute este script:

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

Ele mostrará se você possui tabelas grandes usando ndb_engine .

Editar: Adicionadas informações baseadas nos comentários do jantar aban_89.

Parece que você ainda está trabalhando com os parâmetros de configuração padrão. Veja a documentação do MySQL : a valor padrão para MaxNoOfTables é 128.

Você deve desligar o nó de gerenciamento do NDB e reiniciá-lo com o seu arquivo de configuração:

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

Depois disso, faça uma reinicialização contínua do seu nós de dados, digitando o cliente NDB Management e um por um reiniciando os nós do NDB. Você deve ver a saída assim:

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)

Uma vez que a reinicialização contínua tenha sido completada, seus nós de dados usarão a nova configuração e - esperançosamente - seus problemas serão resolvidos.

Editar 2: elaborar com base no comentário # 2

De esta página : o script pode simplesmente ser muito grande para o seu servidor. Tente dividi-lo em arquivos separados de cerca de 1000 linhas cada, isso deve criar 3 ou talvez 4 arquivos. (Eu usei link para referência).

Não se esqueça de adicionar use lportal; sobre cada arquivo ou de especificar o banco de dados em seu comando de importação (por exemplo, mysql -uliferay -p lportal < minimal.1.sql ).

    
por 11.08.2013 / 11:18