checkpoint主要是为了解决一下问题:

1.缩短数据库的恢复时间

2.缓冲池不够用时,将脏页刷新到磁盘

3.重做日志不可用时,刷新脏页

Innodb引擎使用LSN(log sequence number)来标记日志版本。 LSN是占8个字节的数字。每个页都有LSN、重做日志也有LSN、Checkpoint也有LSN。

Innodb存储引擎内部有两种checkpoint:

1.sharp checkpoint

发生在数据库关闭时。将所有脏页刷新到磁盘。这是默认的方式,即innodb_fast_shutdown=1

mysql> show variables like 'innodb_fast_shutdown';
+----------------------+-------+
| Variable_name | Value |
+----------------------+-------+
| innodb_fast_shutdown | 1 |
+----------------------+-------+
1 row in set (0.00 sec) mysql>

2.fuzzy checkpoint
数据库运行时,使用sharp checkpoint会影响数据库的可用性。
所以运行时,使用fuzzy checkpoint进行页刷新(只刷新一部分脏页,而不是刷新所有的脏页)。

Innodb中存在以下几种情况的fuzzy checkpoint:
-master thread checkpoint:

  (差不多每秒或每十秒)异步地从缓冲池的脏页列表中刷新一定比例的页到磁盘

-flush_lru_list checkpoint:

   将LRU列表尾端的页移除,Innodb要保证LRU列表中有足够的可用空闲页。在5.6中通过参数innodb_lru_depth来控制LRU列表中可用页的数量,默认是1024

mysql> show variables like 'innodb_lru_scan_depth';
+-----------------------+-------+
| Variable_name | Value |
+-----------------------+-------+
| innodb_lru_scan_depth | 1024 |
+-----------------------+-------+
1 row in set (0.00 sec) mysql>

-async/sync flush checkpoint

  重做日志不可用时,需要强制将一些页刷新到磁盘。

-dirty page too much checkpoint

  脏页太多,强制发生的检查点

mysql> show variables like 'innodb_max_dirty_pages_pct';
+----------------------------+-------+
| Variable_name | Value |
+----------------------------+-------+
| innodb_max_dirty_pages_pct | 75 |
+----------------------------+-------+
1 row in set (0.00 sec) mysql>

脏页占75%时,强制刷新。

Inondb中的checkpoint的更多相关文章

  1. spark streaming中使用checkpoint

    从官方的Programming Guides中看到的 我理解streaming中的checkpoint有两种,一种指的是metadata的checkpoint,用于恢复你的streaming:一种是r ...

  2. HDFS中的checkpoint( 检查点 )的问题

    1.问题的描述 由于某种原因,需要在原来已经部署了Cloudera CDH集群上重新部署,重新部署之后,启动集群,由于Cloudera Manager 会默认设置dfs.namenode.checkp ...

  3. 在SSIS包中使用 Checkpoint从失败处重新启动包

    使用SSIS做ETL的过程中会遇到各种各样的错误,对于一些大数据量的Job失败以后我们不希望重新运行,因为重新运行的时间开销是非常大的,我们只希望从失败的部分开始运行,这样可以省去很多的时间. SSI ...

  4. Spark 中的 checkpoint

    为了实现容错,需要做checkpoint.以Streaming为例,checkpoint中有两种数据: 1. Metadata checkpointing:用于恢复driver端出错的情况.其中包含: ...

  5. 在SSIS包中使用 Checkpoint从失败处重新启动包[转]

    使用SSIS做ETL的过程中会遇到各种各样的错误,对于一些大数据量的Job失败以后我们不希望重新运行,因为重新运行的时间开销是非常大的,我们只希望从失败的部分开始运行,这样可以省去很多的时间. SSI ...

  6. MySQL中Checkpoint技术

    个人读书笔记,详情参考<MySQL技术内幕 Innodb存储引擎> 1,checkpoint产生的背景数据库在发生增删查改操作的时候,都是先在buffer pool中完成的,为了提高事物操 ...

  7. SQL Server中的database checkpoint

    基于性能方面的考虑, 数据库引擎会在内存(buffer cache)中执行数据库数据页(pages)的修改, 不会再每次做完修改之后都把修改了的page写回到磁盘上. 更准确的说, 数据库引擎定期在每 ...

  8. SQL Server CheckPoint的几个误区

        有关CheckPoint的概念对大多数SQL Server开发或DBA人员都不陌生.但是包括我自己在内,大家对于CheckPoint都或多或少存在某些误区,最近和高文佳同学(感谢高同学的探讨) ...

  9. 再谈SQL Server中日志的的作用

    简介     之前我已经写了一个关于SQL Server日志的简单系列文章.本篇文章会进一步挖掘日志背后的一些概念,原理以及作用.如果您没有看过我之前的文章,请参阅:     浅谈SQL Server ...

随机推荐

  1. C#.NET常见问题(FAQ)-如何让TabControl可以动态增加或删除

    动态插入可以使用TabPages.Insert方法   动态删除可以用Remove方法   更多教学视频和资料下载,欢迎关注以下信息: 我的优酷空间: http://i.youku.com/aceta ...

  2. Android开发点滴 - 如何使按钮水平垂直居中且始终占据屏幕宽度一半

    问题描述: 如何使按钮水平垂直居中且始终占据屏幕宽度一半 效果如下: 竖屏: 横屏: 解决方案: 使用线性布局,指定线性布局的总权重(weightSum)为1, 指定按钮的权重为其一半即0.5 布局代 ...

  3. JS实现拖动(2)

    getBoundingClientRect() 来获取页面元素的位置 document.documentElement.getBoundingClientRect 该方法返回一个对象,从而获得页面中某 ...

  4. 使用树莓派3获取CPU温度

    一.命令: cat /sys/class/thermal/thermal_zone0/temp 二.上图:

  5. Linux内核配置:Makefile目标

    在顶层Linux源码目录中输入命令make help,它会显示一长串从源码树中生成的目标列表.最常见的使用make的方式是不指定目标,在这种情况下,它会生成内核ELF文件vmlinux和针对所选架构的 ...

  6. 【Linux 驱动】Netfilter/iptables (八) Netfilter的NAT机制

    NAT是Network Address Translation的缩写,意即"网络地址转换". 从本质上来说,是通过改动IP数据首部中的地址,以实现将一个地址转换成还有一个地址的技术 ...

  7. 【leetcode】solution in java——Easy4

    转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6415011.html 16:Invert Binary Tree 此题:以根为对称轴,反转二叉树. 思路:看到 ...

  8. 在Ubuntu上安装pyenv 相关问题Common build problems

    Requirements: Ubuntu/Debian: sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libb ...

  9. OpenCV实现任意大小图片的合并(转)

    OpenCV实现图像合并主要有两种方法 方法一:使用Mat.push_back方法将列数相同的图像加到最后一行 方法二: 主要思路是将图像拷贝到待合并图像的感兴趣区域 (1)新建一个要合并的图像(容器 ...

  10. 〖Android〗依据资源信息,Mock Android资源

    #!/bin/bash - #=============================================================================== # # F ...