nnoDB: ERROR: the age of the last checkpoint is 505757614,
InnoDB: which exceeds the log group capacity 483180135.
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.
—————
有时我们看到如上的错误日志. 是因为的并发事务量,同时更新的事务过多,一下子有大量的脏数据,而这些脏数据是需要刷新到磁盘的.增大事务日志大小可能不能解决问题.
checkpoint age的计算如下:
使用mysql> show innodb status;
---
LOG
---
Log sequence number 1202 712212913
Log flushed up to 1202 712155307
Last checkpoint at 1202 526490071
0 pending log writes, 0 pending chkp writes
2990007 log i/o's done, 1.36 log i/o's/second
----------------------
BUFFER POOL AND MEMORY
(1202 – 1202) * 2^32 + (712212913 – 526490071)
= 185722842
————————————
一般 max chekcpoint age 的大小为70-80%的 所有日志文件大小,(innodb_log_file_size * innodb_log_files_in_group)
如果经常出现这个错误,官方的mysql版本,可以缓解的办法是
1.增大事务日志大小; #所有日志总和不能超过4G.
2.设置下innodb_max_dirty_pages_pct为更小值,这样会增加io,但碰到超过max chekcpoint age的可能性会降低.
阅读(1737) | 评论(0) | 转发(0) |