Login
网站首页 > 文章中心 > 其它

MySQL笔记之Checkpoint机制

作者:小编 更新时间:2023-10-14 07:17:54 浏览量:375人看过

CheckPoint是MySQL的WAL和Redolog的一个优化技术.

第一段:Checkpoint机制

CheckPoint做了什么事情?将缓存池中的脏页刷回磁盘.

checkpoint定期将db buffer的内容刷新到data file,当遇到内存不足、db buffer已满等情况时,需要将db buffer中的内容/部分内容(特别是脏数据)转储到data file中.

在转储时,会记录checkpoint发生的位置,在故障回复时候,只需要redo/undo最近的一次checkpoint之后的操作.

第二段:CheckPoint作用

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

当数据库宕机时,数据库不需要重做所有日志,因为CheckPoint之前的页都已经刷新回磁盘.只需对CheckPoint后的重做日志进行恢复,从而缩短恢复时间

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

当缓存池不够用时,LRU算法会溢出最近最少使用的页,若此页为脏页,会强制执行CheckPoint,将该脏页刷回磁盘

3、Redo日志不可用时,刷新脏页

不可用是因为对重做日志的设计是循环使用的.重做日志可以被重用的部分,是指当数据库进行恢复操作时不需要的部分.若此时这部分重做日志还有用,将强制执行CheckPoint,将缓冲池的页至少刷新到当前重做日志的位置

第三段:CheckPoint种类

InnoDB存储引擎内部,有两种Checkpoint,分别为:Sharp Checkpoint、Fuzzy Checkpoint

1、Sharp CheckPoint

发生在数据库关闭时,会将所有的脏页刷回磁盘,这是默认的工作方式,即参数innodb_fast_shutdown=1.

但是若数据库在运行时也使用Sharp Checkpoint,那么数据库的可用性就会受到很大的影响.故在InnoDB存储引擎内部使用Fuzzy Checkpoint进行页的刷新,即只刷新一部分脏页,而不是刷新所有的脏页回磁盘.

2、Fuzzy CheckPoint

为提高性能,数据库运行时使用Fuzzy CheckPoint进行页的刷新,即只刷新一部分脏页.

Fuzzy Checkpoint(模糊检查点):

Master Thread Checkpoint;

FLUSH_LRU_LIST Checkpoint;

Async/Sync Flush Checkpoint;

Dirty Page too much Checkpoint

在Innodb事务日志中,采用了Fuzzy Checkpoint,Innodb每次取最老的modified page(last checkpoint)对应的LSN,再将此脏页的LSN作为Checkpoint点记录到日志文件,意思就是此LSN之前的LSN对应的日志和数据都已经flush到redo log.

第三段:LSN标记

InnoDB引擎通过LSN(Log Sequence Number)来标记版本,LSN是日志空间中每条日志的结束点,用字节偏移量来表示.

1、LSN(Log Sequence Number)

LSN是用来标记版本的

每个page有LSN,redo log也有LSN,Checkpoint也有LSN

2、Log Sequence Number

当mysql crash的时候,Innodb扫描redo log,从last checkpoint开始apply redo log到buffer pool,直到last checkpoint对应的LSN等于Log flushed up to对应的LSN,则恢复完成.

MySQL笔记之Checkpoint机制

创建阶段:事务创建一条日志

日志刷盘:日志写入到磁盘上的日志文件

数据刷盘:日志对应的脏页数据写入到磁盘上的数据文件

写CKP:日志被当作Checkpoint写入日志文件;

Log sequence number(LSN1):当前系统LSN最大值,新的事务日志LSN将在此基础上生成(LSN1◆新日志的大小);

参考资料:

https://lefred.be/content/a-graph-a-day-keeps-the-doctor-away-mysql-checkpoint-age/

以上就是土嘎嘎小编为大家整理的MySQL笔记之Checkpoint机制相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章