辰枫的MySQL和NoSQL学习笔记

骐骥一跃,不能十步;驽马十驾,功在不舍。

  • 博客访问: 1192430
  • 博文数量: 582
  • 用 户 组: 普通用户
  • 注册时间: 2015-12-07 17:58
  • 认证徽章:
个人简介

智慧星光高级DBA。 提供北京或河南地区MySQL、Oracle和MongoDB数据库的技术支持(性能调优,故障处理,安装升级,数据恢复等). 微信或QQ:410294 邮箱:cn_chenfeng@126.com

文章分类

全部博文(582)

文章存档

2018年(43)

2017年(249)

2016年(242)

2015年(48)

分类: MySQL

2018-04-08 12:31:44

如果InnoDB_buffer_size参数很大,缓冲区内的脏数据太多,那么关闭MySQL的时候
必须把脏数据刷新到磁盘,这个过程有可能是很漫长的,从而导致关闭MySQL服务的时间过长。
可以临时设置innodb_max_dirty_pages_pct=0,然后等到脏数据大部分都刷新到磁盘后(通过查看show engine innodb status命令输出中的Modified db pages,这个值应该很小),再手动关闭数据库。
方法1:
mysql>set global innodb_max_dirty_pages_pct=0;
Query OK, 0 rows affected (0.00 sec)


运行命令mysqladmin -uroot ext -i10 |grep dirty,检查状态变量值,等到它接近0的时候关闭它,如果是生产繁忙的系统,这个值可能会一直偏大,待innodb_max_dirty_pages的值很小时,就可以
用mysqladmin关闭MySQL了.


# mysqladmin -uroot ext -i10 |grep dirty
| Innodb_buffer_pool_pages_dirty                | 0                                                |
| Innodb_buffer_pool_bytes_dirty                | 0                                                |
| Innodb_buffer_pool_pages_dirty                | 0                                                |
| Innodb_buffer_pool_bytes_dirty                | 0



方法2:

mysql>set global innodb_fast_shutdown=2;  默认为1
Query OK, 0 rows affected (0.00 sec)

虽然这样可以快速关闭mysql,但启动时候需要执行更多的恢复操作.


Innodb_fast_shutdown三个值的含义:
Innodb_fast_shutdown告诉innodb在它关闭的时候该做什么工作。有三个值可以选择:
0表示在innodb关闭的时候,需要purge all, merge insert buffer,flush dirty pages。这是最慢的一种关闭方式,但是restart的时候也是最快的。后面将介绍purge all,merge insert buffer,flush dirty pages这三者的含义。
1表示在innodb关闭的时候,它不需要purge all,merge insert buffer,只需要flush dirty page。
2表示在innodb关闭的时候,它不需要purge all,merge insert buffer,也不进行flush dirty page,只将log buffer里面的日志flush到log files。因此等下进行恢复的时候它是最耗时的。

阅读(2986) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~
评论热议
请登录后评论。

登录 注册