| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> 04.CheckPoint机制详解 -> 正文阅读 |
|
[大数据]04.CheckPoint机制详解 |
概述CheckPoint主要的作用是将缓冲池中的脏页刷新到磁盘,同时解决了以下三个问题:
当数据库发生宕机时,不需要重做所有的日志,只需要对CheckPoint之后的重做日志进行恢复,从而大大缩短恢复的时间。
当缓冲池不够用时,根据LRU算法删除最近最少使用的页,如果该页为脏页,那么会强制执行CheckPoint,将脏页刷新到磁盘。
重做日志空间是循环使用的,并不能无限增大。当重做日志中的脏页都被刷新到磁盘时,数据库宕机时恢复数据则不需要这部分重做日志。当这部分重做日志没有被刷新到磁盘,则需要强制执行CheckPoint,将重做日志对应的脏页刷新到磁盘。 CheckPoint工作详解在InnoDB存储引擎内部有两种CheckPoint方式,分别是Sharp CheckPoint、Fuzzy CheckPoint,他们的区别在于每次刷新磁盘页数、每次取脏页的位置有,以及触发CheckPoint时间不同。具体细节往下看。 Sharp CheckPoint当数据库关闭时将所有的脏页都刷新回磁盘,这是默认的工作方式,参数配置:innodb_fast-shutdown=1。 Fuzzy CheckPoint如果在数据库运行时使用sharp checkpoint,那么对数据库的可用性影响会很大,所以在InnoDB内部会使用Fuzzy CheckPoint进行一部分脏页的刷新。 执行Fuzzy CheckPoint存在以下四种场景。 Master Thread CheckPoint在Master Thread中会执行CheckPoint,以每秒或每十秒的速度将缓存池脏页列表中一定比例的脏页刷新回磁盘。这个过程是异步的,不会堵塞用户查询线程。 FLUSH_LRU_LIST CheckPoint如果脏页列表没有100个可用空闲页,那么InnoDB存储引擎会将LRU列表尾端的页移除,如果这些页中有脏页,那么会执行CheckPoint。 Async/Sync Flush CheckPoint当重做日志不可用时会强制将一些脏页刷新回磁盘,此时脏页是从脏页列表(Flush List)中选取的。 如图最新写入的重做日志位置标记redo_lsn,刷新回磁盘最新页的位置标记checkpoint_lsn。redo_lsn和checkpoint_lsn之间是未刷新到磁盘的重做日志,no_flush_size称为未刷新磁盘重做日志容量。
说明:Async Flush与Sync Flush区别在于,Async Flush会堵塞发现问题的用户查询线程,Sync Flush会堵塞所有的用户查询线程。从MySQL5.6版本之后这部分刷新操作放到了单独的Page Cleaner Thread中,所以不会堵塞用户查询线程。 Dirty Page too much CheckPoint如果脏页数量太多,会触发执行CheckPoint,目的时保证缓冲池中有足够的可用页。 可以通过innodb_max_dirty_pages_pct参数配置,值为75的含义是,当缓冲池中脏页的数量占据75%时,强制执行CheckPoint,刷新一部分脏页到磁盘。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 2:25:39- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |