/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 性能博客可能会有启发。