全部科目 > 数据库系统工程师 >
2018年上半年 上午试卷 综合知识
第 59 题
知识点 数据库恢复   日志文件  
章/节 事务管理  
 
 
设置日志文件的目的不包括()
 
  A.  事务故障恢复
 
  B.  系统故障恢复
 
  C.  介质故障恢复
 
  D.  删除计算机病毒




 
 
相关试题     事务管理 

  第57题    2019年上半年  
数据库系统应该定期备份,如果备份过程中仍有更新事务在运行,则备份结果是不一致的,这种备份称为( )。

  第30题    2025年上半年  
假设系统中只有事务T1和T2,两个事务都要对数据D1和D2进行操作。若T1对D1已加排它锁,T

  第37题    2017年上半年  
并发执行的三个事务T1、T2 和T3,事务T1对数据D1加了共享锁,事务T2、T3分别对数据D2 、D3加了排它锁,之后事务T1对数据(36);事务T2对数据(37) 。

 
知识点讲解
· 数据库恢复
· 日志文件
 
        数据库恢复
        要使数据库在发生故障后能够恢复,必须建立冗余数据,在故障发生后利用这些冗余数据实施数据库恢复。建立冗余数据常用的技术是数据转储和建立日志文件。在一个数据库系统中,这两种方法一般是同时被采用的。
               故障恢复的两个操作
               有了数据转储和日志文件,就可以在系统发生故障时进行恢复。故障恢复有撤销事务(UNDO)和重做事务(REDO)两个操作。
                      撤销事务(UNDO)
                      所谓撤销事务是将未完成的事务撤销,使数据库恢复到事务执行前的正确状态。
                      撤销事务的过程:反向扫描未完成的事务日志(由后向前扫描),查找事务的更新操作;对该事务的更新操作执行逆操作,用日志文件记录中更新前的值写入数据库,插入的记录从数据库中删除,删除的记录重新插入数据库中;继续反向扫描日志文件,查找该事务的其他更新操作并执行逆操作直至事务开始标志。
                      重做事务(REDO)
                      所谓重做事务(REDO)是将已经提交的事务重新执行。
                      重做事务的过程:从事务的开始标识起,正向扫描日志文件,重新执行日志文件登记的该事务对数据库的所有操作,直至事务结束标识。
               故障恢复策略
               对于不同的故障,采取不同的恢复策略。
                      事务故障的恢复
                      事务故障是事务在运行至正常终止点(SUMMIT或ROLLBACK)前终止,日志文件只有该事务的开始标识而没有结束标识。对这类故障的恢复是通过撤销(UNDO)产生故障的事务,使数据库恢复到该事务执行前的正确状态来完成的。事务恢复有如下三个步骤:
                      步骤1:反向扫描日志文件(即从最后向前扫描日志文件),查找该事务的更新操作。
                      步骤2:对事务的更新操作执行逆操作。
                      步骤3:继续反向扫描日志文件,查找该事务的其他更新操作,并做同样的处理,直到事务的开始标志。
                      注意:事务故障的恢复由系统自动完成,对用户是透明的。
                      系统故障的恢复
                      系统故障会使数据库的数据不一致,原因有两个:一是未完成的事务对数据库的更新可能已写入数据库;二是已提交的事务对数据库的更新可能还在缓冲区中没来得及写入数据库。因此恢复操作就是要撤销故障发生时未完成的事务,重做(REDO)已提交的事务。
                      注意:系统故障的恢复是在系统重启之后自动执行的。
                      介质故障的恢复
                      介质故障时数据库遭到破坏,需要重装数据库,装载故障前最近一次的备份和故障前的日志文件副本,再按照系统故障的恢复过程执行撤销和重做来恢复。
                      注意:介质故障要有系统管理员(DBA)的参与,装入数据库的副本和日记文件的副本,再由系统执行撤销和重做操作。
 
        日志文件
        事务日志是针对数据库改变所做的记录,它可以记录针对数据库的任何操作,并将记录结果保存在独立的文件中,这种文件就称为日志文件。对于任何一个事务,事务日志都有非常全面的记录,根据这些记录可以将数据文件恢复成事务前的状态。从事务动作开始,事务日志就处于记录状态,事务执行过程中对数据库的任何操作都记录在内,直到用户提交或回滚后才结束记录。
        日志文件是用来记录对数据库每一次更新活动的文件,在动态备份方式中,必须建立日志文件,后援副本和日志文件综合起来才能有效地恢复数据库;在静态备份方式中,也可以建立日志文件,当数据库毁坏后可重新装入后援副本把数据库恢复到备份结束时刻的正确状态,然后利用日志文件,把已完成的事务进行重做处理,对故障发生时尚未完成的事务进行撤销处理。这样不必重新运行那些已完成的事务程序就可把数据库恢复到故障前某一时刻的正确状态。
        例如,在热备份期间的某时刻t1,系统把数据A=100备份到了磁带上,而在时刻t2,某一事务对A进行了修改使A=200。备份结束,后备副本上的A已是过时的数据了。为此,必须把备份期间各事务对数据库的修改活动登记下来,建立日志文件。这样,后备副本加上日志文件就能把数据库恢复到某一时刻的正确状态。
        事务在运行过程中,系统把事务开始、事务结束(包括COMMIT和ROLLBACK),以及对数据库的插入、删除、修改等每一个操作作为一个登记记录存放到日志文件中。每个记录包括的主要内容有:执行操作的事务标识、操作类型、更新前数据的旧值(对插入操作而言此项为空值)、更新后的新值(对删除操作而言此项为空值)。登记的次序严格按并行事务操作执行的时间次序,同时遵循“先写日志文件”的规则。写一个修改到数据库中和写一个表示这个修改的日志记录到日志文件中是两个不同的操作,有可能在这两个操作之间发生故障,即这两个写操作只完成了一个,如果先写了数据库修改,而在日志记录中没有登记这个修改,则以后就无法恢复这个修改了。因此,为了安全,应该先写日志文件,即首先把修改记录写到日志文件上,然后再写数据库的修改。这就是“先写日志文件”的原则。



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

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