CN101976254A - 一种基于移动通信终端的数据库修复方法及装置 - Google Patents
一种基于移动通信终端的数据库修复方法及装置 Download PDFInfo
- Publication number
- CN101976254A CN101976254A CN 201010523370 CN201010523370A CN101976254A CN 101976254 A CN101976254 A CN 101976254A CN 201010523370 CN201010523370 CN 201010523370 CN 201010523370 A CN201010523370 A CN 201010523370A CN 101976254 A CN101976254 A CN 101976254A
- Authority
- CN
- China
- Prior art keywords
- record
- database file
- domain identifier
- database
- positional information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明公开了一种基于移动通信终端的数据库修改方法及装置,用以降低数据库异常对移动通信终端的影响,提高开发效率。该方法为:获取第一数据库文件及其对应的记录内容,将记录内容中包含的每一个域标识分别与预设范围进行比较,在确定存在不属于预设范围的非法域标识时,获得每一个非法域标识对应的记录的位置信息,根据获得的位置信息,利用第一数据库文件中除每一个非法域标识对应的记录以外的其他记录修复第一数据库文件。该方法能修复数据库,降低数据库异常对移动通信终端的影响,保证移动通信终端的正常使用。本发明同时公开了一种基于移动通信终端的数据库修复装置。
Description
技术领域
本发明涉及通信领域,尤其涉及一种基于移动通信终端的数据库修复方法及装置。
背景技术
目前,移动通信终端中有很多应用是采用数据库进行管理和控制,例如,电话薄、通话记录、日程表等应用就是采用数据库实现的。但是移动通信终端中的数据库存在很多不稳定因素,可能会出现数据异常的情况,一旦数据库中的数据发生异常,则可能会导致移动通信终端数据丢失,或者是功能无法使用,甚至是出现死机或无法开机的严重后果,严重影响开发效率。
下面以基于无线二进制运行环境(Binary Runtime Environment for Wireless,Brew)的移动通信终端为例进行说明,在基于Brew平台的移动通信终端中,采用的不是关系型数据库,无法通过解析SQL等命令语句对数据库进行管理查询等操作。现有的基于Brew平台的移动通信终端中,从数据库中删除记录时,在记录头结构中将需要删除的记录对应的记录标识修改为删除标记(如,0xffff),每当对数据库文件进行改动后时,检测记录头结构中包含的删除标记的数量,在达到预设阈值时压缩数据库文件,即将记录标识为删除标记的相应记录从数据库文件中删除,并在压缩完成后重新建立索引表,从而提高数据库的工作效率。但是,在基于Brew平台的移动通信终端中,对数据库的压缩过程为异步过程,即在压缩的同时,移动通信终端可以进行其他操作,因此有可能会产生冲突,导致数据库工作异常出现坏区。同时,在数据库工作时向数据库中快速大量地写入数据,也可能会出现坏区,使得数据库出现异常,坏区是指数据库文件中出现的一段无法用数据结构解析的数据库。目前基于Brcw平台的移动通信终端中没有完善的容错机制,只能简单判断数据库的读取是否正常,一旦数据库异常,则停止读取操作,从而造成数据丢失,或者无法再写入数据,也可能会因为数据库在读取时无法跳过坏区而导致死循环,使得终端死机或无法开机,影响移动通信终端的正常使用。
发明内容
本发明提供一种基于移动通信终端的数据库修复方法及装置,用以对异常数据库进行修复,降低数据库异常对移动通信终端性能的影响,保证移动通信终端的正常使用。
本发明实施例提供的具体技术方案如下:
一种基于移动通信终端的数据库恢复方法,包括:
获取第一数据库文件及其对应的记录内容;
将所述记录内容中包含的每一个域标识分别与预设范围进行比较,在确定存在不属于预设范围的非法域标识时,获得每一个非法域标识对应的记录的位置信息;
根据获得的位置信息,利用所述第一数据库文件中除每一个非法域标识对应的记录以外的其他记录修复所述第一数据库文件。
一种基于移动通信终端的数据库恢复装置,包括:
第一处理单元,用于获取第一数据库文件及其对应的记录内容;
第二处理单元,用于将所述记录内容中包含的每一个域标识分别与预设范围进行比较,在确定存在不属于预设范围的非法域标识时,获得每一个非法域标识对应的记录的位置信息;
第三处理单元,用于根据获得的位置信息,利用所述第一数据库文件中除每一个非法域标识对应的记录以外的其他记录修复所述第一数据库文件。
基于上述技术方案,本发明实施例中,通过遍历第一数据库文件的记录内容,将记录内容中包含的每一个域标识分别与预设范围进行比较,在确定存在不属于预设范围的非法域标识时,即可确定与该非法域标识相对应的记录异常,获得每一个非法域标识对应的记录的位置信息,根据获得的位置信息,采用第一数据库文件中除每一个非法域标识对应的记录以外的记录修复第一数据库文件,从而能够对移动通信终端中的数据库进行修复,降低数据库异常对移动通信终端造成的影响,保证移动通信终端的正常使用。
附图说明
图1为基于Brew平台移动通信终端的数据库结构图;
图2为基于Brew平台的移动通信终端数据库的记录结构图;
图3为本发明基于移动通信终端的数据库修复方法流程图;
图4为本发明基于移动通信终端的数据库修复装置结构图。
具体实施方式
为了降低数据库异常对移动通信终端正常使用所造成的影响,保证移动通信终端的正常使用,本发明实施例中提供了一种基于移动通信终端的数据库修复方法及装置,能够降低数据库异常对移动通信终端造成的影响,提高开发效率。该方法为:获取第一数据库文件及其对应的记录内容,将记录内容中包含的每一个域标识分别与预设范围进行比较,在确定存在不属于预设范围的非法域标识时,获得每一个非法域标识对应的记录的位置信息,根据获得的位置信息,利用所述第一数据库文件中除每一个非法域标识对应的记录以外的其他记录修复上述第一数据库文件。
本发明实施例中,仅以基于Brew平台的移动通信终端为例进行说明,对于基于其他平台的移动通信终端,如果也能够采用本发明实施例的方法进行数据库修复,本发明也将其包含在内。
在基于Brew平台的移动通信终端中,数据库文件的结构如附图1所示,主要包括数据库文件头结构、多条记录和索引表三部分。索引表位于数据库文件的最后,每个数据库文件至多包含一个索引表,有的数据库文件没有索引表。其中,数据库文件头结构主要由当前记录数和索引表的偏移地址组成;数据库文件中每条记录的结构相同,记录主要由记录头结构和记录内容组成,而记录头结构又包括记录标识和记录长度,在数据库文件的每条记录中,记录内容所占的字节数,应该与上述数据库文件的记录头结构中的记录长度一致;索引表主要由索引头结构和多个记录索引组成,其中,记录和记录索引是一一对应的,索引头结构包括索引表中的记录索引数,记录索引包括记录标识和记录在相应数据库文件中的偏移地址。
参阅附图2所示,数据库文件记录结构中的记录内容也具有一定的结构,上述记录内容由域组成,其中至少包括域标识,不同的数据库文件中记录内容的结构可能不相同,但是对于同一数据库文件,其每条记录的记录内容的结构是相同的。
例如,同一数据库文件中,每条记录内容中包含的域的个数可以不相同,但是每个域的组成是相同的,都包括域标识、域的类型、域的长度、域的内容等,同时每个域标识的预设范围也是相同的。
下面结合附图对本发明实施例中优选的实施例进行详细说明。
参阅附图3所示,本发明实施例中,基于移动通信终端的数据库修复方法的详细流程如下:
步骤301:获取第一数据库文件及其对应的记录内容。
在获取第一数据库文件及其对应的记录内容时,获取上述第一数据库文件的记录头结构,该记录头结构包含记录标识和记录长度,再根据上述记录标识和记录长度获取相应的记录内容。
步骤302:将上述记录内容中包含的每一个域标识分别与预设范围进行比较,在确定存在不属于预设范围的非法域标识时,获得每一个非法域标识对应的记录的位置信息。
其中,在获得每一个非法域标识对应的记录的位置信息时,更新第一数据库文件文件头结构中的当前记录数,即每获得一个非法域标识对应的记录的位置信息,便相应的更新当前记录数。本发明实施例中,每条记录的记录内容可能包含多个域标识,则将该记录内容中包含的每个域标识分别依次与预设范围进行比较,在确定存在不属于预设范围的非法域标识时,则停止对该非法域标识相对应的记录内容中包含的其他域标识进行比较,获得该非法域标识对应的记录的位置信息。上述非法域标识是指不在预设范围内的域标识。
例如,每获得一个非法域标识对应的记录的位置信息,即第一数据库文件中包含的当前记录数减1后再保存至第一数据库文件中。
上述记录的位置信息为该记录的起始偏移地址和结束偏移地址。本发明实施例中,在该起始偏移地址和结束偏移地址所确定的区间为整条记录,即包括记录标识、记录长度和记录内容。
例如,在移动通信终端中,与电话薄相对应的数据库文件中,记录内容的第3-4字节表示域标识,针对该域标识的预设范围为1-10,在记录内容的域标识为12时,确定该域标识对应的记录异常,则保存与该域标识对应的记录的位置信息,即保存该记录的起始偏移地址和结束偏移地址。
本发明实施例中,在获得每一个非法域标识对应的记录的位置信息后,可以另外保存该位置信息,例如将该位置信息保存至链表中,在遍历第一数据库文件中包含的所有记录内容后,判断上述保存位置信息的链表是否为空,若是,则不存在异常记录,否则,说明第一数据库文件中存在异常记录,需要对第一数据库文件进行修复。上述另外保存位置信息的可以是链表以外的其他保存形式,例如文件形式。
步骤303:根据获得的位置信息,利用上述第一数据库文件中除每一个非法域标识对应的记录以外的其他记录修复上述第一数据库文件。
根据获得的位置信息,利用上述第一数据库文件中除每一个非法域标识对应的记录以外的其他记录修复上述第一数据库文件,可以包括以下两种实现方式:
实现方式一,根据获得的位置信息,将第一数据库文件中除每一个非法域标识对应的记录以外的其他记录拷贝至新建的第二数据库文件;采用上述第二数据库文件替换上述第一数据库文件,完成修复。
本发明实施例中,根据获得的上述位置信息,即可确定异常记录在第一数据库文件中的位置,再将第一数据库文件中除每一个非法域标识对应的记录以外的其他记录拷贝至第二数据库文件。
其中,确定存在不属于预设范围的非法域标识,在获得每一个非法域标识对应的记录的位置信息时,更新第一数据库文件文件头结构中的当前记录数,根据获得的位置信息,将第一数据库文件中除每一个非法域标识对应的记录以外的其他记录拷贝至新建的第二数据库文件时,将第一数据库文件文件头结构中的当前记录数拷贝至第二数据库文件文件头结构的相应位置。
本发明实施例中,在采用第二数据库文件替换第一数据库文件,完成修复后,可以根据修复后的数据库文件新建索引表,该索引表至少包括记录标识以及记录在数据库文件中的偏移地址。
实现方式二,根据获得位置信息,删除上述第一数据库文件中每一个非法域标识对应的记录,完成修复。
本发明实施例中,根据获得的上述位置信息,即可确定异常记录在第一数据库文件中的位置,再将第一数据库文件中每一个非法域标识对应的记录删除,即可完成修复。
其中,确定存在不属于预设范围的非法域标识,在获得每一个非法域标识对应的记录的位置信息时,更新第一数据库文件文件头结构中的当前记录数。
本发明实施例中,在将第一数据库文件中每一个非法域标识对应的记录删除,完成修复后,可以根据修复后的数据库文件新建索引表,该索引表至少包括记录标识以及记录在数据库文件中的偏移地址。
基于上述原理,参阅附图4所示,本发明实施例中还包括一种基于移动通信终端的数据库修复装置,主要包括以下处理单元:
第一处理单元401,用于获取第一数据库文件及其对应的记录内容;
第二处理单元402,用于将上述记录内容中包含的每一个域标识分别与预设范围进行比较,在确定存在不属于预设范围的非法域标识时,获得每一个非法域标识对应的记录的位置信息;
第三处理单元403,用于根据获得的位置信息,利用上述第一数据库文件中除每一个非法域标识对应的记录以外的其他记录修复所述第一数据库文件。
基于上述实施例,通过获取第一数据库文件的记录内容,将记录内容中包含的每个域标识分别与预设范围进行比较,在确定存在不属于预设范围的非法域标识时,即可确定与该非法域标识相对应的记录异常,则保存与上述非法域标识对应的记录的位置信息,以确定出现异常的记录的位置,再根据获得位置信息,利用第一数据库文件中除每一个非法域标识对应的记录以外的其他记录修复第一数据库文件,从而能够对移动通信终端中的数据库进行修复,降低数据库异常对移动通信终端造成的影响,保证移动通信终端的正常使用。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (12)
1.一种基于移动通信终端的数据库修复方法,其特征在于,包括:
获取第一数据库文件及其对应的记录内容;
将所述记录内容中包含的每一个域标识分别与预设范围进行比较,在确定存在不属于预设范围的非法域标识时,获得每一个非法域标识对应的记录的位置信息;
根据获得的位置信息,利用所述第一数据库文件中除每一个非法域标识对应的记录以外的其他记录修复所述第一数据库文件。
2.如权利要求1所述的方法,其特征在于,所述根据获得的位置信息,利用所述第一数据库文件中除每一个非法域标识对应的记录以外的其他记录修复所述第一数据库文件,具体包括:
根据获得的位置信息,将所述第一数据库文件中除每一个非法域标识对应的记录以外的其他记录拷贝至新建的第二数据库文件;
采用所述第二数据库文件替换所述第一数据库文件,完成修复。
3.如权利要求1所述的方法,其特征在于,所述根据获得的位置信息,利用所述第一数据库文件中除每一个非法域标识对应的记录以外的其他记录修复所述第一数据库文件,具体包括:
根据获得的位置信息,删除所述第一数据库文件中每一个非法域标识对应的记录,完成修复。
4.如权利要求2所述的方法,其特征在于,在获得每一个非法域标识对应的记录的位置信息时,更新所述第一数据库文件文件头结构中的当前记录数;
根据获得的位置信息,将所述第一数据库文件中除每一个非法域标识对应的记录以外的其他记录拷贝至新建的第二数据库文件时,将所述第一数据库文件文件头结构中的当前记录数拷贝至所述第二数据库文件文件头结构的相应位置。
5.如权利要求3所述的方法,其特征在于,在获得每一个非法域标识对应的记录的位置信息时,更新所述第一数据库文件文件头结构中的当前记录数。
6.如权利要求1-5任一项所述的方法,其特征在于,所述记录的位置信息为所述记录的起始偏移地址和结束偏移地址。
7.一种基于移动通信终端的数据库修复装置,其特征在于,包括:
第一处理单元,用于获取第一数据库文件及其对应的记录内容;
第二处理单元,用于将所述记录内容中包含的每一个域标识分别与预设范围进行比较,在确定存在不属于预设范围的非法域标识时,获得每一个非法域标识对应的记录的位置信息;
第三处理单元,用于根据获得的位置信息,利用所述第一数据库文件中除每一个非法域标识对应的记录以外的其他记录修复所述第一数据库文件。
8.如权利要求7所述的装置,其特征在于,所述第三处理单元根据获得的位置信息,利用所述第一数据库文件中除每一个非法域标识对应的记录以外的其他记录修复所述第一数据库文件,具体为:
根据获得的位置信息,将所述第一数据库文件中除每一个非法域标识对应的记录以外的其他记录拷贝至新建的第二数据库文件;
采用所述第二数据库文件替换所述第一数据库文件,完成修复。
9.如权利要求7所述的装置,其特征在于,所述第三处理单元根据获得的位置信息,利用所述第一数据库文件中除每一个非法域标识对应的记录以外的其他记录修复所述第一数据库文件,具体为:
删除所述第一数据库文件中每一个非法域标识对应的记录,完成修复。
10.如权利要求8所述的装置,其特征在于,所述第二处理单元在获得每一个非法域标识对应的记录的位置信息时,更新所述第一数据库文件文件头结构中的当前记录数;
所述第三处理单元,根据获得的位置信息,将所述第一数据库文件中除每一个非法域标识对应的记录以外的其他记录拷贝至新建的第二数据库文件时,将所述第一数据库文件文件头结构中的当前记录数拷贝至所述第二数据库文件文件头结构的相应位置。
11.如权利要求9所述的装置,其特征在于,所述第二处理单元在获得每一个非法域标识对应的记录的位置信息时,更新所述第一数据库文件文件头结构中的当前记录数。
12.如权利要求7-11任一项所述的装置,其特征在于,所述记录的位置信息为所述记录的起始偏移地址和结束偏移地址。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010523370 CN101976254B (zh) | 2010-10-26 | 2010-10-26 | 一种基于移动通信终端的数据库修复方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010523370 CN101976254B (zh) | 2010-10-26 | 2010-10-26 | 一种基于移动通信终端的数据库修复方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101976254A true CN101976254A (zh) | 2011-02-16 |
CN101976254B CN101976254B (zh) | 2013-01-09 |
Family
ID=43576140
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201010523370 Active CN101976254B (zh) | 2010-10-26 | 2010-10-26 | 一种基于移动通信终端的数据库修复方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101976254B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001337857A (ja) * | 2000-05-29 | 2001-12-07 | Nec Corp | データベース復旧システム |
US20040267835A1 (en) * | 2003-06-30 | 2004-12-30 | Microsoft Corporation | Database data recovery system and method |
CN101004740A (zh) * | 2006-01-18 | 2007-07-25 | 腾讯科技(深圳)有限公司 | 一种读取网络资源站点信息的方法及其系统以及搜索引擎 |
CN101667180A (zh) * | 2008-09-03 | 2010-03-10 | 神讯电脑(昆山)有限公司 | 数据库空间管理系统及其方法 |
CN101790156A (zh) * | 2009-11-19 | 2010-07-28 | 北京邮电大学 | 基于策略优化的终端软件故障修复方法及装置 |
-
2010
- 2010-10-26 CN CN 201010523370 patent/CN101976254B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001337857A (ja) * | 2000-05-29 | 2001-12-07 | Nec Corp | データベース復旧システム |
US20040267835A1 (en) * | 2003-06-30 | 2004-12-30 | Microsoft Corporation | Database data recovery system and method |
CN101004740A (zh) * | 2006-01-18 | 2007-07-25 | 腾讯科技(深圳)有限公司 | 一种读取网络资源站点信息的方法及其系统以及搜索引擎 |
CN101667180A (zh) * | 2008-09-03 | 2010-03-10 | 神讯电脑(昆山)有限公司 | 数据库空间管理系统及其方法 |
CN101790156A (zh) * | 2009-11-19 | 2010-07-28 | 北京邮电大学 | 基于策略优化的终端软件故障修复方法及装置 |
Non-Patent Citations (1)
Title |
---|
《山东通信技术》 20070930 高凤玉 ORACLE数据库碎片整理浅析 第32-34页 1-3,7-9 第27卷, 第3期 * |
Also Published As
Publication number | Publication date |
---|---|
CN101976254B (zh) | 2013-01-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20120185454A1 (en) | Method and device for accessing file resources | |
US9619512B2 (en) | Memory searching system and method, real-time searching system and method, and computer storage medium | |
CN102693305B (zh) | 一种文件信息预览方法及系统 | |
CN104811645B (zh) | 一种嵌入式录像数据存储方法 | |
KR101766790B1 (ko) | 메인 메모리 데이터 베이스를 관리 하기 위한 방법 및 컴퓨팅 장치 | |
CN106600750B (zh) | 一种循环录像的方法、系统及行车记录仪 | |
KR101575246B1 (ko) | SQLite 데이터베이스 파일 내 손상된 레코드의 복원 방법 | |
CN108108431B (zh) | 数据同步方法和系统 | |
CN103744875A (zh) | 基于文件系统的数据快速迁移方法及系统 | |
CN107924397B (zh) | 一种文件编辑方法和文件编辑器 | |
CN104899114A (zh) | 一种固态硬盘上的连续时间数据保护方法 | |
CN110998537A (zh) | 一种过期备份处理方法及备份服务器 | |
CN112182010B (zh) | 脏页刷新方法和装置、存储介质和电子设备 | |
US8909598B2 (en) | Method for managing electronic phone book used in communication devices | |
CN103593447A (zh) | 用于数据库表的数据处理方法和装置 | |
CN101980195B (zh) | 一种基于移动通信终端的数据库索引修复方法及装置 | |
CN101976254B (zh) | 一种基于移动通信终端的数据库修复方法及装置 | |
CN102708107A (zh) | 一种追加式文件存储的方法及系统 | |
CN114661243A (zh) | 一种适ssd的可见容量调整的方法、装置、设备及介质 | |
CN114896641A (zh) | 数据校验方法、装置、电子设备及计算机可读存储介质 | |
CN103108070A (zh) | 电话簿备份系统及其方法 | |
US9380109B2 (en) | Resource synchronization control method, device, and system | |
CN105573862A (zh) | 一种恢复文件系统的方法和设备 | |
US9930521B2 (en) | Method for updating preferred roaming list of UIM card | |
CN110807003B (zh) | 修改访问控制列表的引用计数的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |