全部科目 > 信息系统管理工程师 >
2022年下半年 上午试卷 综合知识
第 23 题
知识点 数据库故障恢复措施   恢复   事务   数据库   系统故障  
关键词 DBMS   持久性   缓冲区   数据库   系统故障   硬盘   故障   数据  
章/节 系统运行管理知识  
 
 
事务提交之后,其对数据库的修改还存留在缓冲区中,并未写入硬盘,此时发生系统故障,破坏了事务的持久性。系统重启后,DBMS根据(23)对数据库进行恢复,将已提交的事务数据库的修改写入硬盘
 
  A.  数据库文件
 
  B.  数据库副本
 
  C.  日志
 
  D.  索引记录




 
 
相关试题     系统运行管理知识 

  第47题    2023年下半年  
企业IT战略规划不仅要符合企业发展的长远目标,而且战略规划的范围控制应该(36)。

  第19题    2025年下半年  
现代计算机网络维护管理系统主要由四个要素组成。下列选项中,( )不属于这四个要素。

  第56题    2021年下半年  
IT服务计费管理是负责向使用IT服务的客户收取相应费用的流程,它是IT财务管理中的重要环节。为IT服务定价是计费管理的关键问题,常见的定价方法有多种,下列选项..

 
知识点讲解
· 数据库故障恢复措施
· 恢复
· 事务
· 数据库
· 系统故障
 
        数据库故障恢复措施
        当系统运行过程中发生故障,利用数据库后备副本和日志文件就可以将数据库恢复到故障前的某个一致性状态。数据库故障主要分为事务故障、系统故障和介质故障,不同故障的恢复方法也不同。
               事务故障的恢复措施
               事务故障是指事务在运行至正常终点前被终止,此时数据库可能处于不正确的状态,恢复程序要在不影响其他事务运行的情况下强行回滚(rollback)该事务,即撤销该事务已经做出的任何对数据库的修改,使得事务好像完全没有启动一样。事务故障的恢复由系统自动完成。恢复的步骤是:
               (1)反向(从后向前)扫描日志文件,查找该事务的更新操作。
               (2)对该事务的更新操作执行逆操作,也就是将日志记录更新前的值写入数据库。如果记录中是插入操作,则相当于做删除操作,如果记录中是删除操作则做插入操作,若是修改操作则相当于用修改前的值代替修改后的值。
               (3)继续反向扫描日志文件,查找该事务的其他更新操作,并做同样处理。
               (4)如此处理下去,直到读到了此事务的开始标记,事务故障恢复就完成了。
               系统故障的恢复措施
               系统故障是指造成系统停止运转的任何事件,使得系统要重新启动。例如,特定类型的硬件错误、操作系统故障、DBMS代码错误、突然停电等。这类故障影响正在运行的所有事务,但不会破坏数据库。此时主存内容(尤其是缓冲区中的内容)都将被丢失,所有运行事务都被非正常终止,有些已完成的事务可能有部分甚至全部留在缓冲区中尚未被写入磁盘,为了保证一致性,应将这些事务已提交的结果重新写入数据库;此外,一些尚未完成的事务结果可能已经被送入物理数据库,为了保证一致性,需要清除这些事务对数据库的所有修改。系统故障的恢复是由系统在重新启动时自动完成的,此时恢复子系统撤销所有未完成的事务并重做(redo)所有已提交的事务。具体的步骤是:
               (1)正向(从头到尾)扫描日志文件,找出故障发生前已经提交的事务(这些事务既有Begin Transaction记录,也有commit记录),将其事务标识记入重做(redo)队列。同时找出故障发生时尚未完成的事务(这些事务只有Begin Transaction记录,无相应的commit记录),将其事务标识记入撤销(undo)队列。
               (2)反向扫描日志文件,对每个undo事务的更新操作执行逆操作,也就是将日志记录中更新前的值写入数据库。
               (3)正向扫描日志文件,对每个redo事务重新执行日志文件登记的操作,也就是将日志记录中更新后的值写入数据库。
               介质故障的恢复措施
               系统故障常被称为软故障,介质故障常被称为硬故障。硬故障是指外存故障,例如磁盘损坏、磁头碰撞、瞬时强磁场干扰等。这类故障将破坏数据库或部分数据库,并影响正在存取这部分数据的所有事务,日志文件也将被破坏。这类故障比前两类故障发生的可能性要小,但是破坏性最大。恢复方法是重装数据库,然后重做已完成的事务,具体的步骤是:
               (1)装入最新的数据库后备副本,使数据库恢复到最近一次转储时的一致性状态。
               (2)装入相应的日志文件副本,重做已完成的事务。
               介质故障的恢复需要DBA的介入,DBA只需重装最近转储的数据库副本和有关的各日志文件副本,然后执行系统提供的恢复命令,具体的恢复操作仍由DBMS完成。
 
        恢复
        数据恢复有3个步骤。
        (1)反向扫描文件日志,查找该事务的更新操作。
        (2)对事务的更新操作执行逆操作。
        (3)继续反向扫描日志文件,查找该事务的其他更新操作,并做同样的处理,直到事务的开始标志。
 
        事务
               概述
               事务(Transaction)是一系列的数据库操作,是数据库应用程序的基本逻辑单位,即应用程序对数据库的操作都应该以事务的方式进行。
               事务是一个操作序列,这些操作“要么都做,要么都不做”,是数据库环境中不可分割的逻辑工作单位。事务和程序是两个不同的概念,一般一个程序可包含多个事务。
               事务通常由数据库操纵语言或其他高级语言(如SQL、CoBOL、C、C++、Java等)书写的用户程序来实现。一个事务由应用程序的一组操作序列组成,它以BEGIN TRANSACTION语句开始,以END TRANSACTION结束语句。
               事务定义的语句如下:
               (1)BEGIN TRANSACTION:事务开始。
               (2)END TRANSACTION:事务结束。
               (3)COMMIT:事务提交。该操作表示事务成功地结束,它将通知事务管理器该事务的所有更新操作现在可以被提交或永久地保留。
               (4)ROLLBACK:事务回滚。该操作表示事务非成功地结束,它将通知事务管理器出故障了,数据库可能处于不一致状态,该事务的所有更新操作必须回滚或撤销。
               典型的例子是银行转账业务。对“从账户A转入账户B金额x元”业务,站在顾客角度来看,转账是一次单独操作;而站在数据库系统的角度它至少是由两个操作组成的,第一步从账户A减去x元,第二步给账户B加上x元。下面是银行转账事务的伪代码:
               
               SQL中事务的开始与结束
               SQL标准规定当一条SQL语句被执行,就隐式地开始了一个事务,SQL中的Commit work和Rollback work语句之一会结束一个事务。
               (1)Commit work:提交当前事务。这意味着将该事务所做的更新在数据库中永久保存。一旦事务被提交后,一个新的事务自动开始。
               (2)Rollback work:回滚当前事务。这意味着将撤销该事务对数据库的更新。这样,数据库恢复到该事务执行第一条语句之前的状态。
               需要注意的是,若事务已执行了Commit work,就不能用Rollback work来撤销。数据库系统能保证在发生诸如某条SQL语句错误、断电、系统崩溃的情况下,若事务还没有执行Commit work,则所造成的影响将被回滚。对断电、系统崩溃的情况,回滚是在系统重新启动时进行。
 
        数据库
        数据库(DataBase,DB)是指长期存储在计算机内的、有组织的、可共享的数据集合。数据库中的数据按一定的数据模型组织、描述和存储,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。
        系统使用的所有数据存储在一个或几个数据库中。
 
        系统故障
        系统故障是指硬件故障、软件(如DBMS、OS或应用程序)漏洞的影响,导致丢失了内存中的信息,影响正在执行的事务,但未破坏存储在外存上的信息。这种情况称为故障-停止假设(fail-stop assumption)。
        系统故障中止了事务的执行过程,破坏了事务的原子性,由于缓冲区中的内容可能部分已写入数据库,系统重启后数据库可能处于不一致状态。



更多复习资料
请登录电脑版软考在线 www.rkpass.cn

京B2-20210865 | 京ICP备2020040059号-5
京公网安备 11010502032051号 | 营业执照
 Copyright ©2000-2026 All Rights Reserved
软考在线版权所有