MySQL: InnoDB: ERREUR: l'âge du dernier point de contrôle est X, ce qui dépasse la capacité du groupe de journaux Y?

10

Dans un environnement de production MySQL, le message d'erreur suivant est écrit /var/log/mysql/error.logtoutes les quatre minutes:

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.

Je ne sais pas comment analyser le message d'erreur.

Plus précisément, je ne comprends pas comment l'âge du point de contrôle est lié à la «capacité du groupe de journaux» et comment cela se rapporte à son tour à la taille des lignes avec de grandes BLOB/ TEXTcolonnes.

Fondamentalement, je suis perdu sur la façon de dépanner et de résoudre ce problème. Mes questions sont:

  • Que signifie le message d'erreur?
  • Qu'est-ce que je fais mal?
  • Comment puis-je le réparer?
knorv
la source

Réponses:

11

Le message d'erreur signifie que vous essayez d'insérer trop de données dans InnoDB trop rapidement et que le journal InnoDB se remplit avant que les données puissent être vidées dans les fichiers de données principaux.

Pour le résoudre, vous devez arrêter MySQL proprement (très important), supprimer les fichiers journaux InnoDB existants (probablement lb_logfile*dans votre répertoire de données MySQL, à moins que vous ne les ayez déplacés), puis ajuster le innodb_log_file_sizeen fonction de vos besoins, puis redémarrer MySQL . Cet article du blog sur les performances de MySQL pourrait être instructif.

womble
la source
1
Quelles sont les conséquences de simplement ignorer les messages d'erreur?
Matt Healy
1
Vous plaisantez, non? Vous envisagez sérieusement d'ignorer un message d'ERREUR concernant le STOCKAGE DE VOTRE BASE DE DONNÉES? Lorsque le correctif prend environ 10 secondes d'indisponibilité?
womble
6
Non, ce n'était pas une blague, c'était une vraie question. Le serveur plantera-t-il? Les données seront-elles perdues? Les performances seront-elles dégradées? Tout ce qui précède?
Matt Healy
1
womble, grande réponse! J'ai déjà résolu le problème, mais je suis curieux de savoir quelles conséquences l'erreur a eues lorsque la configuration était incorrecte. Le fait est que j'ai vu des ralentissements intermittents et je suis curieux de savoir si cela était lié à cette erreur ou si c'était quelque chose de différent. Merci!
knorv
4
Oui, le serveur de base de données suspendra efficacement toute mise à jour des tables InnoDB lorsque le journal se remplira. Cela peut paralyser un site.
womble