my05_mysql检查点简述
简单描述一下mysql 检查点,对mysql数据库恢复的理解有所帮助。
数据库版本
mysql> select version();
+-----------+
| version() |
+-----------+
| 8.0.11 |
+-----------+
1 row in set (0.00 sec)
检查点查看
mysql> show engine innodb status\G;
---
LOG
---
Log sequence number 25048841
Log buffer assigned up to 25048841
Log buffer completed up to 25048841
Log written up to 25048841
Log flushed up to 25048841
Added dirty pages up to 25048841
Pages flushed up to 25048841
Last checkpoint at 25048841
35 log i/o's done, 0.00 log i/o's/second
----------------------
Last checkpoint就是检查点的位置,在数据库并不繁忙的时候,可以看到Log sequence number,Log flushed,Pages flushed的位置接近或相等。当数据库DML操作较多时,它们的差值会变大。
相关参数
mysql数据库将内存中脏页刷新到磁盘时,记录一次检查点,也这是检查点的功能,刷新内存脏页到磁盘。innodb每秒或几秒都会自动刷新脏页,除此之外,它还受以下两个参数影响
mysql> show variables like '%max_dirty_pages%';
+--------------------------------+-----------+
| Variable_name | Value |
+--------------------------------+-----------+
| innodb_max_dirty_pages_pct | 50.000000 |
| innodb_max_dirty_pages_pct_lwm | 10.000000 |
+--------------------------------+-----------+
2 rows in set (0.00 sec)
当innodb脏页使用率超过innodb_max_dirty_pages_pct_lwm的值时,除innodb本身的自动刷新脏页机制外,会开始加速刷脏页,当脏页使用率超过innodb_max_dirty_pages_pct的值时,会再次提高刷新脏页的速度。
innodb_max_dirty_pages_pct_lwm为0表示该参数不生效。
检查点分类
Sharp Checkpoint(完全检查点)
将内存中所有脏页全部写到磁盘就是完全检查点,比如数据库实例关闭时。
Fuzzy Checkpoint(模糊检查点)
将部分脏页刷新到磁盘,就是模糊检查点,数据库实例运行过程产生的检查基本上就是这种类型的检查点。
检查点作用
主要作用就是减少数据恢复时间 。因为检查点位置之前的数据都写到磁盘上了,数据恢复便不需要再关注这部分数据,所以它减少了恢复的时间 。
常说的crash崩溃恢复,恢复的是哪些数据? 恢复的是Last checkpoint到Log flushedup之间的数据。Log flushedup是内存写日志的位置,也是日志文件最新的位置。再新的话就到内存中去了,还没有写入日志文件的数据是没法恢复的。
my05_mysql检查点简述的更多相关文章
- 简述 OAuth 2.0 的运作流程
本文将以用户使用 github 登录网站留言为例,简述 OAuth 2.0 的运作流程. 假如我有一个网站,你是我网站上的访客,看了文章想留言表示「朕已阅」,留言时发现有这个网站的帐号才能够留言,此时 ...
- JavaScript单线程和浏览器事件循环简述
JavaScript单线程 在上篇博客<Promise的前世今生和妙用技巧>的开篇中,我们曾简述了JavaScript的单线程机制和浏览器的事件模型.应很多网友的回复,在这篇文章中将继续展 ...
- APP测试点总结(功能,交互,死机崩溃状态分析,容易出错的检查点)
APP测试点总结(功能,交互,死机崩溃状态分析,容易出错的检查点) 版权声明:本文为博主原创文章,未经博主允许不得转载. 最近涉足APP端测试,常见检查点总结如下: 一.业务方面: 1. 注册( ...
- Design Patterns Simplified - Part 3 (Simple Factory)【设计模式简述--第三部分(简单工厂)】
原文链接:http://www.c-sharpcorner.com/UploadFile/19b1bd/design-patterns-simplified-part3-factory/ Design ...
- Android网络定位服务定制简述
Android 添加高德或百度网络定位服务 Android的网络定位服务以第三方的APK方式提供服务,由于在国内Android原生自带的com.google.android.gms服务几乎处于不可用状 ...
- 《Entity Framework 6 Recipes》翻译系列 (1) -----第一章 开始使用实体框架之历史和框架简述
微软的Entity Framework 受到越来越多人的关注和使用,Entity Framework7.0版本也即将发行.虽然已经开源,可遗憾的是,国内没有关于它的书籍,更不用说好书了,可能是因为EF ...
- 简述ASP.NET MVC原理
1.为什么ASP.NET需要MVC? 因为随着网站的的数量级越来越大,原始的网站方式,这里指的是WebForm,在运行速度和维护性方面,以及代码量上面,越来越难以满足日益庞大的网站维护成本.代码的重构 ...
- Design Patterns Simplified - Part 2 (Singleton)【设计模式简述--第二部分(单例模式)】
原文链接: http://www.c-sharpcorner.com/UploadFile/19b1bd/design-patterns-simplified-part-2-singleton/ De ...
- 【翻译】设计模式学习系列1---【Design Patterns Simplified: Part 1【设计模式简述:第一部分】】
原文链接:http://www.c-sharpcorner.com/UploadFile/19b1bd/design-patterns-simplified-part1/ Design Pattern ...
随机推荐
- 杭电acm 1037题
本题应该是迄今为止最为简单的一道题,只有一组输入,输出也简单.... /****************************************** 杭电acm 1037题 已AC ***** ...
- windows VS2013 编译安装QWT6.1和QWTPolar1.1.1
QWT的编译和配置 1. 下载QWT从官网 For getting a snapshot with all bugfixes for the latest 5.2 release: svn expor ...
- Halcon将裁剪后的图像还原为原始大小
************************************************************* * Halcon将裁剪后的图像还原为原始大小 * Author: LiGua ...
- EZOJ #78
传送门 分析 AC自动机板子题qwq 不过似乎可以哈希(因为所有模式串的长度相同,所以哈希乱搞就可以) 代码 #include<iostream> #include<cstdio&g ...
- Entity Framework Tutorial Basics(35):Local Data
Local Data The Local property of DBSet provides simple access to the entities that are currently bei ...
- Java50道经典习题-程序29 求矩阵对角线之和
题目:求一个3*3矩阵对角线元素之和分析:利用双重for循环控制输入二维数组,再将a[i][i]累加后输出. 例如:下面矩阵的对角线之和为24 1 4 6 2 5 3 9 7 8 public cla ...
- 责任型模式一:Observer(观察者)模式
目的: Observer模式的宗旨是在多个对象之间定义一对多的关系,以便当一个对象状态改变时,其他所有依赖于这个对象的对象都能得到通知,并被自动更新.常用于业务逻辑层与表现层的分离. 需求:由GUI引 ...
- DataGridView增加全选列
最近的一个winform的项目中,碰到datagridview控件的第一列添加全选的功能,通常这个功能,有两种实现方式:1. 为控件添加DataGridViewCheckBoxColumn来实现,但是 ...
- EchartJS平均线、最大值、最小值
1.先来看一个没有平均线.最大值.最小值的简单实例 option = { title: { text: '未来一周气温变化', subtext: '纯属虚构' }, tooltip: { trigge ...
- C++时间操作的汇总
. 获取当前时间 time_t cur_time = time(NULL); . 把整数时间转为字符串时间 string GetStringTime(const time_t time) { stru ...