Lec19-数据库日志1
需积分: 0 109 浏览量
更新于2022-08-04
收藏 3.75MB PDF 举报
"数据库日志和恢复机制"
数据库日志是数据库管理系统(DBMS)中的一种机制,用于记录数据库的所有操作,以便在出现故障时能够恢复数据库到正确的状态。在本节中,我们将讨论数据库日志的重要性、分类、实现机制,以及恢复机制。
Database Failure Classification
数据库故障可以分为三级:
1. 事务级别的故障:包括逻辑错误和内部状态错误。这类故障是数据库正常运营所不可避免的,因此数据库开发者必须考虑这些问题。
2. 系统级的故障:包括软件异常和硬件异常。这类故障可能是DBMS或者OS的bug,或者是硬件故障。
3. 存储介质的故障:这类故障一般是无法修复的,数据库开发者不需要考虑这些问题。
Buffer Pool Policies
DBMS需要特定的缓存池管理政策来实现Undo/Redo操作,从而保证事务的原子性和持久化。常见的策略有:
* Force策略:DBMS要求事务在commit的时候必须把它所做的更新写入磁盘。
* No-Force策略:DBMS不要求事务在commit的时候写入磁盘。
* No-Steal+Force策略:在这个策略下,DBMS会维护一个缓存池,事务在commit的时候将修改的数据写入磁盘。
Shadow Paging
Shadow Paging是上述No-Steal+Force策略的具体实现。它会维护两份数据库数据:Master和Shadow。Master包含所有已经提交事务的数据,而Shadow包含未提交事务的数据变动。Shadow Paging可以提高效率,因为DBMS不需要复制整个数据库,只需要复制有变动的部分即可。
Shadow Paging的优点是:
* 容易实现
* 回滚时不需要做undo操作
* 重启恢复的时候也不需要做redo操作
Shadow Paging的缺点是:
* 磁盘I/O次数增多
* 在commit时所做的事情太多
* 容易造成数据的碎片化
在工业界实现中,Shadow Paging策略也存在一些问题,如磁盘I/O次数增多、拷贝的开销不小等。
数据库日志和恢复机制是DBMS中非常重要的组件,用于保证数据库的正确性和可靠性。数据库开发者需要考虑这些问题,选择合适的策略和机制来实现数据库的恢复。
稚气筱筱
- 粉丝: 19
- 资源: 320
最新资源
- 聋哑人手语词汇图像分类数据集【已标注,约1,100张数据】
- 基于Pygame库实现新年烟花效果的Python代码
- 必应图片壁纸Python爬虫代码bing-img.zip
- 购物返利源码/代购网站源码/每日分打包完整版源码下载
- Java外卖项目(瑞吉外卖项目的扩展)
- 使用Python和matplotlib库绘制爱心图形的技术教程
- 国际象棋检测11-YOLO(v7至v9)、COCO、Darknet、Paligemma、VOC数据集合集.rar
- Python与Pygame实现带特效的圣诞节场景模拟程序
- R语言实战机器学习实战教程
- 常用算法介绍与学习资源汇总
- ssd5课件图片记录保存
- 国际象棋检测2-YOLO(v5至v11)、COCO、CreateML、Paligemma、TFRecord、VOC数据集合集.rar
- Offer资讯交流Web系统(编号:0889870).zip
- 高考志愿智能推荐系统_2a1qfv22.zip
- 个性化推荐影院(编号:03132141).zip
- 高校学生求职就业平台(编号:24440246).zip