mysql recovery流程_MySQL InnoDB Update和Crash Recovery流程详解

1.2.3 什么是Log Sequence Number (LSN)?

一个64位无符号整数,表示Redo Log系统中的时间点,也是事务写入Redo Log的字节总量,从日志初始化开始计数(数据库初始化安装时间点开始且单调递增)

LSN不仅存在于Redo Log中,在每个数据页中都保存着一个LSN,在进行数据恢复时通过LSN做比较运算可以判断出每个数据页是否需要进行恢复操作

1.2.4 什么是Checkpoint?

一个时间点,由一个LSN值(Checkpoint LSN)表示的整型值,在Checkpoint LSN之前的每个数据页(buffer pool中的脏页)的更改都已经落盘(刷新到数据文件中),Checkpoint 完成后,在Checkpoint LSN之前的Redo Log就不再需要了。

Checkpoint技术是为了解决:全量Redo Log恢复时间太长、buffer pool中的空闲页不够用时将脏页刷新到磁盘数据文件、Redo Log空间不够用时将脏页刷新到磁盘数据文件等问题。

Checkpoint方式有两种:Sharp Checkpoint和Fuzzy Checkpoint(又可根据不同的场景细分)

Sharp Checkpoint:将所有的脏页刷回磁盘,数据库实例关闭时系统参数innodb_fast_shutdown设置为0,才需要把所有的脏页都刷回磁盘,刷脏时系统hang住

Fuzzy Checkpoint:持续的每次只刷新一部分脏页到磁盘,数据库正常运行过程中都是使用这种方式刷脏,在InnoDB内部还可细分为如下几种:

Master线程每秒/每十秒固定执行Checkpoint

LRU list中空闲页不够时&

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值