一种基于移动通信终端的数据库修复方法及装置的制作方法

文档序号:6334619阅读:300来源:国知局
专利名称:一种基于移动通信终端的数据库修复方法及装置的制作方法
技术领域
本发明涉及通信领域,尤其涉及一种基于移动通信终端的数据库修复方法及装置。
背景技术
目前,移动通信终端中有很多应用是采用数据库进行管理和控制,例如,电话薄、 通话记录、日程表等应用就是采用数据库实现的。但是移动通信终端中的数据库存在很多 不稳定因素,可能会出现数据异常的情况,一旦数据库中的数据发生异常,则可能会导致移 动通信终端数据丢失,或者是功能无法使用,甚至是出现死机或无法开机的严重后果,严重 影响开发效率。下面以基于无线二进制运行环境(Binary Runtime Environment for Wireless, Brew)的移动通信终端为例进行说明,在基于Brew平台的移动通信终端中,采用的不是关 系型数据库,无法通过解析SQL等命令语句对数据库进行管理查询等操作。现有的基于 Brew平台的移动通信终端中,从数据库中删除记录时,在记录头结构中将需要删除的记录 对应的记录标识修改为删除标记(如,OxfTfT),每当对数据库文件进行改动后时,检测记 录头结构中包含的删除标记的数量,在达到预设阈值时压缩数据库文件,即将记录标识为 删除标记的相应记录从数据库文件中删除,并在压缩完成后重新建立索引表,从而提高数 据库的工作效率。但是,在基于Brew平台的移动通信终端中,对数据库的压缩过程为异步 过程,即在压缩的同时,移动通信终端可以进行其他操作,因此有可能会产生冲突,导致数 据库工作异常出现坏区。同时,在数据库工作时向数据库中快速大量地写入数据,也可能会 出现坏区,使得数据库出现异常,坏区是指数据库文件中出现的一段无法用数据结构解析 的数据库。目前基于Brcw平台的移动通信终端中没有完善的容错机制,只能简单判断数据 库的读取是否正常,一旦数据库异常,则停止读取操作,从而造成数据丢失,或者无法再写 入数据,也可能会因为数据库在读取时无法跳过坏区而导致死循环,使得终端死机或无法 开机,影响移动通信终端的正常使用。

发明内容
本发明提供一种基于移动通信终端的数据库修复方法及装置,用以对异常数据库 进行修复,降低数据库异常对移动通信终端性能的影响,保证移动通信终端的正常使用。本发明实施例提供的具体技术方案如下一种基于移动通信终端的数据库恢复方法,包括获取第一数据库文件及其对应的记录内容;将所述记录内容中包含的每一个域标识分别与预设范围进行比较,在确定存在不 属于预设范围的非法域标识时,获得每一个非法域标识对应的记录的位置信息;根据获得的位置信息,利用所述第一数据库文件中除每一个非法域标识对应的记 录以外的其他记录修复所述第一数据库文件。
一种基于移动通信终端的数据库恢复装置,包括第一处理单元,用于获取第一数据库文件及其对应的记录内容;第二处理单元,用于将所述记录内容中包含的每一个域标识分别与预设范围进行 比较,在确定存在不属于预设范围的非法域标识时,获得每一个非法域标识对应的记录的 位置信息;第三处理单元,用于根据获得的位置信息,利用所述第一数据库文件中除每一个 非法域标识对应的记录以外的其他记录修复所述第一数据库文件。基于上述技术方案,本发明实施例中,通过遍历第一数据库文件的记录内容,将记 录内容中包含的每一个域标识分别与预设范围进行比较,在确定存在不属于预设范围的非 法域标识时,即可确定与该非法域标识相对应的记录异常,获得每一个非法域标识对应的 记录的位置信息,根据获得的位置信息,采用第一数据库文件中除每一个非法域标识对应 的记录以外的记录修复第一数据库文件,从而能够对移动通信终端中的数据库进行修复, 降低数据库异常对移动通信终端造成的影响,保证移动通信终端的正常使用。


图1为基于Brew平台移动通信终端的数据库结构图;图2为基于Brew平台的移动通信终端数据库的记录结构图;图3为本发明基于移动通信终端的数据库修复方法流程图;图4为本发明基于移动通信终端的数据库修复装置结构图。
具体实施例方式为了降低数据库异常对移动通信终端正常使用所造成的影响,保证移动通信终端 的正常使用,本发明实施例中提供了一种基于移动通信终端的数据库修复方法及装置,能 够降低数据库异常对移动通信终端造成的影响,提高开发效率。该方法为获取第一数据库 文件及其对应的记录内容,将记录内容中包含的每一个域标识分别与预设范围进行比较, 在确定存在不属于预设范围的非法域标识时,获得每一个非法域标识对应的记录的位置信 息,根据获得的位置信息,利用所述第一数据库文件中除每一个非法域标识对应的记录以 外的其他记录修复上述第一数据库文件。本发明实施例中,仅以基于Brew平台的移动通信终端为例进行说明,对于基于其 他平台的移动通信终端,如果也能够采用本发明实施例的方法进行数据库修复,本发明也 将其包含在内。在基于Brew平台的移动通信终端中,数据库文件的结构如附图1所示,主要包括 数据库文件头结构、多条记录和索引表三部分。索引表位于数据库文件的最后,每个数据库 文件至多包含一个索引表,有的数据库文件没有索引表。其中,数据库文件头结构主要由当 前记录数和索引表的偏移地址组成;数据库文件中每条记录的结构相同,记录主要由记录 头结构和记录内容组成,而记录头结构又包括记录标识和记录长度,在数据库文件的每条 记录中,记录内容所占的字节数,应该与上述数据库文件的记录头结构中的记录长度一致; 索引表主要由索引头结构和多个记录索引组成,其中,记录和记录索引是一一对应的,索引 头结构包括索引表中的记录索引数,记录索引包括记录标识和记录在相应数据库文件中的
5偏移地址。参阅附图2所示,数据库文件记录结构中的记录内容也具有一定的结构,上述记 录内容由域组成,其中至少包括域标识,不同的数据库文件中记录内容的结构可能不相同, 但是对于同一数据库文件,其每条记录的记录内容的结构是相同的。例如,同一数据库文件中,每条记录内容中包含的域的个数可以不相同,但是每个 域的组成是相同的,都包括域标识、域的类型、域的长度、域的内容等,同时每个域标识的预 设范围也是相同的。下面结合附图对本发明实施例中优选的实施例进行详细说明。参阅附图3所示,本发明实施例中,基于移动通信终端的数据库修复方法的详细 流程如下步骤301 获取第一数据库文件及其对应的记录内容。在获取第一数据库文件及其对应的记录内容时,获取上述第一数据库文件的记录 头结构,该记录头结构包含记录标识和记录长度,再根据上述记录标识和记录长度获取相 应的记录内容。步骤302 将上述记录内容中包含的每一个域标识分别与预设范围进行比较,在 确定存在不属于预设范围的非法域标识时,获得每一个非法域标识对应的记录的位置信 肩、ο其中,在获得每一个非法域标识对应的记录的位置信息时,更新第一数据库文件 文件头结构中的当前记录数,即每获得一个非法域标识对应的记录的位置信息,便相应的 更新当前记录数。本发明实施例中,每条记录的记录内容可能包含多个域标识,则将该记录 内容中包含的每个域标识分别依次与预设范围进行比较,在确定存在不属于预设范围的非 法域标识时,则停止对该非法域标识相对应的记录内容中包含的其他域标识进行比较,获 得该非法域标识对应的记录的位置信息。上述非法域标识是指不在预设范围内的域标识。例如,每获得一个非法域标识对应的记录的位置信息,即第一数据库文件中包含 的当前记录数减1后再保存至第一数据库文件中。上述记录的位置信息为该记录的起始偏移地址和结束偏移地址。本发明实施例 中,在该起始偏移地址和结束偏移地址所确定的区间为整条记录,即包括记录标识、记录长 度和记录内容。例如,在移动通信终端中,与电话薄相对应的数据库文件中,记录内容的第3-4字 节表示域标识,针对该域标识的预设范围为1-10,在记录内容的域标识为12时,确定该域 标识对应的记录异常,则保存与该域标识对应的记录的位置信息,即保存该记录的起始偏 移地址和结束偏移地址。本发明实施例中,在获得每一个非法域标识对应的记录的位置信息后,可以另外 保存该位置信息,例如将该位置信息保存至链表中,在遍历第一数据库文件中包含的所有 记录内容后,判断上述保存位置信息的链表是否为空,若是,则不存在异常记录,否则,说明 第一数据库文件中存在异常记录,需要对第一数据库文件进行修复。上述另外保存位置信 息的可以是链表以外的其他保存形式,例如文件形式。步骤303 根据获得的位置信息,利用上述第一数据库文件中除每一个非法域标 识对应的记录以外的其他记录修复上述第一数据库文件。
根据获得的位置信息,利用上述第一数据库文件中除每一个非法域标识对应的记 录以外的其他记录修复上述第一数据库文件,可以包括以下两种实现方式实现方式一,根据获得的位置信息,将第一数据库文件中除每一个非法域标识对 应的记录以外的其他记录拷贝至新建的第二数据库文件;采用上述第二数据库文件替换上 述第一数据库文件,完成修复。本发明实施例中,根据获得的上述位置信息,即可确定异常记录在第一数据库文 件中的位置,再将第一数据库文件中除每一个非法域标识对应的记录以外的其他记录拷贝 至第二数据库文件。其中,确定存在不属于预设范围的非法域标识,在获得每一个非法域标识对应的 记录的位置信息时,更新第一数据库文件文件头结构中的当前记录数,根据获得的位置信 息,将第一数据库文件中除每一个非法域标识对应的记录以外的其他记录拷贝至新建的第 二数据库文件时,将第一数据库文件文件头结构中的当前记录数拷贝至第二数据库文件文 件头结构的相应位置。本发明实施例中,在采用第二数据库文件替换第一数据库文件,完成修复后,可以 根据修复后的数据库文件新建索引表,该索引表至少包括记录标识以及记录在数据库文件 中的偏移地址。实现方式二,根据获得位置信息,删除上述第一数据库文件中每一个非法域标识 对应的记录,完成修复。本发明实施例中,根据获得的上述位置信息,即可确定异常记录在第一数据库文 件中的位置,再将第一数据库文件中每一个非法域标识对应的记录删除,即可完成修复。其中,确定存在不属于预设范围的非法域标识,在获得每一个非法域标识对应的 记录的位置信息时,更新第一数据库文件文件头结构中的当前记录数。本发明实施例中,在将第一数据库文件中每一个非法域标识对应的记录删除,完 成修复后,可以根据修复后的数据库文件新建索引表,该索引表至少包括记录标识以及记 录在数据库文件中的偏移地址。基于上述原理,参阅附图4所示,本发明实施例中还包括一种基于移动通信终端 的数据库修复装置,主要包括以下处理单元第一处理单元401,用于获取第一数据库文件及其对应的记录内容;第二处理单元402,用于将上述记录内容中包含的每一个域标识分别与预设范围 进行比较,在确定存在不属于预设范围的非法域标识时,获得每一个非法域标识对应的记 录的位置信息;第三处理单元403,用于根据获得的位置信息,利用上述第一数据库文件中除每一 个非法域标识对应的记录以外的其他记录修复所述第一数据库文件。基于上述实施例,通过获取第一数据库文件的记录内容,将记录内容中包含的每 个域标识分别与预设范围进行比较,在确定存在不属于预设范围的非法域标识时,即可确 定与该非法域标识相对应的记录异常,则保存与上述非法域标识对应的记录的位置信息, 以确定出现异常的记录的位置,再根据获得位置信息,利用第一数据库文件中除每一个非 法域标识对应的记录以外的其他记录修复第一数据库文件,从而能够对移动通信终端中的 数据库进行修复,降低数据库异常对移动通信终端造成的影响,保证移动通信终端的正常使用。 显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精 神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围 之内,则本发明也意图包含这些改动和变型在内。
权利要求
一种基于移动通信终端的数据库修复方法,其特征在于,包括获取第一数据库文件及其对应的记录内容;将所述记录内容中包含的每一个域标识分别与预设范围进行比较,在确定存在不属于预设范围的非法域标识时,获得每一个非法域标识对应的记录的位置信息;根据获得的位置信息,利用所述第一数据库文件中除每一个非法域标识对应的记录以外的其他记录修复所述第一数据库文件。
2.如权利要求1所述的方法,其特征在于,所述根据获得的位置信息,利用所述第一数 据库文件中除每一个非法域标识对应的记录以外的其他记录修复所述第一数据库文件,具 体包括根据获得的位置信息,将所述第一数据库文件中除每一个非法域标识对应的记录以外 的其他记录拷贝至新建的第二数据库文件;采用所述第二数据库文件替换所述第一数据库文件,完成修复。
3.如权利要求1所述的方法,其特征在于,所述根据获得的位置信息,利用所述第一数 据库文件中除每一个非法域标识对应的记录以外的其他记录修复所述第一数据库文件,具 体包括根据获得的位置信息,删除所述第一数据库文件中每一个非法域标识对应的记录,完 成修复。
4.如权利要求2所述的方法,其特征在于,在获得每一个非法域标识对应的记录的位 置信息时,更新所述第一数据库文件文件头结构中的当前记录数;根据获得的位置信息,将所述第一数据库文件中除每一个非法域标识对应的记录以外 的其他记录拷贝至新建的第二数据库文件时,将所述第一数据库文件文件头结构中的当前 记录数拷贝至所述第二数据库文件文件头结构的相应位置。
5.如权利要求3所述的方法,其特征在于,在获得每一个非法域标识对应的记录的位 置信息时,更新所述第一数据库文件文件头结构中的当前记录数。
6.如权利要求1-5任一项所述的方法,其特征在于,所述记录的位置信息为所述记录 的起始偏移地址和结束偏移地址。
7.一种基于移动通信终端的数据库修复装置,其特征在于,包括第一处理单元,用于获取第一数据库文件及其对应的记录内容;第二处理单元,用于将所述记录内容中包含的每一个域标识分别与预设范围进行比 较,在确定存在不属于预设范围的非法域标识时,获得每一个非法域标识对应的记录的位 直fe息;第三处理单元,用于根据获得的位置信息,利用所述第一数据库文件中除每一个非法 域标识对应的记录以外的其他记录修复所述第一数据库文件。
8.如权利要求7所述的装置,其特征在于,所述第三处理单元根据获得的位置信息,利 用所述第一数据库文件中除每一个非法域标识对应的记录以外的其他记录修复所述第一 数据库文件,具体为根据获得的位置信息,将所述第一数据库文件中除每一个非法域标识对应的记录以外 的其他记录拷贝至新建的第二数据库文件;采用所述第二数据库文件替换所述第一数据库文件,完成修复。
9.如权利要求7所述的装置,其特征在于,所述第三处理单元根据获得的位置信息,利 用所述第一数据库文件中除每一个非法域标识对应的记录以外的其他记录修复所述第一 数据库文件,具体为删除所述第一数据库文件中每一个非法域标识对应的记录,完成修复。
10.如权利要求8所述的装置,其特征在于,所述第二处理单元在获得每一个非法域标 识对应的记录的位置信息时,更新所述第一数据库文件文件头结构中的当前记录数;所述第三处理单元,根据获得的位置信息,将所述第一数据库文件中除每一个非法域 标识对应的记录以外的其他记录拷贝至新建的第二数据库文件时,将所述第一数据库文件 文件头结构中的当前记录数拷贝至所述第二数据库文件文件头结构的相应位置。
11.如权利要求9所述的装置,其特征在于,所述第二处理单元在获得每一个非法域标 识对应的记录的位置信息时,更新所述第一数据库文件文件头结构中的当前记录数。
12.如权利要求7-11任一项所述的装置,其特征在于,所述记录的位置信息为所述记 录的起始偏移地址和结束偏移地址。
全文摘要
本发明公开了一种基于移动通信终端的数据库修改方法及装置,用以降低数据库异常对移动通信终端的影响,提高开发效率。该方法为获取第一数据库文件及其对应的记录内容,将记录内容中包含的每一个域标识分别与预设范围进行比较,在确定存在不属于预设范围的非法域标识时,获得每一个非法域标识对应的记录的位置信息,根据获得的位置信息,利用第一数据库文件中除每一个非法域标识对应的记录以外的其他记录修复第一数据库文件。该方法能修复数据库,降低数据库异常对移动通信终端的影响,保证移动通信终端的正常使用。本发明同时公开了一种基于移动通信终端的数据库修复装置。
文档编号G06F17/30GK101976254SQ201010523370
公开日2011年2月16日 申请日期2010年10月26日 优先权日2010年10月26日
发明者刘刚, 刘薇 申请人:青岛海信移动通信技术股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1