- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
(2)死锁的解除 等待图法:事务等待图是一种特殊的有向图G,其中G的顶点表示正在运行的事务,G的边表示事务等待的情形。事务等待图实例如图7-25所示。其中,如果事务T2等待事务T1就画出由T2到T1的有向边等。建立事务等待图后,检测死锁就转化为判断G中是存在回路问题。 7.2.6 死锁与活锁 并发控制子系统周期性检测事务等待图,检验方法可以基于“数据结构与算法”中的拓扑排序原理,即如果G中顶点能够实现拓扑排序,则其中没有回路,即无死锁存在,否则事务等待图中就存在死锁。 7.2.6 死锁与活锁 7.2.6 死锁与活锁 发现死锁后,通常选择一个处理死锁代价最小的事务即“年轻”(完成事务工作量少)事务予以撤销,释放该事务持有的所有锁,使“年老”(完成事务工作量大)的事务先行执行,待这些事务执行完成并释放封锁后,撤销的“年轻”事务再继续执行。在图7-25中,可根据情况先行撤销T1、T2或T3中一个可使得其余事务继续执行。 7.2.6 死锁与活锁 在DBMS运行时,死锁本身相当棘手,人们自然不希望死锁发生。但如果采取严格措施,杜绝死锁发生,让事务任意并发,就有可能破坏数据库中数据,或者使得用户读取错误数据。从这个意义上讲,死锁的发生也有防止错误发生的作用。 7.2.6 死锁与活锁 1.事务级故障 事务级故障也称为小型故障,其基本特征是故障产生的影响范围在一个事务之内。 7.3 数据库故障恢复 7.3.1 数据库故障分类 2.系统级故障 (1)系统故障 (2)外部故障 7.3.1 数据库故障分类 3.介质级故障 (1)磁盘故障 (2)计算机病毒 (3)黑客入侵 7.3.1 数据库故障分类 1.基本原理 确定数据库是否可以恢复的依据就是其包含的每一条信息是否都可以利用冗余的、存储在其它地方的信息进行重构。基本方法是:数据转储和登记日志文件。 ●实行数据转储:定时对数据库进行备份,其作用是为恢复提供数据基础。 ●建立日志文件:记录事务对数据库的更新操作,其作用是将数据库尽量恢复到最近状态。 7.3.2 数据库故障恢复技术 2.数据转储 数据转储是定期将数据库中的内容复制到另一个存储设备中去,这些存储的拷贝称为后援副本或者后备副本。一旦系统发生介质故障,数据库遭到破坏,就通过后备文件的装入,将数据库恢复起来。 7.3.2 数据库故障恢复技术 (1)从转储运行状态看,可分为静态和动态转储。 ●静态转储:指的是转储过程中无事务运行,此时不允许对数据执行任何操作(包括存取与修改操作),转储事务与应用事务不可并发执行。静态转储得到的必然是具有数据一致性的副本。 ●动态转储:即转储过程中可以有事务并发运行,允许对数据库进行操作,转储事务与应用程序可以并发执行。 7.3.2 数据库故障恢复技术 (2)从转储进行方式来看,可以分为海量与增量转储。 ●海量转储:每次转储数据库全部数据, ●增量转储:每次转储数据库中自上次转储以来产生变化的那些数据。 7.3.2 数据库故障恢复技术 3.日志文件 (1)日志文件 日志(Logging)是系统为数据恢复采取的另一种数据冗余措施。日志作为一个文件,用以记录事务对数据库的每一次插入、删除和修改等更新操作,同时记录更新前后的值,使得以后在恢复时“有案可查”、“有据可依”。 7.3.2 数据库故障恢复技术 (2)日志文件类型 ① 以记录为单位的日志格式称为日志记录(Log Record)。日志记录中的基本内容有: ●每个事务的开始标志(BEGIN TRANSACTION) ●每个事务的结束标志(COMMIT 或 ROLLBACK) ●每个事务的所有更新操作(插入、删除和修改) 7.3.2 数据库故障恢复技术 ②以数据块为单位的日志文件,只要某个数据块中存在数据更新,就需要将整个数据块更新前和更新后的内容放入到日志文件中。 7.3.2 数据库故障恢复技术 (3)运行记录优先原则 日志以事务为单位,按执行的时间次序进行记录,同时遵循“运行记录优先”原则。在恢复处理过程中,将对数据进行的修改写到数据库中和将表示该修改的运行记录写到日志当中是两个不同的操作,这样就有一个“先记录后执行修改”还是“先执行修改再记录”的次序问题。如果在这两个操作之间出现故障,先写入的一个可能保留下来,另一个就可能丢失日志。如果保留下来的是数据库的修改,而在运行记录中没有记录下这个修改,以后就无法撤销这个修改。由此看来,为了安全,运行记录应该先记录下来,这就是“运行记录优先”原则。 7.3.2 数据库故障恢复技术 (4)日志文件在恢复中作用 日志文件在数据库恢复中有着非常重要的作用,其表现为: ●事务级故障和系统级故障的恢复必需使用日志文件。 ●在动态转储方式中必须建立日志文件,后备副本和日志文件结合起来才能有效恢复数据库。 7.3.2 数据库故障
文档评论(0)