Chinaunix首页 | 论坛 | 博客
  • 博客访问: 504244
  • 博文数量: 65
  • 博客积分: 2925
  • 博客等级: 上尉
  • 技术积分: 1306
  • 用 户 组: 普通用户
  • 注册时间: 2009-07-01 10:56
个人简介

2013

文章分类

全部博文(65)

分类: Mysql/postgreSQL

2013-07-01 14:34:45

在批量更新数据的时候,mysqld.err中多次出现了:
130701 11:53:42  InnoDB: ERROR: the age of the last checkpoint is 2863227109,
InnoDB: which exceeds the log group capacity 566225511.
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

查看show engine innodb status \G
---
LOG
---
Log sequence number 35 1084195310
Log flushed up to   35 1082093330
Last checkpoint at  34 2875247845
0 pending log writes, 0 pending chkp writes
175831373 log i/o's done, 5.55 log i/o's/second

发现Log flushed up跟Last checkpoint 确实相差比较大,在redo log 中的capacity变量,代表最后的checkpoint不能超过这个阀值;若超过这个阀值则需将innodb buffer pool 中的脏数据写回到磁盘。

只是偶尔出现一次这类告警,不调整my.cnf参数也可以;若经常出现这类告警,可以将innodb_log_file_size参数调大。

innodb_log_file_size 参数的调整需重启数据库,对于生产线的数据库需选择好重启的时机,调整时如下操作:
1.停止mysql;
2.修改my.cnf中的innodb_log_file_size参数的大小;
3.将ib_logfile* 的文件移至其他目录(在正常关闭的情况下可以直接删除,最好还是移至其他目录,若mysql正常启动后再删除也不迟);
4.启动mysql,检查启动是否正常。
阅读(4939) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~