数据库系统概论第七章.ppt_第1页
数据库系统概论第七章.ppt_第2页
数据库系统概论第七章.ppt_第3页
数据库系统概论第七章.ppt_第4页
数据库系统概论第七章.ppt_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第7章数据库恢复技术,事务,事务定义事务是用户定义的数据库操作序列。这些操作要么完成,要么根本不完成,这是一个不可分割的工作单元。事务和应用是两个概念。一般来说,一个应用程序可以包含多个事务。交易的开始和结束可以由用户明确控制。如果用户没有明确定义事务,默认情况下,数据库管理系统会自动划分事务。SQL中事务的定义,从开始事务开始,以提交工作或回滚工作结束。提交工作意味着提交,事务正常结束。回滚工作意味着事务异常结束,因此事务完成的操作被撤消并回滚到事务开始时的状态。原子性事务是数据库的逻辑工作单元,事务中包含的所有操作要么完成,要么根本不完成。一致性事务执行的结果应该会使数据库从一种一致性状态

2、变为另一种一致性状态。一个事务的执行不能被其他事务干扰。也就是说,事务中使用的操作和数据与其他并发事务是隔离的,并发事务不能相互干扰。一旦事务被提交,它对数据库的影响必须是永久性的。事务提交后,系统故障不能改变事务的持久性。数据库恢复概述虽然在数据库系统中已经采取了各种措施来保证系统的安全性和完整性,但是计算机系统故障是不可避免的。这些故障会导致正在运行的事务异常中断,影响数据库中数据的正确性,甚至破坏数据库,导致数据库中的全部或部分数据丢失。因此,数据库管理系统必须具有将数据库从错误状态恢复到已知正确状态的功能,这就是数据库的恢复。数据库恢复是通过数据库管理系统的恢复子系统完成的。数据库恢复

3、概述,数据库恢复子系统的目的包括:确保事务的原子性,即确保事务交付运行后,事务中的所有数据库操作都成功完成,并且这些操作的结果永久存储在数据库中,或者事务对数据库没有影响。当系统出现故障时,数据库可以恢复到正确的状态。故障类型、事务中的故障、事务中的故障包括可预测和不可预测。可预测指的是事务程序本身可以发现和处理的错误。不可预测的错误是指应用程序无法处理的事务失败,如死锁、操作溢出、违反完整性规则等。系统故障系统故障是指导致系统停止运行,从而导致系统重新启动的任何情况。如硬件错误、操作系统故障、电源故障等。这种故障会影响所有正在运行的事务,所有事务都会异常终止,但数据库不会被破坏。恢复子系统必

4、须清除所有未完成的事务对数据库所做的修改,并重做所有已完成的事务以确保数据库的一致性。故障类型为中等故障,中等故障是指外部记忆故障,如磁盘损坏、瞬时强磁场干扰等。此类故障将会破坏全部或部分数据库,并影响访问这部分数据的所有事务。计算机病毒计算机病毒是一种人为的破坏或失败,已经成为数据库系统的主要威胁之一。数据库恢复的原则数据库恢复的基本原则是冗余。如果数据库中的任何部分数据被损坏或处于不正确的状态,可以通过存储在系统其他地方的冗余数据来重建。数据库恢复的关键问题是如何建立冗余,如何利用冗余实现数据库恢复,恢复的实现技术,建立冗余数据转储的常用方法数据转储是数据库恢复的基本技术。转储是数据库管理

5、员定期将整个数据库复制到磁带或其他存储设备并保存的过程。这些备用数据文本称为备份副本或备份拷贝。当数据库失败时,可以重新加载备份副本,并且可以重新运行循环后的所有更新事务。,T0,T0,T1,T1,T3,T3,正常操作,恢复,重装备份副本,重新运行事务,恢复实现技术,转储可分为:静态转储静态转储是系统中没有事务运行时的转储操作。也就是说,数据库在转储开始时处于一致状态,并且在转储期间不允许对数据库进行任何访问或更新活动。由于转储必须等待正在运行的事务的结束才能开始,而新事务必须等待转储的结束才能执行,因此数据库的可用性会降低。动态转储动态转储意味着在转储期间可以访问或修改数据库,也就是说,转储

6、和用户事务可以同时执行。动态转储克服了静态转储的缺点,但除了转储数据库的数据外,还需要记录转储过程中每个事务所做的修改,以确保数据库在某个时刻能够恢复到一致的状态。恢复的实现技术,倾销的方式大规模倾销指的是一次倾销所有数据库。增量转储增量转储是指一次仅转储上次转储后更新的数据。日志文件日志文件是用于记录事务对数据库的更新操作的文件。日志文件有两种主要格式:记录中的日志文件和数据块中的日志文件。以记录为单位记录在日志文件中的内容包括:每个事务的开始标记、每个事务的结束标记、每个事务的所有更新操作以及恢复的实现技术,所有这些都用作日志文件中的日志记录。每个日志记录的内容包括:事务标识(表示是哪个事

7、务)、操作类型(插入、删除或修改)、操作对象(记录的内部标识)、更新前数据的旧值(对于插入操作,此项为空)、更新后数据的新值(对于删除操作,此项为空)。对于以数据块为单位的日志文件,日志记录的内容包括更新前后的事务标识和数据块。恢复的实现技术以及日志文件的作用。日志文件可用于恢复事务故障和系统故障,并在介质恢复中帮助备份副本。它的具体功能是日志文件必须用于事务故障和系统故障恢复。在动态转储模式下,必须建立日志文件,并集成备份副本和日志文件,以确保备份的一致性,有效地恢复数据库。在静态转储模式下,也可以创建日志文件。当数据库出现故障时,备份副本用于将数据库恢复到转储结束时的正确状态,然后日志文件

8、用于重做已完成的事务,以将数据库恢复到故障前的正确状态。日志文件的注册为了确保数据库是可恢复的,在注册日志文件时必须遵循两个原则:注册的顺序严格遵循并发事务的时间顺序。日志文件必须在数据库之前写入。恢复策略,事务失败的恢复事务失败意味着事务在运行到正常终止点之前被终止。事务故障的恢复由系统自动完成,其步骤为:反向扫描文件日志(即从最后一次正向扫描日志文件),查找事务的更新操作。反转事务的更新操作,即将日志记录中的“更新前的值”写入数据库。此时,如果记录是插入操作,则相当于删除操作;如果记录被删除,就相当于插入;如果记录被修改,用修改前的值替换修改后的值。继续反向扫描日志文件,找到事务的更新操作

9、,并执行相同的处理,直到读取事务的开始符号。恢复策略,系统故障的恢复系统故障导致数据库状态不一致有两个原因。首先,未完成的事务对数据库的更新可能已经写入数据库;第二,由提交的事务进行的数据库更新在被写入数据库之前可能仍然保留在缓冲区中。因此,恢复操作是在失败时撤消未完成的事务,并重做已完成的事务。恢复策略,其步骤是:向前扫描日志文件,找出失败前已提交的事务,并在REDO队列中记录事务id。同时,找出失败时未完成的事务,并将事务标识记录在撤销队列中。撤消撤销队列中的每个事务。也就是说,日志文件被反向扫描,并且每个UNDO事务的更新操作被反向,也就是说,日志文件中的“更新前的值”被写入数据库。重做

10、重做队列中的事务。也就是说,向前扫描日志文件,并为每个REDO事务重新执行日志文件注册操作,也就是说,将日志文件中的“更新值”写入数据库。介质故障的恢复介质故障会完全或部分破坏数据库甚至日志文件。恢复方法是加载数据库的最新备份副本(最接近故障时间的转储副本),以将数据库恢复到上次转储时的一致状态。对于动态转储的副本,还需要在转储开始时加载日志文件副本,以将数据库恢复到一致状态。加载转储的日志文件副本并重做已完成的事务。延迟更新技术,它在日志中记录对事务t的所有更新操作,并延迟对数据库的所有更新操作,直到事务被提交。它遵循以下延迟更新协议:在到达提交点之前,每个事务都不能更新数据库。直到对应于事

11、务的所有更新操作的日志记录被写入永久存储器,事务才能到达提交点。当事务到达提交点时,我们称之为部分提交状态。延迟更新协议确保当事务被部分提交时,事务的所有更新操作的信息都已记录在日志中。延迟更新技术,当t开始执行时,延迟更新技术写入日志。如果t执行写(X)操作,延迟更新技术会写入日志,其中V1是X的原始值,V2是写(X)要写入的X值。当t进入部分提交状态时,更新技术被推迟写入日志。然后,所有日志记录都被写入永久内存。然后,对于日志中的每个记录,将数据库中x数据项的值更新为V2。推迟更新技术,尝试考虑以下数据库事务T0和T1,其中a、b和c的初始值分别为1000、2000和700,T0和T1根据

12、串行调度执行:t03360 read(a)a=a-50 write(a)read(b)b=b50 write(b),t133366由数据库中的活动事务直接实现的更新称为未提交更新。任何即时更新技术都必须遵循以下即时更新协议:在所有类型的日志记录都安全地存储在永久内存中之前,不允许事务更新数据库。直到所有日志记录都安全地存储在永久内存中,才允许提交事务t。即时更新协议确保在发生系统故障时,每个正在运行的事务的更新操作都安全地记录在日志中。即时更新技术,当t开始执行时,它被写入日志。在运行期间,当发出写操作时,记录首先被写入日志,然后直接在数据库上执行写操作。当提交部分t时,它被写入日志。为了满足

13、即时更新协议的要求,在将写操作(X)直接应用于数据库之前,必须将该操作的日志记录安全地写入永久存储器。即时更新技术、即时更新技术、带检查点的恢复技术。当使用日志技术进行恢复时,恢复子系统通常需要检查所有日志记录,这将花费大量时间。同时,还可以重做一些已经写入数据库的更新操作结果,从而浪费时间。因此,提出了检查点技术。该技术在日志文件中增加了一种新的检查点记录,增加了一个重启文件,并使恢复子系统在登录到日志文件的过程中动态维护日志。检查点恢复技术,检查点记录的内容包括:建立检查点时所有正在执行的事务的列表。这些事务的最后一个日志记录的地址。重启文件用于记录日志文件中记录的每个检查点的地址。使用检

14、查点恢复技术,动态维护日志文件的方法是定期执行以下操作:将当前日志缓存中的所有日志记录写入磁盘上的日志文件。在日志文件中写入检查点记录,将当前数据缓存中的所有数据记录写入磁盘的数据库,并将日志文件中的检查点记录写入重启文件。利用检查点恢复技术,可以通过使用检查点来提高效率。当事务在检查点之前提交时,事务对数据库所做的修改必须已经写入数据库,并且写入时间是在检查点建立之前或之时。这样,在恢复过程中就没有必要重做事务测试。带有检查点的恢复技术、时间、Tc检查点、Tf系统故障、不重做、重做、撤消、带有检查点的恢复技术、带有检查点的系统恢复方法的步骤是:在重启文件中查找日志文件中记录的最后一个检查点的地址,并从该地址在日志文件中查找最后一个检查点记录。检查点建立时所有正在运行的事务的活动列表是从检查点记录中获得的。从检查点向前扫描日志文件。如果有一个新的事务层,暂时将事务层放入UNDO-LIST;如果有一个提交的事务Tj,将Tj从撤销列表队列移动到重

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论