免费智能真题库 > 历年试卷 > 数据库系统工程师 > 2021年上半年 数据库系统工程师 上午试卷 综合知识
  第58题      
  知识点:   故障恢复的两个操作   恢复   日志文件   数据库
  关键词:   故障恢复   数据库   故障   数据        章/节:   事务管理       

 
数据库故障恢复中,根据日志文件进行的撤销操作是( )。
 
 
  A.  REDO
 
  B.  ROLLBACK
 
  C.  UNDO
 
  D.  COMMIT
 
 
 

 
  第52题    2012年上半年  
   32%
事务提交之后,其对数据库的修改还存留在缓冲区中,并未写入到硬盘,此时发生系统故障,则破坏了事务的(51);系统重启后,由DBM..
  第58题    2019年上半年  
   50%
关于日志文件,下列说法错误的是( )。
  第48题    2011年上半年  
   61%
系统故障的恢复(48)。
   知识点讲解    
   · 故障恢复的两个操作    · 恢复    · 日志文件    · 数据库
 
       故障恢复的两个操作
        有了数据转储和日志文件,就可以在系统发生故障时进行恢复。故障恢复有撤销事务(UNDO)和重做事务(REDO)两个操作。
               撤销事务(UNDO)
               所谓撤销事务是将未完成的事务撤销,使数据库恢复到事务执行前的正确状态。
               撤销事务的过程:反向扫描未完成的事务日志(由后向前扫描),查找事务的更新操作;对该事务的更新操作执行逆操作,用日志文件记录中更新前的值写入数据库,插入的记录从数据库中删除,删除的记录重新插入数据库中;继续反向扫描日志文件,查找该事务的其他更新操作并执行逆操作直至事务开始标志。
               重做事务(REDO)
               所谓重做事务(REDO)是将已经提交的事务重新执行。
               重做事务的过程:从事务的开始标识起,正向扫描日志文件,重新执行日志文件登记的该事务对数据库的所有操作,直至事务结束标识。
 
       恢复
        数据恢复有3个步骤。
        (1)反向扫描文件日志,查找该事务的更新操作。
        (2)对事务的更新操作执行逆操作。
        (3)继续反向扫描日志文件,查找该事务的其他更新操作,并做同样的处理,直到事务的开始标志。
 
       日志文件
        事务日志是针对数据库改变所做的记录,它可以记录针对数据库的任何操作,并将记录结果保存在独立的文件中,这种文件就称为日志文件。对于任何一个事务,事务日志都有非常全面的记录,根据这些记录可以将数据文件恢复成事务前的状态。从事务动作开始,事务日志就处于记录状态,事务执行过程中对数据库的任何操作都记录在内,直到用户提交或回滚后才结束记录。
        日志文件是用来记录对数据库每一次更新活动的文件,在动态备份方式中,必须建立日志文件,后援副本和日志文件综合起来才能有效地恢复数据库;在静态备份方式中,也可以建立日志文件,当数据库毁坏后可重新装入后援副本把数据库恢复到备份结束时刻的正确状态,然后利用日志文件,把已完成的事务进行重做处理,对故障发生时尚未完成的事务进行撤销处理。这样不必重新运行那些已完成的事务程序就可把数据库恢复到故障前某一时刻的正确状态。
        例如,在热备份期间的某时刻t1,系统把数据A=100备份到了磁带上,而在时刻t2,某一事务对A进行了修改使A=200。备份结束,后备副本上的A已是过时的数据了。为此,必须把备份期间各事务对数据库的修改活动登记下来,建立日志文件。这样,后备副本加上日志文件就能把数据库恢复到某一时刻的正确状态。
        事务在运行过程中,系统把事务开始、事务结束(包括COMMIT和ROLLBACK),以及对数据库的插入、删除、修改等每一个操作作为一个登记记录存放到日志文件中。每个记录包括的主要内容有:执行操作的事务标识、操作类型、更新前数据的旧值(对插入操作而言此项为空值)、更新后的新值(对删除操作而言此项为空值)。登记的次序严格按并行事务操作执行的时间次序,同时遵循“先写日志文件”的规则。写一个修改到数据库中和写一个表示这个修改的日志记录到日志文件中是两个不同的操作,有可能在这两个操作之间发生故障,即这两个写操作只完成了一个,如果先写了数据库修改,而在日志记录中没有登记这个修改,则以后就无法恢复这个修改了。因此,为了安全,应该先写日志文件,即首先把修改记录写到日志文件上,然后再写数据库的修改。这就是“先写日志文件”的原则。
 
       数据库
        数据库(DataBase,DB)是指长期存储在计算机内的、有组织的、可共享的数据集合。数据库中的数据按一定的数据模型组织、描述和存储,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。
        系统使用的所有数据存储在一个或几个数据库中。
   题号导航      2021年上半年 数据库系统工程师 上午试卷 综合知识   本试卷我的完整做题情况  
1 /
2 /
3 /
4 /
5 /
6 /
7 /
8 /
9 /
10 /
11 /
12 /
13 /
14 /
15 /
 
16 /
17 /
18 /
19 /
20 /
21 /
22 /
23 /
24 /
25 /
26 /
27 /
28 /
29 /
30 /
 
31 /
32 /
33 /
34 /
35 /
36 /
37 /
38 /
39 /
40 /
41 /
42 /
43 /
44 /
45 /
 
46 /
47 /
48 /
49 /
50 /
51 /
52 /
53 /
54 /
55 /
56 /
57 /
58 /
59 /
60 /
 
61 /
62 /
63 /
64 /
65 /
66 /
67 /
68 /
69 /
70 /
71 /
72 /
73 /
74 /
75 /
 
第58题    在手机中做本题