关于mysql innodb log file的1个bug

时间:2021-08-27 07:14:41

CentOS5.x,mysql5.1.x
error log中报错:
100622  5:07:21  InnoDB: ERROR: the age of the last checkpoint is 724770333,


InnoDB: which exceeds the log group capacity 724770202.
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.

这其实是MySQL的一个bug,原因参考http://bugs.mysql.com/bug.php?id=39168
主要是由于bug导致可能在日志空间不足时还会一直产生redo并写日志,只要age超过日志文件的大小不多的话,问题不大。
不过这个bug直到5.1.49版本才修复,http://dev.mysql.com/doc/refman/5.1/en/news-5-1-49.html

彻底解决应该只有升级到5.1.49,但是可以通过以下方法来减少发生的可能:
正常停止服务(可确保innodb buffer pool中脏数据全部写入到表空间)
修改配置文件my.cnf ,加大innodb_log_file_size,增加innodb_log_files_in_group
删除ib_logfile*
启动mysql