Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Crash de tabela frequentemente


Guest Avalon

Pergunta

Tenho uma base MySQL 4.1 na qual existem 5 tabelas. Uma delas, chamemos de A, possui 50 milhões de registros e aproximadamente 45GB. Ela funciona bem a 8 anos com IO diario, e concorrência, bem grande.

De um tempo para cá, uns 3 meses, alguma operação sobre o banco vem corrompendo essa tabela e exigindo reparos frequentes. A pergunta é: Atingimos o limite do MySQL ou outra coisa pode estar corrompendo as tabelas? O erro do EventViewer é "22".

Grato.

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0
Tenho uma base MySQL 4.1 na qual existem 5 tabelas. Uma delas, chamemos de A, possui 50 milhões de registros e aproximadamente 45GB. Ela funciona bem a 8 anos com IO diario, e concorrência, bem grande.

De um tempo para cá, uns 3 meses, alguma operação sobre o banco vem corrompendo essa tabela e exigindo reparos frequentes. A pergunta é: Atingimos o limite do MySQL ou outra coisa pode estar corrompendo as tabelas? O erro do EventViewer é "22".

Grato.

Oi, Avalon!

Todos os problemas de corrupção de tabelas que encontrei até hoje, com o MySQL, foram ocasionados por falha de Hardware ou do Sistema Operacional. Ainda não tinha tido um relato de uma tabela tão grande, mas vamos avaliar o que pode estar ocorrendo.

Primeiro vamos verificar as limitações do MySQL, devido ao tamanho de sua tabela.

No Manual, na seção 1.2.2 "Principais Características do MySQL", o autor comenta sobre testes em tabelas co o tamanho informado por você

"• Escalabilidade e limites

• Lida com bancos de dados enormes. Usamos o Servidor MySQL com bancos de dados

que contém 50.000.000 registros e sabemos de usuários que usam o Servidor MySQL

com 60.000 tabelas e aproximadamente 5.000.000.000 de linhas.

• São permitidos até 32 índices por tabela. Cada índice pode ser composto de 1 a 16 colunas

ou partes de colunas. O tamanho máximo do índice é de 500 bytes (isto pode ser alterado na

compilação do MySQL). Um índice pode usar o prefixo de campo com um tipo CHAR ou

VARCHAR."

A Seção 1.2.4. "Qual o Tamanho Que as Tabelas do MySQL Podem Ter?" Mostra a que tamanho as tabelas podem chegar.

Por padrão, As tabelas MyISAM (Não sei se é este seu caso) estão limitadas a 4GB. Mas com a adição das cláusulas AVG_ROW_LENGHT e MAX_ROWS este limite pode ser alterado e ultrapassado em muito.

Verifique se você já atingiu o limite estabelecido na criação da tabela usando o comando SHOW TABLE STATUS

No Exemplo abaixo utilizo o status em cima de uma tabela chamada "weather".

mysql> show table status like 'weather' \G
*************************** 1. row ***************************
Name:                weather
Type:                 MyISAM
Row_format:       Dynamic
Rows:                0
Avg_row_length: 0
Data_length:      0
Max_data_length: 4294967295
Index_length: 1024
Data_free: 0
Auto_increment: NULL
Create_time: 2003-03-03 00:43:43
Update_time: 2003-03-03 00:43:43
Check_time: 2003-06-14 15:11:21
Create_options: 
Comment: 
1 row in set (0.00 sec)
Você pode usar o comando ALTER TABLE para modificar estes valores. Tal como abaixo
mysql> alter table weather max_rows = 200000000000 avg_row_length = 50;
Query OK, 0 rows affected (0.03 sec)
Records: 0  Duplicates: 0  Warnings: 0

Em segundo lugar, procure falhas em placas de rede, cabos, switches, memória RAM, placa mãe e HD;

Verifique, também, se sua rede não está apresentando colisões.

Bom, estas são as dicas que tenho para este problema.

Faça sob seus próprios riscos

Não Esqueça de fazer Backup ANTES

att

Denis Courcy

Editado por Denis Courcy
Link para o comentário
Compartilhar em outros sites

  • 0

Faz sentido. Recentemente trocamos o equipamento que hospeda o banco. Vamos analisar essa possibilidade.

No momento estamos convertendo o TT de MyISAM para InnoDB segundo referências de que implenta melhores métodos de proteção para esse tipo de falha.

Já dura umas 4 horas o Alter table sobre o type, havendo novidade volto a comunicar.

Por ora, obrigado pela resposta.

[]s

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...