简单描述一下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检查点简述的更多相关文章

  1. 简述 OAuth 2.0 的运作流程

    本文将以用户使用 github 登录网站留言为例,简述 OAuth 2.0 的运作流程. 假如我有一个网站,你是我网站上的访客,看了文章想留言表示「朕已阅」,留言时发现有这个网站的帐号才能够留言,此时 ...

  2. JavaScript单线程和浏览器事件循环简述

    JavaScript单线程 在上篇博客<Promise的前世今生和妙用技巧>的开篇中,我们曾简述了JavaScript的单线程机制和浏览器的事件模型.应很多网友的回复,在这篇文章中将继续展 ...

  3. APP测试点总结(功能,交互,死机崩溃状态分析,容易出错的检查点)

    APP测试点总结(功能,交互,死机崩溃状态分析,容易出错的检查点) 版权声明:本文为博主原创文章,未经博主允许不得转载. 最近涉足APP端测试,常见检查点总结如下:   一.业务方面: 1.  注册( ...

  4. Design Patterns Simplified - Part 3 (Simple Factory)【设计模式简述--第三部分(简单工厂)】

    原文链接:http://www.c-sharpcorner.com/UploadFile/19b1bd/design-patterns-simplified-part3-factory/ Design ...

  5. Android网络定位服务定制简述

    Android 添加高德或百度网络定位服务 Android的网络定位服务以第三方的APK方式提供服务,由于在国内Android原生自带的com.google.android.gms服务几乎处于不可用状 ...

  6. 《Entity Framework 6 Recipes》翻译系列 (1) -----第一章 开始使用实体框架之历史和框架简述

    微软的Entity Framework 受到越来越多人的关注和使用,Entity Framework7.0版本也即将发行.虽然已经开源,可遗憾的是,国内没有关于它的书籍,更不用说好书了,可能是因为EF ...

  7. 简述ASP.NET MVC原理

    1.为什么ASP.NET需要MVC? 因为随着网站的的数量级越来越大,原始的网站方式,这里指的是WebForm,在运行速度和维护性方面,以及代码量上面,越来越难以满足日益庞大的网站维护成本.代码的重构 ...

  8. Design Patterns Simplified - Part 2 (Singleton)【设计模式简述--第二部分(单例模式)】

    原文链接: http://www.c-sharpcorner.com/UploadFile/19b1bd/design-patterns-simplified-part-2-singleton/ De ...

  9. 【翻译】设计模式学习系列1---【Design Patterns Simplified: Part 1【设计模式简述:第一部分】】

    原文链接:http://www.c-sharpcorner.com/UploadFile/19b1bd/design-patterns-simplified-part1/ Design Pattern ...

随机推荐

  1. 大话设计模式--Python

    作者:五岳 出处:http://www.cnblogs.com/wuyuegb2312 上一周把<大话设计模式>看完了,对面向对象技术有了新的理解,对于一个在C下写代码比较多.偶尔会用到一 ...

  2. js 操作属性,操作内容,

    disable=“disable” 让按钮变得不可选 先建一个按钮,让class = ’btn‘ 然后, 添加,修改属性 document.getElementsByClassName('btn')[ ...

  3. HDOJ 1097 A hard puzzle

    Problem Description lcy gives a hard puzzle to feng5166,lwg,JGShining and Ignatius: gave a and b,how ...

  4. 如果客户端禁用了cookie,如何实现session

    虽然客户端禁用了cookie,那么当访问某一个php文件时,php会先查找php.ini,如果session.use_trans_sid=1/session.use_only_cookie=0,php ...

  5. 形式化验证工具(PAT)Perterson Algorithm学习

    今天学习一下Perterson Algorithm. 这个算法是使用三个变量来实现并发程序的互斥性算法. 具体看一下代码: Peterson算法是一个实现互斥锁的并发程序设计算法,核心就是三个标志位是 ...

  6. auto和register关键字

    关键字概述 很多朋友看到这儿可能会有疑问,往往其它讲C语言的书籍都是从HelloWorld,数据类型开始C语言学习的,为什么我们要从C语言的关键字开始呢?关于这点,我有两点需要说明: 本章节面向的读者 ...

  7. arcgis调用国家天地图wfs服务

    1.国家天地图wfs地址 getcapabilities http://www.tianditu.com/wfssearch.shtml?request=getcapabilities&ser ...

  8. c# winform使用IrisSkin2换肤弹不出窗口解决方案

    winform使用IrisSkin2换肤弹不出窗口解决方案 这张图能解决超级多博友的问题,知识是共享的,绝不私吞.共同学习,共同进步! 不需要说太多,只需1张图!                    ...

  9. numpy中transpose和swapaxes函数讲解

    1 transpose() 这个函数如果括号内不带参数,就相当于转置,和.T效果一样,而今天主要来讲解其带参数. 我们看如下一个numpy的数组: arr=np.arange(16).reshape( ...

  10. AppDelegate生命周期回调顺序

    1. 应用初次启动: - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDiction ...