MySQL: InnoDB: ERRO: a idade do último ponto de verificação é X, que excede a capacidade do grupo de logs Y?

10

Em um ambiente MySQL de produção, a seguinte mensagem de erro é gravada a /var/log/mysql/error.logcada quarto minuto:

110723 18:36:02  InnoDB: ERROR: the age of the last checkpoint is 9433856,
InnoDB: which exceeds the log group capacity 9433498.
InnoDB: If you are using big BLOB or TEXT rows, you must set the
InnoDB: combined size of log files at least 10 times bigger than the
InnoDB: largest such row.

Não sei como analisar a mensagem de erro.

Mais especificamente eu não entendo como a idade do ponto de verificação relaciona-se com a "capacidade grupo de log", e como que por sua vez se relaciona com o tamanho de linhas com grandes BLOB/ TEXTcolunas.

Basicamente, estou perdido em como solucionar problemas e continuar corrigindo esse problema. Minhas perguntas são:

  • O que significa a mensagem de erro?
  • O que estou fazendo errado?
  • Como posso corrigir isso?
knorv
fonte

Respostas:

11

A mensagem de erro significa que você está tentando inserir muitos dados no InnoDB muito rapidamente, e o log do InnoDB está sendo preenchido antes que os dados possam ser liberados nos principais arquivos de dados.

Para resolvê-lo, você precisa interromper o MySQL de maneira limpa (muito importante), excluir os arquivos de log do InnoDB existentes (provavelmente lb_logfile*no diretório de dados do MySQL, a menos que você os tenha movido), depois ajustar os itens innodb_log_file_sizede acordo com suas necessidades e iniciar o MySQL novamente . Este artigo do blog de desempenho do MySQL pode ser instrutivo.

mulher
fonte
1
Quais são as consequências de simplesmente ignorar as mensagens de erro?
Matt Healy
1
Você está brincando certo? Você está considerando seriamente ignorar uma mensagem de ERRO referente ao ARMAZENAMENTO DA SUA BASE DE DADOS? Quando a correção leva cerca de 10 segundos de inatividade?
womble
6
Não, na verdade não era uma piada, era uma pergunta genuína. O servidor falhará? Os dados serão perdidos? O desempenho será degradado? Tudo acima?
Matt Healy
1
womble, ótima resposta! Eu já corrigi o problema, mas estou curioso para saber quais consequências o erro teve quando a configuração estava incorreta. O fato é que vi algumas lentidões intermitentes e estou curioso para saber se isso está relacionado a esse erro ou se foi algo diferente. Obrigado!
knorv
4
Sim, o servidor de banco de dados travará efetivamente para qualquer atualização nas tabelas do InnoDB quando o log for preenchido. Pode aleijar um site.
womble