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

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

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

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.

我不确定如何解析错误消息。

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

基本上我不知道如何排除故障并继续修复此问题。我的问题是:

  • 该错误信息是什么意思?
  • 我究竟做错了什么?
  • 我该如何修复它?

答案1

该错误消息意味着您试图过快地向 InnoDB 中插入过多数据,并且在数据刷新到主数据文件之前 InnoDB 日志就已经填满。

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

相关内容