MySQL:InnoDB:错误:最后一个检查点的年龄是X,超过了日志组容量Y?

在生产MySQL环境中,每四分钟将以下错误消息写入/var/log/mysql/error.log

 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. 

我不知道如何parsing错误信息。

更具体地说,我不明白检查点的年龄是如何与“日志组容量”相关的,以及如何与具有大BLOB / TEXT列的行的大小相关。

基本上我失去了如何解决问题,并继续解决这个问题。 我的问题是:

  • 错误信息是什么意思?
  • 我究竟做错了什么?
  • 我该如何解决?

这个错误信息意味着你试图在InnoDB中插入太多的数据,InnoDB日志在数据被刷新到主数据文件之前就已经填满了。

为了解决这个问题,你需要干净地停止MySQL(非常重要),删除现有的InnoDB日志文件(可能是MySQL数据目录中的lb_logfile* ,除非你已经移动了它们),然后调整innodb_log_file_size以满足你的需要,然后再次启动MySQL。 来自MySQL性能博客的这篇文章可能是有启发性的。