事务恢复

本文探讨了数据库事务恢复的挑战与解决方案,包括使用内存缓冲区提高访问速度,LRU缓冲策略,以及如何通过日志系统确保数据一致性。日志项记录在日志缓冲区,并在合适时机写入磁盘,遵循先写日志原则。检查点用于简化恢复过程,介质恢复则考虑了磁盘损坏情况,通过备份和日志镜像提高系统可靠性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

写在前面

数据库事务恢复笔记。


问题

内容访问速度快但是容易崩溃不稳定。
磁盘稳定但是访问速度慢。

解决

将磁盘的数据页面读到内存缓冲区当中,以便计算机指令提供高速的随机访问。
一旦页面被读入内存的缓冲区,应该设法保存该页面以便不久之后的再次访问这样可以不用再访问磁盘,减少IO的开销。

后备缓冲

允许系统接收到一个磁盘的页面的请求的时候,先将其散列到后备表当中。如果在后备表当中有这一项说明对应的磁盘页面已经被读入缓冲区否则需要从磁盘读入该页。希望缓冲区保存的是最常使用的数据页面可以使用LRU缓冲策略。

LRU策略:读到内存当中的缓冲都被占满的时候一个新的读入的磁盘页面将会置换出最近最少使用的那个页面。
LRU缓冲模式是以减少磁盘的IO次数为目的的因此我们不能期望磁盘能和缓冲区的内容一致。

一个数据页面被称为是脏的:如果上一次写回磁盘之后被某些事物作了更新操作,我们通常会将脏的数据页面保留在内存当中直到更新该数据页面的事务被提交(或者按照LRU策略当该页面被其他页面置换出去的时候再写入磁盘)

但是一个数据页面长时间被操作但是在内存当中都没有被写入磁盘那么一旦断电或者内存崩溃内存上的信息将全部失去,如何保证能够恢复这些数据呢?如果采用每次更新就写回那么代价太大不可接受。

办法:日志

系统为每个更新操作做一个记录。称为日志项。
记录保存在称为日志缓冲区的内存区域。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值