今天看啥  ›  专栏  ›  架构师之路

ARIES,数据恢复算法,万变不离其宗...

架构师之路  · 公众号  · 架构  · 2024-07-03 12:16
今天来聊两个问题:1. 如果缓冲池(buffer pool)满了,哪些数据页(page)要刷盘,哪些数据页不刷盘?2. 数据库崩了,怎么利用检查点(checkpoint)与预写日志恢复数据?问题一:缓冲池满时的刷盘策略首先来回顾一下《预写日志WAL的核心思路...》中相关的一些知识点:1. 检查点记录了某一个时刻,缓冲池中所有数据页的状态信息;2. 预写日志(write-ahead logging,WAL)中记录了,事务在执行过程中,对数据库进行的所有写操作;3. 日志序列号(log sequence number,LSN),可以标识所有操作序列时序的依据;再来介绍两个新的知识点:其一,在数据库中,需要存储一个信息:flushed-LSN:预写日志已刷盘的最大LSN。画外音:这是日志刷盘。其二,每个数据页X,还要包含两个信息:page-LSN:最近修改数据页的LSN。画外音:每一页数据,都会存储这个LSN。rec-LSN ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照