CN103092719B - 一种文件***的断电保护方法 - Google Patents

一种文件***的断电保护方法 Download PDF

Info

Publication number
CN103092719B
CN103092719B CN201110336102.7A CN201110336102A CN103092719B CN 103092719 B CN103092719 B CN 103092719B CN 201110336102 A CN201110336102 A CN 201110336102A CN 103092719 B CN103092719 B CN 103092719B
Authority
CN
China
Prior art keywords
daily record
data
critical data
district
critical
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.)
Active
Application number
CN201110336102.7A
Other languages
English (en)
Other versions
CN103092719A (zh
Inventor
姚国勤
陈小军
吴立
潘海江
杨斌
张兴明
傅利泉
朱江明
吴军
吴坚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang Dahua Technology Co Ltd
Original Assignee
Zhejiang Dahua Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Zhejiang Dahua Technology Co Ltd filed Critical Zhejiang Dahua Technology Co Ltd
Priority to CN201110336102.7A priority Critical patent/CN103092719B/zh
Publication of CN103092719A publication Critical patent/CN103092719A/zh
Application granted granted Critical
Publication of CN103092719B publication Critical patent/CN103092719B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明涉及一种文件***的断电保护方法,包括:1.一种文件***的断电保护方法,其特征在于,该方法包括以下步骤:将文件***在运行过程中可能会修改的关键数据都保存两份,对应为关键数据区一和关键数据区二;写日志,包括:把关键数据中需要修改的数据的地址以及数据的长度记录到日志中;同步计数更新一次;以及计算校验码;把日志保存到日志区一,对应为日志一;在关键数据区一修改数据;把日志保存到日志区二,对应为日志二;在关键数据区二修改数据;以及,在断电重启后数据的恢复步骤包括:读取日志一和日志二,校验日志一和日志二的完整性,根据日志一和日志二的完整性以及日志一和日志二的日志记录的信息来恢复关键数据。

Description

一种文件***的断电保护方法
技术领域
本发明涉及信息处理技术领域,尤其涉及文件***的断电保护方法。
背景技术
在数字化音视频监控领域,随着嵌入式技术的发展,嵌入式数字硬盘录像机(EDVR,Embedded Digital Video Recorder)在性能、功能、适用性、可维护性、稳定性各方面有了根本性的改善,因此其应用领域也越来越广,从最初的金融领域发展到交通、公安、电力、移动车载、采矿等各种应用场所。随着应用环境的多样化、复杂化,对嵌入式数字硬盘录像机的可靠性和故障恢复能力提出了更高的要求。
常见的嵌入式硬盘录像机无法正常录像或丢失录像文件主要是由于***异常掉电等原因引起的文件***关键信息丢失或不完整等原因导致的错误。
传统的文件***,如fat32、ext3等在异常断电这块做的并不是很好,经常在多次异常断电后出现大量文件丢失,或者文件***遭到破坏无法再恢复。其主要原因是文件***在更新关键数据时发生断电,此时就可能造成文件丢失,或者文件***关键数据不完整造成文件***不可用的情况。针对这一问题,目前已有一种解决办法就是在格式化时把文件***关键数据一次性写完,以后就不再修改,这种方法会使文件***不具有通用性,不能适用很多应用场景。
发明内容
为克服上述不足,本发明提供了一种文件***的断电保护方法,该方法包括以下步骤:
将文件***在运行过程中可能会修改的关键数据都保存两份,对应为关键数据区一和关键数据区二;
写日志,所述日志记录的信息包括关键数据中需要修改的数据的地址以及数据的长度;同步计数,关键数据每修改一次,同步计数更新一次;以及校验码,该校验码用于确认该条日志是否完整;
所述写日志的步骤包括:把关键数据中需要修改的数据的地址以及数据的长度记录到日志中;同步计数更新一次;以及计算校验码;
把日志保存到日志区一,对应为日志一;
在关键数据区一修改数据;
把日志保存到日志区二,对应为日志二;
在关键数据区二修改数据;
以及,在断电重启后数据的恢复步骤包括:
读取日志一和日志二,校验日志一和日志二的完整性,根据日志一和日志二的完整性以及日志一和日志二的日志记录的信息来恢复关键数据。
通过本发明,保证了异常断电时,文件目录完整,减少文件的丢失,防止文件***因为异常断电造成崩溃。
附图说明
图1是根据本发明一个实施方案的修改关键数据的流程图;
图2是根据本发明一个实施方案的断电恢复的流程图。
具体实施方式
下面结合附图和实例,对本发明的监控存储设备文件***的断电保护方法做进一步阐述。
本发明所采用的技术方案包括硬盘分区格式化、关键数据的修改、断电重启后关键数据的恢复三个方面。
在进行介绍之前,先说明下本发明中的日志中需要记录的信息:1、关键数据中需要修改的地址以及数据的长度,用于记录关键数据中修改了哪些地方,这样在断电恢复的时候只需要把其中一份关键数据中的部分数据写入到另一份就行了,不需要整份关键数据都拷贝过去,可以节省断电恢复的时间;2、同步计数,关键数据每修改一次(这里的一次为一个修改过程,即为两块关键数据区都修改),同步计数更新一次,同步计数多更新一次的日志对应的关键数据更新(例如,同步计数加1,在此情况下,同步计数大的日志对应的那块关键数据更新),同时也用于恢复关键数据时判断哪份数据是完整的;3、校验码,用于确认该条日志是否完整,因为断电也可能发生在写日志的过程中,此时日志可能只写了部分数据,那么这份日志就不是一份完整的日志。
硬盘分区格式化包括:
1.1)、文件***的关键数据都保存两份,分别记为关键数据区一,二。
1.2)、分配出两块区域用于记录日志,分别记为日志区一、二,每块区域记录一份日志。
关键数据的修改过程如下,对应流程图见图1:
2.1)在做修改之前,先在内存中写好日志。把关键数据中需要修改的地址以及数据的长度记录到日志中,同步计数加1,计算校验码。(此处使用CRC校验的方式计算校验码)。但可以理解,任何可以用于实现本发明中所提及的校验码的用意的校验码计算方法都可以使用。如上文所述,本发明中校验码用于确认一条日志是否完整。
2.2)把日志保存到日志区一。
2.3)在关键数据区一修改数据。
2.4)把日志保存到日志区二。
2.5)在关键数据区二修改数据。
断电重启后关键数据的恢复过程如下,对应流程图见图2:
3.1)分别从日志区一、二中读取两份日志,记为日志一、二。
3.2)首先校验这两份日志的完整性,日志的完整性有三种情况:1、在写日志区一的时候发生断电,日志只写入了部分没有完全写入,这种情况日志一是不完整的(对应于校验失败);2、在写日志区二的时候发生断电,日志只写入了部分没有完全写入,这种情况日志二是不完整的(对应于校验失败);3、断电没有发生在写日志区的过程中,这种情况下两份日志都是完整(对应于校验成功)的。
3.3)若日志一不完整,即发生了3.2)中的第一种情况。这种情况说明还没开始写关键数据区,关键数据是完整的,只是最后那份修改的数据丢了。只需要把日志二写到日志区一中就行了。
3.4)若日志二不完整,即发生了3.2)中的第二种情况。这种情况说明关键数据已经成功写入到关键数据区一,还没开始写关键数据区二,需要更新关键数据区二的数据。根据日志一中记录的地址以及数据长度,从关键数据区一中读取这些数据,写到关键数据区二。然后把日志一写入到日志区二。
3.5)若两块日志都是完整的(即,两块日志的信息都正确),即发生了3.2)中的第三种情况。那么断电可能发生在写关键数据区的时候,光从日志的完整性已经无法分析出关键数据的写入情况了,需要比较两份日志中的的同步计数。两份日志中的同步计数有三种情况:1、在写关键数据区一的时候发生断电,此时日志成功写入到日志区一,还没有写日志区二,这种情况日志一中的同步计数比日志二中的同步计数大1;2、断电发生在写关键数据区二,此时日志成功写入到日志区一、二,这种情况两份日志的同步计数相同;3、断电没有发生在写关键数据区和日志的时候,此时既没写日志也没写关键数据,这种情况两份日志的同步计数也都相同。
3.6)若日志一中的同步计数比日志二中的同步计数大1,即发生了3.5)中的第一种情况。这种情况无法断定关键数据是否已经成功写入到关键数据区一,需要恢复关键数据区一中的修改。根据日志一中记录的地址以及数据长度,从关键数据区二中读取这些数据,写到关键数据区一。然后把日志二写入到日志区一。
3.7)若同步计数相同,无法分辩是发生了3.5)中的第二种还是第三种情况,统一当第二种情况处理,因为如果是第三种情况无非就是多了一次无用的数据拷贝,不影响数据的正确性。这种情况无法断定关键数据是否已经成功写入到关键数据区二,需要更新关键数据区二的数据,此时两份日志的数据是完全相同的。
根据日志(日志一或日志二)中记录的地址以及数据长度,从关键数据区一中读取这些数据,写到关键数据区二。

Claims (1)

1.一种文件***的断电保护方法,其特征在于,该方法包括以下步骤:
将文件***在运行过程中可能会修改的关键数据都保存两份,对应为关键数据区一和关键数据区二;
写日志,所述日志记录的信息包括关键数据中需要修改的数据的地址以及数据的长度;同步计数,关键数据每修改一次,同步计数更新一次;以及校验码,该校验码用于确认该条日志是否完整;
所述写日志的步骤包括:把关键数据中需要修改的数据的地址以及数据的长度记录到日志中;同步计数更新一次;以及计算校验码;
把日志保存到日志区一,对应为日志一;
在关键数据区一修改数据;
把日志保存到日志区二,对应为日志二;
在关键数据区二修改数据;
以及,在断电重启后数据的恢复步骤包括:
读取日志一和日志二,校验日志一和日志二的完整性,根据日志一和日志二的完整性以及日志一和日志二的日志记录的信息来恢复关键数据;
其中,如果校验结果为日志一不完整,日志二完整,则将日志二拷贝给日志一;
如果校验结果为日志一完整,日志二不完整,则根据日志一中记录的地址以及数据长度,从关键数据区一中读取这些数据,写到关键数据区二,然后把日志一写入到日志区二;
如果校验结果为日志一和日志二都完整,以及日志一的同步计数相对于日志二同步计数多更新了一次,则根据日志一中记录的地址以及数据长度,从关键数据区二中读取这些数据,写到关键数据区一,然后把日志二写入到日志区一;如果比较结果为两块日志都完整,以及日志一同步计数与日志二同步计数相同,则根据日志一或二中记录的地址以及数据长度,从关键数据区一中读取这些数据,写到关键数据区二。
CN201110336102.7A 2011-10-28 2011-10-28 一种文件***的断电保护方法 Active CN103092719B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110336102.7A CN103092719B (zh) 2011-10-28 2011-10-28 一种文件***的断电保护方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110336102.7A CN103092719B (zh) 2011-10-28 2011-10-28 一种文件***的断电保护方法

Publications (2)

Publication Number Publication Date
CN103092719A CN103092719A (zh) 2013-05-08
CN103092719B true CN103092719B (zh) 2016-09-07

Family

ID=48205324

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110336102.7A Active CN103092719B (zh) 2011-10-28 2011-10-28 一种文件***的断电保护方法

Country Status (1)

Country Link
CN (1) CN103092719B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105426268B (zh) * 2015-11-16 2018-06-26 北京四方继保自动化股份有限公司 一种防止继电保护装置断电时文件***损坏的方法
CN109857708B (zh) * 2019-02-26 2022-12-23 上海仰歌电子科技有限公司 一种嵌入式***的数据存取方法及计算机可读存储介质
CN111209132B (zh) * 2019-12-31 2023-07-28 航天信息股份有限公司 嵌入式***、掉电保护方法、电子设备及存储介质
CN111428260A (zh) * 2020-06-15 2020-07-17 广东电网有限责任公司佛山供电局 基于芯片化保护装置的文件安全访问控制方法和***
CN113672572B (zh) * 2021-08-28 2024-02-09 芯河半导体科技(无锡)有限公司 一种嵌入式linux***syslog的日志存储方法
CN118069404A (zh) * 2023-09-20 2024-05-24 南宁清智电子科技有限公司 一种掉电不丢失存储方法及相关装置

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1598777A (zh) * 2003-09-17 2005-03-23 三星电子株式会社 更新软件的方法和***
CN1684041A (zh) * 2004-04-14 2005-10-19 华为技术有限公司 随机存储器的数据保存方法
CN1855059A (zh) * 2005-04-21 2006-11-01 中兴通讯股份有限公司 一种在通信设备中保存数据文件的方法
CN101183322A (zh) * 2006-11-16 2008-05-21 三星电子株式会社 延迟日志生成的方法及其设备
CN101681312A (zh) * 2008-02-29 2010-03-24 株式会社东芝 存储器***
CN101706783A (zh) * 2009-11-16 2010-05-12 中兴通讯股份有限公司 一种嵌入式设备文件检测修复方法和装置
CN102024022A (zh) * 2010-11-04 2011-04-20 曙光信息产业(北京)有限公司 一种分布式文件***复制元数据的方法
CN102043686A (zh) * 2009-10-20 2011-05-04 华为技术有限公司 一种内存数据库的容灾方法、备用服务器及***

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7624129B2 (en) * 2006-06-30 2009-11-24 Microsoft Corporation Dual logging of changes to a user preference in a computer device

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1598777A (zh) * 2003-09-17 2005-03-23 三星电子株式会社 更新软件的方法和***
CN1684041A (zh) * 2004-04-14 2005-10-19 华为技术有限公司 随机存储器的数据保存方法
CN1855059A (zh) * 2005-04-21 2006-11-01 中兴通讯股份有限公司 一种在通信设备中保存数据文件的方法
CN101183322A (zh) * 2006-11-16 2008-05-21 三星电子株式会社 延迟日志生成的方法及其设备
CN101681312A (zh) * 2008-02-29 2010-03-24 株式会社东芝 存储器***
CN102043686A (zh) * 2009-10-20 2011-05-04 华为技术有限公司 一种内存数据库的容灾方法、备用服务器及***
CN101706783A (zh) * 2009-11-16 2010-05-12 中兴通讯股份有限公司 一种嵌入式设备文件检测修复方法和装置
CN102024022A (zh) * 2010-11-04 2011-04-20 曙光信息产业(北京)有限公司 一种分布式文件***复制元数据的方法

Also Published As

Publication number Publication date
CN103092719A (zh) 2013-05-08

Similar Documents

Publication Publication Date Title
CN103092719B (zh) 一种文件***的断电保护方法
CN102955720B (zh) 一种提高ext文件***稳定性的方法
CN102207897B (zh) 一种增量备份方法
CN102323930B (zh) 对数据库***中的数据变更进行镜像
CN104811645A (zh) 一种嵌入式录像数据存储方法
US20130332416A1 (en) Reducing data transfers while eliminating data loss for asynchronous replication of databases
CN101815983A (zh) 用于防止硬盘驱动文件***的损坏的方法和***
CN103365766B (zh) 一种文件完整性保护的方法和***
CN105224891A (zh) 磁盘光盘融合数据安全存储方法、***及装置
CN104750755A (zh) 一种数据库主备切换后的数据回补方法及***
CN112925676B (zh) 一种基于wal实现分布式数据库集群任意时间点恢复的方法
CN104166605A (zh) 基于增量数据文件的数据备份方法及***
CN104572762A (zh) 删除及恢复录像文件的方法和装置
WO2017097233A1 (zh) 一种数据存储负载的容错方法及iptv***
CN114020686A (zh) 基于差异日志的文件快照同步方法、***、设备和介质
CN203260027U (zh) 一种备份装置及数据备份***
JP2005050073A (ja) データ復旧方法およびデータ記録装置
US7600151B2 (en) RAID capacity expansion interruption recovery handling method and system
CN105653385B (zh) 一种车载录像方法
CN101916234A (zh) 一种存储设备的信息维护方法及***
CN111460035A (zh) 一种数据库***及其容灾方法
CN103902227A (zh) 一种支持追加写和共享读的文件存储方式
CN104239182B (zh) 一种集群文件***脑裂处理方法和装置
CN105993002A (zh) 就地的盘去格式化
CN105489236A (zh) 一种基于分区存储保证软件可靠性的u盘及使用方法

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