- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据库恢复技术硬件的故障、软件错误、操作失误和恶意破坏都可以使
第十四章 事务处理技术之二:数据库恢复技术
硬件故障、软件错误、操作失误和恶意破坏都可以使数据库
偏离正确状态。因此需要一个使数据库恢复到正确状态的机
构。数据库恢复机构是DBMS的重要组成部分。它用于事务终
止后的善后处理和系统故障恢复处理,确保系统发生故障后,
数据库能恢复到正确的状态。本章介绍数据库恢复的主要技
术。
第一节 数据库恢复的必要性
第二节 使用日志的数据库恢复技术
第三节 缓冲技术
第四节 检测点
第五节 影子页面技术
第六节 永久存储器中信息丢失后的数据库恢复
第七节 数据库恢复与并发控制技术的结合;第一节 数据库恢复的必要性
因多种故障能造成数据库的错误状态,故须研究恢复技术。
数据库恢复机制有两个目的:
?保证事务的原子性,即:事务T交付运行后,若T的各个
操作均全部成功地完成,则其结果永久地存入数据库;
否则T对数据库没有任何影响。
?系统发生故障后,能够恢复到正确状态。
事务原子性被破坏并引起系统故障的主要原因有五个方面:
?计算机系统故障 ?事务或系统错误 ?事务被强行终止
?磁盘故障 ?停电等其它原因
作为数据库恢复基础的存储设备有下列三种:
?非永久存储器:主存储器和高速缓冲存储器等;
?永久存储器:磁盘和磁带等;
?永恒存储器:是指理论上绝对不会丢失信息的存储器。
可以通过多个永久存储器对信息的多副本管理来模拟;
本章讨论的数据库恢复技术适用于如下四种类型的故障:
?事务的逻辑错误 ?系统状态异常,如死锁等
?硬件故障但信息保持完整 ?由磁盘故障引起的信息丢失;第二节 使用日志的数据库恢复技术
这种技术能保证事务的原子性。其原理是先把对数据库的更
新操作信息写入永恒存储器,然后根据这些信息实施对数据
库的更新。
这种技术的基本概念是数据库系统日志。数据库系统日志简
称为日志,是指记载有关事务操作过程的存储结构。为了确
保数据库总能成功恢复,日志必须存储在永恒存储器中。日
志记载的信息主要是写操作,与write(Q)对应。
日志的基本记录有下列三种类型:
第一类型:(T,start). 表示事务T已经开始。
第二类型:(T, x, v1, v2). 表示事务T已经对数据项x从原始值
v1改为新值v2。无论在什么时候下,事务执行写操作,总
是建立日志记录在前,实施更新数据库在后。有了这个记
录,就可以在必要时用新值或原始值去更新数据库,使数
据库始终保持正确状态。
第三类型:(T,commit).表示事务T已经提交。
下边讨论两种基于日志的数据库恢复技术,即推迟更新技术
和既时更新技术。;写日志记录.若
有故障,则删除
事务有关记录;基于日志技术之二:即时更新技术:
即时更新技术要求在执行每个更新操作前把对应的一条日志记
录成功地写入永恒存储器。写日志记录和更新操作交替进行。
这个技术遵循下述即时更新协议:
1)记录(T,x,v1,v2)存入永恒存储器前,不进行对应的更新操作;
2)所有(T,x,v1,v2)存入永恒存储器前,不允许事务T提交。
故障后的数据库恢复过程是:把日志记载的事务分为两个集合:
1)未提交事务,即日志中无commit记录的事务。对该事务集,
逆向扫描日志作undo处理,即对数据项用旧值代替新值:
for 日志每个(T,x,v1,v2)记录 do
用v1覆盖数据项x的值
endfor
2)已提交事务,即日志中有commit记录的事务。对该事务集,
正向扫描日志作redo处理,即对数据项用新值代替旧值:
for 日志每个(T,x,v1,v2)记录 do
用v2覆盖数据库中数据项x的值
endfor;
redo和undo是幂等的操作,即反复执行任意次数都有相同结果。;第三节 缓冲技术
一 日志缓冲技术
日志缓冲技术要求日志记录在内存缓冲区集结成块(磁盘读写单
位)后才写入永恒存储器。由于日志记录短小,而且永恒存储器
的读写涉及多个物理级的读写操作,这样处理可以大幅度节省
系统开销。由于考虑到缓冲区的日志记录会因系统故障而丢失,
我们在前述数据库恢复协议上增加如下的规则:
1)任何事务T必须在日志记录(T,commits)写入永恒存储器后
才进入提交状态。
2)非(T,commits)型记录必须
文档评论(0)