免费智能真题库 > 历年试卷 > 嵌入式系统设计师 > 2021年上半年 嵌入式系统设计师 上午试卷 综合知识
  第44题      
  知识点:   嵌入式数据库   恢复   数据库   数据库恢复
  关键词:   数据库   数据        章/节:   嵌入式软件基础知识       

 
用于数据库恢复的重要文件是()。
 
 
  A.  日志文件
 
  B.  备份文件
 
  C.  恢复文件
 
  D.  备注文件
 
 
 

  相关试题:嵌入式软件基础知识          更多>  
 
  第45题    2010年下半年  
   35%
以下关于中间件的叙述中,错误的是(45)
  第33题    2018年下半年  
   39%
以下不属于嵌入式系统硬件PCB阁设计原则的是(33)。
  第34题    2017年下半年  
   55%
嵌入式系统中常用BIT(内置自检测)来检测硬件的状态。BIT通常可分为上电BIT、周期BIT、启动BIT、维护BIT等,其中不能影响应用软件..
   知识点讲解    
   · 嵌入式数据库    · 恢复    · 数据库    · 数据库恢复
 
       嵌入式数据库
        在很多嵌入式系统运行过程中时刻都在产生大量的数据,例如机载系统的战术信息、导航信息、系统状态信息等,这些数据需要设备进行存储、处理和展示,并与其他设备或与地面进行数据共享。这些任务均需要有效的数据管理技术进行支撑。由于很多嵌入式软件在实时性、安全性和可靠性等方面的严苛要求,早期基本使用自己开发和维护的专用数据管理软件。然而随着数据量和类型的增多、管理要求变得复杂,与此同时商用嵌入式数据库在性能方面和安全性方面有显著提升,出于成本和进度上的考虑,一些嵌入式系统开始选用商用数据库产品来管理数据。
                      嵌入式系统对数据库的特殊要求
                             采用纯内存工作方式
                             某些嵌入式设备的工作环境恶劣,对性能和实时性也有极高的要求,数据库完全在内存中进行数据处理,这样可以大大提高性能,更重要的是消除了I/O操作、缓存与磁盘间数据拷贝、客户-服务器之间消息传递等执行时间不确定的操作,使其能更好地满足实时性的要求。因此,嵌入式数据库的整个架构设计应当以内存为出发点,在索引、存储管理、数据结构等方面针对内存环境进行设计,不应将现有的磁盘数据库技术简单地迁移到内存盘上,或者仅仅将磁盘数据库的“内存缓存-磁盘”结构中的内存缓存扩大。这是因为磁盘数据库是基于磁盘的特性进行设计的,许多在磁盘上有效的优化策略实际上并不适应内存工作方式。
                             为特殊数据类型提供高效索引
                             嵌入式数据库通常管理一些较为特殊的数据类型,如坐标、地图数据等,对于该类数据类型的嵌入式数据库应提供相应的索引技术,以保证查询性能。
                             例如数据库索引一般都是B树结构,B树适合于精确查找、范围查找以及前缀查找,但仅限于1维数据,对于特殊领域常用的2维以上数据(如GPS坐标)则力不从心。因此机载数据库应支持处理2维数据常用的R树索引,处理多维数据常用的KD树,以及一些其他类型的索引,如T树、Patricia trie树、哈希等。
                             支持基于优先级的多任务访问
                             嵌入式数据库的多任务访问应当基于任务优先级进行管理。因为在一些嵌入式系统中,某些活动应当具有更高优先级,例如导航任务应当比后台任务的优先级高,因此嵌入式数据库应当优先响应导航任务的数据处理请求。嵌入式数据库不应采用先进先出(FIFO)等简单的调度策略,而是需要配合操作系统任务优先级,否则数据库的多任务控制会抵消操作系统对访问数据库任务的优先级设置,影响系统的性能和稳定性。
                             可靠性、持久性和高可用性方面
                             (1)可靠性方面:嵌入式数据库的外部接口应当是类型安全的,不应使用void指针;消除数据库内部的动态内存分配,如malloc和free操作,从而避免潜在的内存泄露风险;提供错误处理机制,使得应用程序能够随时掌握数据库的运行情况,以便及时发现数据库运行的错误,并且在数据库出现错误后能够接管数据库,避免错误的传播。
                             (2)持久性方面:数据库的持久性是指数据库能够从软件或硬件错误中恢复数据的能力。持久性对于以内存为主的嵌入式数据库尤为关键。
                             (3)高可用性方面:嵌入式数据库的高可用性通过对主数据库建立一个或多个冗余的从数据库实现,主数据库与从数据库之间通过一定的方式保持着数据同步,一旦主数据库出现问题,无法服务,可以立刻切换到从数据库,并继续提供服务。
                      典型嵌入式数据库介绍
                      eXtremeDB是美国McObject公司推出的一款嵌入式数据库,它采用内存数据库结构,基于对象模型,并直接与用户应用程序结合,不属于客户/服务器架构。eXtremeDB内存数据库与其他嵌入式数据库相比,在提供高性能的数据管理服务的同时,专门针对实时系统的要求进行了优化。
                             eXtremeDB功能组件及体系结构
                             eXtremeDB提供一套DDL(Data Definition Language)语言按对象模型的要求进行数据库模式设计,通过其DDL编译器,可根据用户的设计生成相应的数据操作接口,供用户调用。eXtremeDB嵌入式内存数据库的基本结构如下图所示。
                             
                             eXtremeDB体系结构示意图
                             eXtremeDB体系结构的最上层代表数据库应用程序,其下一层是数据库静态接口和根据数据库设计生成的接口,分别代表eXtremeDB提供的外部应用接口(如数据库的创建和删除等)和通过数据库设计生成的外部接口(主要是数据操作接口),用户调用这些外部接口进行数据库操作;再下层则是数据库内核的相关模块,包括记录管理器、事务管理器、索引管理器、数据字典等;最下层是存储管理器,直接管理用户分配的内存空间。
                             数据库内核实现机制与操作系统无关,并且向外部提供操作系统、文件系统和网络的适配接口,方便用户进行移植开发。
                             eXtremeDB数据库技术特点
                             eXtremeDB的内存数据库与主流的Berkeley DB和SQLite不同。Berkeley DB的内存功能是通过扩充原有的磁盘数据库的缓存功能实现的,数据操作实际上还是要经过一些额外的操作;而SQLite只是部分实现了内存数据库功能,实际上也还是磁盘数据库架构。eXtremeDB的内存数据库是根据内存的特点重新设计的,在性能、实时性以及安全性可靠性方面具备独特优势。
                             eXtremeDB具有以下特点:
                             (1)采用内存数据库架构,充分利用内存的高性能,消除了文件I/O等执行时间难以预测的操作。
                             (2)支持事务优先级设置,用户可自行设置事务的优先级。
                             (3)具备内存管理能力,保证数据库的操作安全和操作系统无关性。应用程序一次性对数据库完成内存分配后,eXtremeDB自行对分配的内存空间进行管理。
                             (4)实现中不包含任何动态内存分配操作。
                             (5)生成的接口是类型安全的,不使用void指针。
                             (6)支持事务日志功能,可以周期性的将内存中的事务操作记录到日志文件中,在内存数据库崩溃后自动从日志中恢复。
                             (7)支持高可用性功能,可以为主数据库建立一对多的镜像数据库,当主数据库故障时,可自动切换到备份的数据库上。
 
       恢复
        数据恢复有3个步骤。
        (1)反向扫描文件日志,查找该事务的更新操作。
        (2)对事务的更新操作执行逆操作。
        (3)继续反向扫描日志文件,查找该事务的其他更新操作,并做同样的处理,直到事务的开始标志。
 
       数据库
        数据库(DataBase,DB)是指长期存储在计算机内的、有组织的、可共享的数据集合。数据库中的数据按一定的数据模型组织、描述和存储,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。
        系统使用的所有数据存储在一个或几个数据库中。
 
       数据库恢复
        要使数据库在发生故障后能够恢复,必须建立冗余数据,在故障发生后利用这些冗余数据实施数据库恢复。建立冗余数据常用的技术是数据转储和建立日志文件。在一个数据库系统中,这两种方法一般是同时被采用的。
               故障恢复的两个操作
               有了数据转储和日志文件,就可以在系统发生故障时进行恢复。故障恢复有撤销事务(UNDO)和重做事务(REDO)两个操作。
                      撤销事务(UNDO)
                      所谓撤销事务是将未完成的事务撤销,使数据库恢复到事务执行前的正确状态。
                      撤销事务的过程:反向扫描未完成的事务日志(由后向前扫描),查找事务的更新操作;对该事务的更新操作执行逆操作,用日志文件记录中更新前的值写入数据库,插入的记录从数据库中删除,删除的记录重新插入数据库中;继续反向扫描日志文件,查找该事务的其他更新操作并执行逆操作直至事务开始标志。
                      重做事务(REDO)
                      所谓重做事务(REDO)是将已经提交的事务重新执行。
                      重做事务的过程:从事务的开始标识起,正向扫描日志文件,重新执行日志文件登记的该事务对数据库的所有操作,直至事务结束标识。
               故障恢复策略
               对于不同的故障,采取不同的恢复策略。
                      事务故障的恢复
                      事务故障是事务在运行至正常终止点(SUMMIT或ROLLBACK)前终止,日志文件只有该事务的开始标识而没有结束标识。对这类故障的恢复是通过撤销(UNDO)产生故障的事务,使数据库恢复到该事务执行前的正确状态来完成的。事务恢复有如下三个步骤:
                      步骤1:反向扫描日志文件(即从最后向前扫描日志文件),查找该事务的更新操作。
                      步骤2:对事务的更新操作执行逆操作。
                      步骤3:继续反向扫描日志文件,查找该事务的其他更新操作,并做同样的处理,直到事务的开始标志。
                      注意:事务故障的恢复由系统自动完成,对用户是透明的。
                      系统故障的恢复
                      系统故障会使数据库的数据不一致,原因有两个:一是未完成的事务对数据库的更新可能已写入数据库;二是已提交的事务对数据库的更新可能还在缓冲区中没来得及写入数据库。因此恢复操作就是要撤销故障发生时未完成的事务,重做(REDO)已提交的事务。
                      注意:系统故障的恢复是在系统重启之后自动执行的。
                      介质故障的恢复
                      介质故障时数据库遭到破坏,需要重装数据库,装载故障前最近一次的备份和故障前的日志文件副本,再按照系统故障的恢复过程执行撤销和重做来恢复。
                      注意:介质故障要有系统管理员(DBA)的参与,装入数据库的副本和日记文件的副本,再由系统执行撤销和重做操作。
   题号导航      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 /
 
第44题    在手机中做本题