
Eu tenho um problema com o MySQL no FreeBSD.
Ele cria muitos arquivos binários de 1 GB a cada 20 minutos e preenche rapidamente o espaço livre em disco.
-rw-rw---- 1 mysql mysql 1073741982 2013-09-14 18:26 mysql-bin.000174
-rw-rw---- 1 mysql mysql 1073741890 2013-09-14 18:42 mysql-bin.000175
-rw-rw---- 1 mysql mysql 1073741988 2013-09-14 18:59 mysql-bin.000176
-rw-rw---- 1 mysql mysql 1073741964 2013-09-14 19:15 mysql-bin.000177
-rw-rw---- 1 mysql mysql 1073741974 2013-09-14 19:29 mysql-bin.000178
-rw-rw---- 1 mysql mysql 1073741923 2013-09-14 19:46 mysql-bin.000179
-rw-rw---- 1 mysql mysql 577143852 2013-09-14 19:59 mysql-bin.000180
Isso acontece sem qualquer atividade dos usuários na Internet. Eu tenho max_binlog_file=526870912
no meu.cnf
Eu tentei fazer
freebsd# mysql -u root -p
mysql> flush logs;
mysql> flush master;
Como resultado, todos os arquivos mysql-bin são excluídos e a contagem começa em mysql-bin.000001.
Eu usei shutdown -r now
meu FreeBSD então (mysql_enable="YES" em rc.conf). O MySQL funciona, mas começa a criar arquivos bin de 1 GB a cada 20 minutos novamente.
APÊNDICE 1
Mysql funciona para aimniff e netams. Eu parei os netams. E o mysql parou de produzir "mysql-bin". arquivos. Portanto, o problema está entre mysql e netams, presumivelmente. Mas ainda não consigo encontrar o motivo.
Existem algumas linhas do comando "mysqlbinlog mysql-bin.000179 | less" quando tento ler o mysql-bin. arquivo que foi criado antes do atual.
'fw-sher1# mysqlbinlog mysql-bin.000179 | menos
'/!40019 DEFINIR @@session.max_insert_delayed_threads=0/;
'/!50003 DEFINIR @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0/; 'DELIMITOR /!/;
'# at 4
'#130915 11:27:20 ID do servidor 1 end_log_pos 98 Início: binlog v 4, servidor v 5.0.81-log criado 130915 11:27:20
'Aviso: ignorando Append_block pois não há evento Create_file para file_id : 1417
'Aviso: ignorando Append_block porque não há evento Create_file para file_id: 1417
'Aviso: ignorando Append_block porque não há evento Create_file para file_id: 1417
'Aviso: ignorando Append_block porque não há evento Create_file para file_id: 1417
'# at 98
'#130915 11:27:19 ID do servidor 1 end_log_pos 8313
'#Append_block: file_id: 1417 block_len: 8192
'# em 8313
'#130915 11:27:19 ID do servidor 1 end_log_pos 16528
'#Append_block: file_id: 1417 block_len: 8192
'# em 16528
'#130915 11:27:19 ID do servidor 1 end_log_pos 24743
'#Append_block: file_id: 1417 block_len: 8192
'# em 24743
'#130915 11:27:19 ID do servidor 1 end_log_pos 32958
'#Append_block: file_id : 1417 block_len: 8192
'# em 32958
'#130915 11:27:19 ID do servidor 1 end_log_pos 41173
'#Append_block: file_id: 1417 block_len: 8192
'# em 41173
'#130915 11:27:19 ID do servidor 1 end_log_pos 82248
' #Append_block:Aviso: ignorando Append_block porque não há evento Create_file para file_id: 1417
'Aviso: ignorando Append_block porque não há evento Create_file para file_id: 1417
'Aviso: ignorando Append_block porque não há evento Create_file para file_id: 1417
E assim por diante. Não faz sentido para mim.
O que diz netams.log
Arquivo: netams.log Linha 1006126 Col 0 180576689 bytes 84%
13.09.2013 23:59:52.8916 fonte de dados:1 [AVISO]: Recebi os seguintes ERROS do MySQL: nível = Erro, código = 126, mensagem = arquivo de chave incorreto para tabela './netams/monitor.MYI'; tente consertá-lo.
13.09.2013 23:59:52.8916 fonte de dados:1 [AVISO]: Recebi os seguintes ERROS do MySQL: nível = Erro, código = 126, mensagem = arquivo de chave incorreto para a tabela './netams/monitor.MYI'; tente consertá-lo.
13.09.2013 23:59:52.8919 fonte de dados: 1 [AVISO]: Falha ao carregar dados no sql para monitor, tente "armazenamento de depuração"
14.09.2013 00: 01: 20.0461 fonte de dados: 1 [AVISO]: SQL Carregar dados: Arquivo de chave incorreto para tabela './netams/monitor.MYI'; tente repará-lo
14.09.2013 00:01:20.0464 data-source:1 [WARN]: Recebi os seguintes AVISOS do MySQL: nível = Aviso, código = 1262, mensagem = A linha 243 foi truncada; continha mais dados do que colunas de entrada.
14.09.2013 00:01:20.0464 data-source:1 [WARN]: Recebi os seguintes AVISOS do MySQL: nível = Aviso, código = 1262, mensagem = A linha 265 foi truncada; continha mais dados do que colunas de entrada.
Responder1
14.09.2013 00:01:20.0461 data-source:1 [WARN]: SQL Load data: Incorrect key file for table './netams/monitor.MYI'; try to repair it
14.09.2013 00:01:20.0464 data-source:1 [WARN]: Got the following WARNINGS from MySQL: level = Warning, code = 1262, message = Row 243 was truncated; it contained more data than there were input columns.
14.09.2013 00:01:20.0464 data-source:1 [WARN]: Got the following WARNINGS from MySQL: level = Warning, code = 1262, message = Row 265 was truncated; it contained more data than there were input columns.
Este erro indica que o banco de dados netams possui algumas tabelas corrompidas. Observe a seção que diz "Arquivo de chave incorreto para tabela './netams/monitor.MYI';tente consertá-lo".
O reparo de tabelas geralmente pode ser feito com alguns comandos. O reparo de uma tabela pode ocasionalmente levar à perda de dados, portanto, faça backup das tabelas primeiro. O reparo pode demorar um pouco, dependendo do tamanho do banco de dados - às vezes, o reparo pode parecer travado por 10 a 20 minutos, mas na verdade está verificando silenciosamente linhas corrompidas. Faça isso em uma janela secundária para ficar de olho e ser paciente.
Para dicas sobre como reparar tabelas, confira o manual do MySQL: