tentando adicionar mais tabela ao mysqlcluster recebendo o erro ERROR 1114 (HY000) na linha 2137: A tabela 't_email_contacts' está cheia

3

Oi eu estou tentando inserir tabelas para o cluster do mysql, mas depois de algum tempo eu recebo o seguinte erro, você pode por favor sugerir como corrigir isso.

ERRO 1114 (HY000) na linha 2137: A tabela 't_email_contacts' está cheia

Oi Andrew, este é o resultado de ALL REPORT MEMORY

Node 2: Data usage is 0%(45 32K pages of total 98048)
Node 2: Index usage is 0%(408 8K pages of total 392224)
Node 3: Data usage is 0%(45 32K pages of total 98048)
Node 3: Index usage is 0%(408 8K pages of total 392224)

mostra 0%, mas ainda estou recebendo erro de tabela completa, obrigado antecipadamente.

  1. df -H mostra que não está cheio.
  2. Eu não estou usando innodb para minha criação de tabela, é ndb
por Manoj Reddy 03.06.2015 / 14:19

1 resposta

4

Existem algumas razões para isso.

  1. A partição que contém o arquivo MySQL está cheia. df -H mostrará se uma partição está cheia.
  2. Se você estiver usando innodb: veja o innodb_data_file_path em seu my.cnf . Você pode estar excedendo o valor "máximo". Exemplo disso:

    innodb_data_file_path = ibdata1: 10M: extensão automática: max: 512M

    Você pode subir o 512 ou remover o :max:512m totalmente para que ele seja "ilimitado".

  3. Você está adicionando um INDEX a uma tabela MEMORY (obviamente não é o caso, mas vale a pena mencionar).

Em relação ao NDB Cluster:

  1. Um mecanismo do NDB contém todos dados na RAM . Do link:

      

    No MySQL 5.0, o Cluster é apenas na memória. Isso significa que todos os dados da tabela (incluindo índices) são armazenados na RAM. Portanto, se seus dados ocuparem 1 GB de espaço e você quiser replicá-lo uma vez no cluster, precisará de 2 GB de memória para isso (1 GB por réplica). Isso é adicionado à memória exigida pelo sistema operacional e qualquer aplicativo em execução nos computadores do cluster

    Se esta é a causa, você pode fazer este mas será um golpe de desempenho.

  2. Verifique os valores de MaxNoOfConcurrentOperations e MaxNoOfConcurrentTransactions . Configure-os para um valor maior que a maior tabela no cluster.

  3. Verifique no arquivo de log por mensagens relacionadas ( ndb_2_trace.log ?). Se mostrar coisas como "Nó 2: uso de dados aumentado para 100%", você está ficando sem memória.

    • A memória de índice armazena SOMENTE os índices de chave primária.
    • A memória de dados armazena todos os dados + outros índices.
    • A memória que você precisa por tabela é algo assim: ((tamanho de uma tabela) + (tamanho do índice)) * (o número de registros)
    • IndexMemory e DataMemory são as configurações correspondentes. Se você exceder esses, receberá este erro.
  4. O número máximo de atributos (colunas e índices) por tabela é limitado a 128.

por Rinzwind 03.06.2015 / 14:52

Tags