- 1、本文档共43页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据库原理与技术-向北航行
第七章数据库恢复技术 事务 事务定义 事务是用户定义的一个数据库操作序列构成,这些操作要么全做,要么全不做,是一个不可分割的工作单位。 事务与应用程序是两个概念,一般来说,一个应用程序可以包含多个事务。 事务的开始与结束可以由用户显式控制。如果用户没有显式定义事务,则由DBMS按缺省规定自动划分事务。 SQL中事务的定义 事务以Begin transaction开始,以Commit work或 Rollback work结束。 Commit work表示提交,事务正常结束。 Rollback work表示事务非正常结束,撤消事务已做的操作,回滚到事务开始时状态。 事务的特性(ACID) 原子性(Atomicity) 事务是数据库的逻辑工作单位,事务中包括的诸操作要么全做,要么全不做。 一致性(Consistency) 事务执行的结果应当使数据库从一个一致性状态转变为另一个一致性状态。 事务的特性(ACID) 隔离性(Isolation) 一个事务的执行不能被其它事务干扰。即一个事务内部的操作及使用的数据对其它并发事务是隔离的,并发执行的各个事务之间不能相互干扰。 事务的特性(ACID) 持久性(Durability) 一个事务一旦提交之后,它对数据库的影响必须是永久的。事务提交后,系统发生故障不能改变事务的持久性。 数据库恢复概述 虽然数据库系统中采用了各种措施来保证系统安全性和完整性,但计算机系统的故障是不可避免的,这些故障轻则造成运行事务的非正常中断,影响数据库中数据的正确性,重则破坏数据库,使数据库中的全部或部分数据丢失,因此数据库管理系统必须具有把数据库从错误状态恢复到某一已知正确状态的功能,这就是数据库的恢复。数据库恢复是通过数据库管理系统的恢复子系统完成的。 数据库恢复概述 数据库恢复子系统的目的包括: 保证事务的原子性,即确保一个事务被交付运行后,要么该事务中的所有数据库操作都被成功地完成,而且这些操作的结果被永久地存储到数据库中,要么这个事务对数据库没有任何影响。 当系统发生故障以后,数据库能够恢复到正确状态。 故障的种类 事务内部的故障 事务内部的故障包括可预期的和不可预期的。可预期的是指可以通过事务程序本身发现和处理的故障。而不可预期的错误是指那些不能由应用程序处理的事务故障,如死锁,运算溢出,违反完整性规则等。 故障的种类 系统故障 系统故障是指造成系统停止运行的任何事情,使得系统要重新启动。如硬件错误,操作系统故障,停电等。这类故障影响正在运行的所有事务,所有事务都非正常终止,但不会破坏数据库。恢复子系统必须清除所有未完成的事务对数据库的修改,同时重做所有已完成的事务,保证数据库的一致性。 故障的种类 介质故障 介质故障指外存故障,如磁盘损坏,瞬时强磁场干扰等。这类故障将破坏全部或部分数据库,并影响正在存取这部分数据的所有事务。 计算机病毒 计算机病毒是一种人为的破坏或故障,已成为数据库系统的主要威胁之一。 恢复的实现技术 数据库恢复的原理 数据库恢复的基本原理为冗余。如果数据库中任何一部分数据被破坏或处于不正确的状态,则可以通过存储在系统别处的冗余数据来重建。 数据库恢复的关键问题 如何建立冗余 如何利用冗余实施数据库恢复 恢复的实现技术 建立冗余的常用方法 数据转储 数据转储是数据库恢复中采用的基本技术。所谓转储即DBA定期地将整个数据库复制到磁带或其它存储设备上保存起来的过程。这些备用的数据文本称为后备副本或后援副本。 当数据库发生故障时,可以将后备副本重新装入,并重新运行自转储以后的所有更新事务。 恢复的实现技术 恢复的实现技术 转储可以分为: 静态转储 静态转储是在系统中无事务运行时进行的转储操作。即转储开始时数据库处于一致状态,转储过程中,不允许对数据库的任何存取、更新活动。由于转储必须等待正在运行的事务结束才能开始,而新的事务必须等待转储结束才能执行,降低了数据库的可用性。 恢复的实现技术 动态转储 动态转储是指转储期间允许对数据库进行存取或修改,即转储和用户事务可以并发执行。动态转储克服了静态转储的缺点,但除了转储数据库的数据以外,还必须把转储期间各事务对数据库的修改记录下来,这样才能保证把数据库恢复到某一时刻的一致状态。 恢复的实现技术 转储的方式 海量转储 海量转储指每次转储全部数据库。 增量转储 增量转储指每次只转储上一次转储后更新过的数据。 恢复的实现技术 恢复的实现技术 登录日志文件 日志文件是用来记录事务对数据库的更新操作的文件。日志文件主要有两种格式:以记录为单位的日志文件和以数据块为单位的日志文件。 以记录为单位的日志文件记录的内容包括: 各个事务的开始标记 各个事务的结束标记 各个事务的所有更新操作 恢复的实现技术 上述内容均作为日志文件中的一个日志记
文档评论(0)