- 1、本文档共22页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
数
据
库
恢
复
技
术;事务
故障及其类型
数据库恢复实现技术
数据库恢复策略;事务(Transaction)
用户定义的一个对数据库读写操作序列
一个不可分割的工作单位
数据库恢复和并发控制的基本单位
数据库系统中通常有多个事务并行运行
在关系数据库中,事务可以是一条、一组SQL语句,或整个程序
事务和程序的区别?
程序包含多个事务;事务的开始和结束可以由用户显式控制。如果用户没有定义,则由DBMS按缺省规定自动划分事务。
SQL定义事务的语句
Begintransaction(事务开始)
Commit(事务提交,正常结束,将更新结果写入磁盘)
Rollback(事务回滚,撤销事务中所有已完成的更新);BEGINTRANSACTION
读账户甲的余额balance;
balance=balance–amount;//amount为转账金额
if(balance0)then
{打印‘金额不足,不能转账’;
ROLLBACK;//撤销刚才的修改,恢复事务
}
else
{读账户乙的金额balance1;
balance1=balance1+amount;
写回balance1;
COMMIT;
};原子性(Atomicity)
事务中的操作要么都做,要么都不做(AllorNone)
一致性(Consistency)
事务执行的结果必须使数据库从一个一致性状态变到另一个一致性状态
与原子性密切相关
隔离性(Isolation)
并发执行的各事务不能相互干扰
持续性/永久性(Durability)
事务一旦提交,它对数据库的更新不再受后继操作或故障的影响
★DBMS中事务处理必须保证其ACID特性,这样才能保证数据库中数据的安全和正确;事务是恢复和并发控制的基本单位
恢复机制与并发控制机制的提出
事务在运行过程中因某种故障被强行终止,数据库一致性被破坏,需进行恢复
多个事务并行运行时,不同事务的各种操作交叉进行,为保证各事务的执行互不干扰,需进行并发控制;数据库由于某些故障发生可能会导致数据库被破坏或影响数据库中数据的一致性(或完整性、正确性)
当系统运行过程中发生故障时,数据库恢复技术将数据库从错误状态恢复到某个一致状态,它是数据库可靠性的保证。
数据库恢复机制是衡量某DBMS系统性能的指标之一,对系统可靠性起决定作用,对运行效率有很大影响;事务内部故障
事务??运行至正常终止点(commit或rollback)前被终止
包括
能由事务所在程序处理的,如条件不满足等
不能由事务所在程序处理的,如运算溢出等
系统故障(system)
系统重启、OS故障、DBMS代码错误、掉电等
介质故障(medium)
磁盘损坏等
计算机病毒(virus);数据库本身被破坏,使数据库中全部或部分数据丢失
如系统故障、介质故障、计算机病毒等
数据库没有被破坏,但因事务的运行被非正常终止而使数据库数据失去一致性(正确性)
如事务内部故障、系统故障、计算机病毒等;;数据转储:定期进行磁盘备份形成后备副本
具体方法如下示意
由DBA定义适当的转储周期;登记日志文件(Logging)
日志文件:记录事务对数据库的更新操作
以记录为单位的日志文件
事务的开始标记,事务的结束标记
各个事务的所有更新操作
事务标识TransID,操作类型UpdateType,操作对象RecordID,更新前的旧值OldValue,更新后的新值NewValue
以数据块为单位的日志文件
事务标识,被更新的数据块;登记的次序严格按并发事务执行的时间次序
必须先写日志文件,后写数据库
(WriteAfterLogging,WAL);★通常在一个数据库中综合使用数据转储和登录日志文件这两种方法,配合使用后备副本和日志文件进行数据库恢复;事务故障恢复和系统故障恢复须用日志文件
通常综合数据库后备副本和日志文件将数据库恢复至某个一致状态(视转储方法而定)
恢复时,对故障发生时已提交的事务进行重做(Redo,再执行),而对未提交的事务进行撤销(Undo,逆操作);事务故障的恢复
反向扫描日志文件,Undo事务中的更新操作
由系统自动完成
系统故障的恢复
首先正向扫描日志文件,生成Redo和Undo队列
然后对Undo队列中的各事务进行Undo
最后对Redo队列中的各事务进行Redo
由系统在重启时自动完成
介质故障的恢复
首先装入最新后备副本和有关日志文件副本,Redo已提交的事务,使数据库恢复至故障前某一时刻的一致状态
装入副本由D
文档评论(0)