免费智能真题库 > 历年试卷 > 数据库系统工程师 > 2020年下半年 数据库系统工程师 上午试卷 综合知识
  第55题      
  知识点:   数据库恢复   恢复   基本原理   数据库
  章/节:   事务管理       

 
数据库恢复操作的基本原理是( )。
 
 
  A.  存取控制
 
  B.  加密
 
  C.  完整性约束
 
  D.  冗余
 
 
 

 
  第52题    2012年上半年  
   33%
事务提交之后,其对数据库的修改还存留在缓冲区中,并未写入到硬盘,此时发生系统故障,则破坏了事务的(51);系统重启后,由DBM..
  第49题    2011年上半年  
   47%
假设日志文件的尾部如下图所示,则恢复时应执行的操作是(49)。
  第47题    2011年上半年  
   35%
若事务程序中有表达式a/b,如果b取值为0时计算该表达式,会产生的故障属于(47)。
   知识点讲解    
   · 数据库恢复    · 恢复    · 基本原理    · 数据库
 
       数据库恢复
        要使数据库在发生故障后能够恢复,必须建立冗余数据,在故障发生后利用这些冗余数据实施数据库恢复。建立冗余数据常用的技术是数据转储和建立日志文件。在一个数据库系统中,这两种方法一般是同时被采用的。
               故障恢复的两个操作
               有了数据转储和日志文件,就可以在系统发生故障时进行恢复。故障恢复有撤销事务(UNDO)和重做事务(REDO)两个操作。
                      撤销事务(UNDO)
                      所谓撤销事务是将未完成的事务撤销,使数据库恢复到事务执行前的正确状态。
                      撤销事务的过程:反向扫描未完成的事务日志(由后向前扫描),查找事务的更新操作;对该事务的更新操作执行逆操作,用日志文件记录中更新前的值写入数据库,插入的记录从数据库中删除,删除的记录重新插入数据库中;继续反向扫描日志文件,查找该事务的其他更新操作并执行逆操作直至事务开始标志。
                      重做事务(REDO)
                      所谓重做事务(REDO)是将已经提交的事务重新执行。
                      重做事务的过程:从事务的开始标识起,正向扫描日志文件,重新执行日志文件登记的该事务对数据库的所有操作,直至事务结束标识。
               故障恢复策略
               对于不同的故障,采取不同的恢复策略。
                      事务故障的恢复
                      事务故障是事务在运行至正常终止点(SUMMIT或ROLLBACK)前终止,日志文件只有该事务的开始标识而没有结束标识。对这类故障的恢复是通过撤销(UNDO)产生故障的事务,使数据库恢复到该事务执行前的正确状态来完成的。事务恢复有如下三个步骤:
                      步骤1:反向扫描日志文件(即从最后向前扫描日志文件),查找该事务的更新操作。
                      步骤2:对事务的更新操作执行逆操作。
                      步骤3:继续反向扫描日志文件,查找该事务的其他更新操作,并做同样的处理,直到事务的开始标志。
                      注意:事务故障的恢复由系统自动完成,对用户是透明的。
                      系统故障的恢复
                      系统故障会使数据库的数据不一致,原因有两个:一是未完成的事务对数据库的更新可能已写入数据库;二是已提交的事务对数据库的更新可能还在缓冲区中没来得及写入数据库。因此恢复操作就是要撤销故障发生时未完成的事务,重做(REDO)已提交的事务。
                      注意:系统故障的恢复是在系统重启之后自动执行的。
                      介质故障的恢复
                      介质故障时数据库遭到破坏,需要重装数据库,装载故障前最近一次的备份和故障前的日志文件副本,再按照系统故障的恢复过程执行撤销和重做来恢复。
                      注意:介质故障要有系统管理员(DBA)的参与,装入数据库的副本和日记文件的副本,再由系统执行撤销和重做操作。
 
       恢复
        数据恢复有3个步骤。
        (1)反向扫描文件日志,查找该事务的更新操作。
        (2)对事务的更新操作执行逆操作。
        (3)继续反向扫描日志文件,查找该事务的其他更新操作,并做同样的处理,直到事务的开始标志。
 
       基本原理
        分区存储管理的一个特点是连续性,每个程序都分得一片连续的内存区域。这种连续性将导致碎片问题,包括固定分区中的内碎片和可变分区中的外碎片。为了解决这些问题,人们又提出了页式存储管理方案。它的基本出发点是打破存储分配的连续性,使一个程序的逻辑地址空间可以分布在若干个离散的内存块上,从而达到充分利用内存,提高内存利用率的目的。
        页式存储管理的基本思路是:一方面,把物理内存划分为许多个固定大小的内存块,称为物理页面(physical page),或页框(page frame)。另一方面,把逻辑地址空间也划分为大小相同的块,称为逻辑页面(logical page),或简称为页面(page)。页面的大小要求是2n,一般在512B到8KB之间。当一个用户程序被装入内存时,不是以整个程序为单位,把它存放在一整块连续的区域,而是以页面为单位来进行分配。对于一个大小为N个页面的程序,需要有N个空闲的物理页面把它装进来,当然,这些物理页面不一定是连续的。
        下图是一个具体的例子。各个任务的逻辑地址空间和内存的物理地址空间被划分为1KB大小的页面。任务1有两个页面,任务2有三个页面,任务3有一个页面。当这三个任务被装入内存后,它们在内存空间的分布可能是:任务1的两个页面分别存放在第5和第6个物理页面中,它们碰巧被放在了一起。任务2的三个页面分别存放在第2、第4和第7个物理页面中。也就是说,虽然它们在逻辑地址空间是三个连续的页面,但在物理地址空间却被分散在内存的不同位置。最后,任务3的这个页面被存放在第8个物理页面中。
        
        页式存储管理的一个例子
        在实现页式存储管理的时候,需要解决以下的几个问题:
        .数据结构:用于存储管理的数据结构是什么?
        .内存的分配与回收:当一个任务到来时,如何给它分配内存空间?当一个任务运行结束后,如何回收它所占用的内存空间?
        .地址映射:当一个任务被加载到内存后,可能被分散地存放在若干个不连续的物理页面当中。在这种情形下,如何把程序中使用的逻辑地址转换为内存访问时的物理地址,以确保它能正确地运行。
 
       数据库
        数据库(DataBase,DB)是指长期存储在计算机内的、有组织的、可共享的数据集合。数据库中的数据按一定的数据模型组织、描述和存储,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。
        系统使用的所有数据存储在一个或几个数据库中。
   题号导航      2020年下半年 数据库系统工程师 上午试卷 综合知识   本试卷我的完整做题情况  
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 /
 
第55题    在手机中做本题