CN101201768A - 数据保存的方法和模块、数据恢复的方法和模块 - Google Patents
数据保存的方法和模块、数据恢复的方法和模块 Download PDFInfo
- Publication number
- CN101201768A CN101201768A CNA2006101649999A CN200610164999A CN101201768A CN 101201768 A CN101201768 A CN 101201768A CN A2006101649999 A CNA2006101649999 A CN A2006101649999A CN 200610164999 A CN200610164999 A CN 200610164999A CN 101201768 A CN101201768 A CN 101201768A
- Authority
- CN
- China
- Prior art keywords
- file
- recovery
- operation steps
- recovery file
- data
- 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.)
- Pending
Links
Images
Abstract
本发明公开了一种保存数据的方法,可实现将数据恢复到灾难发生前的一次操作的状态。所述的方法包括:在新建或打开文件的同时,新建基础恢复文件;在恢复基础文件上标记恢复识别码,并设置当前打开文件的文件名和路径信息,形成恢复文件;获得操作步骤,并将操作步骤以增量方式写入所述恢复文件中。本发明还公开了一种数据保存模块,及恢复数据的方法和模块,根据本发明,通过采用增量方式存储各个操作步骤,可以提供灵活的恢复方式,且可以恢复到灾难发生前一步之前的任何步骤。本发明只需要一个副本文件,所以还节省了磁盘空间。
Description
技术领域
本发明涉及一种数据恢复技术,尤其涉及一种数据保存的方法和模块、数据恢复的方法和模块。
背景技术
在各种编辑软件中,如,如专业排版软件、通用字处理软件,人们常常利用这些编辑软件完成许多复杂而且工作量巨大的工作,有时需要多人协同来完成上述工作。如何保证利用这些编辑软件所做的工作在机器故障、软件和操作系统死机甚至断电的情况下,而不会让所述编辑工作付之东流,通常将上述工作称作数据恢复,数据恢复始终是人们希望解决的问题。
在现有的技术中,有些软件是靠保存文档副本的形式来实现数据恢复的,有的是靠定时自动存盘的方式来实现数据恢复的。但是这些数据恢复方式都有很大的缺陷,对于保存文档副本情况,如果灾难发生在这些副本的保存过程中时,那么这种情况本身就是一种灾难,由于这个副本是错误的,它当然不能恢复出来。对于定时自动存盘情况,由于定时存盘的方式有一定的时间间隔的,也就是说在这次存盘之前发生灾难,那么只能恢复到上次存盘的状态,从上次存盘到灾难发生之间的所有工作就不能恢复。其次,定时存盘的方式为了保证文档具有可恢复性,那么势必要采用多个副本的方式来保存文件,这样就浪费了磁盘空间,而且存盘操作会导致编辑者的操作暂停,会影响编辑效率,影响编辑者的心情。
发明内容
本发明的实施例是提供一种数据保存的方法和模块、及数据恢复的方法和模块,可实现将数据恢复到灾难发生前的一次操作的状态。
本发明提供了一种保存数据的方法,包括:
在新建或打开文件的同时,新建基础恢复文件;
在恢复基础文件上标记恢复识别码,并设置当前打开文件的文件名和路径信息,形成恢复文件;
获得操作步骤,并将操作步骤以增量方式写入所述恢复文件中。
当接收到存储当前打开文件的命令时,所述的方法还包括:更新所述恢复文件中的当前打开文件的文件名和路径信息。
当接收到关闭当前打开文件的命令时,所述的方法还包括:删除恢复文件。
将操作步骤写入恢复文件中时,还为该操作步骤标记相应的校验标志位。
所述的将操作步骤以增量方式写入所述恢复文件中具体包括:
将操作步骤写入恢复文件之前,将该操作步骤的校验标志位设置为无效状态;
将所述操作步骤写入恢复文件中;
将该操作步骤的校验标志位设置为有效状态。
本发明还公开了一种恢复数据的方法,包括:
读取恢复文件,所述的恢复文件包括操作步骤;
根据操作步骤恢复文件。
所述的根据操作步骤恢复文件具体包括:
逐一读取操作步骤;并将读取的各个操作步骤与恢复程度条相对应;
通过恢复程度条确定恢复程度,并根据恢复程度将操作步骤恢复原文件。
所述的根据恢复程度将操作步骤恢复原文件具体包括:在基础恢复文件基础上执行恢复程度之前的操作步骤。
本发明还公开了一种数据保存模块,包括:
文件管理器,用于在新建或打开文件的同时,新建恢复文件,并从撤销/恢复管理器中读取操作步骤,接着以增量方式将操作步骤写入所述恢复文件中;
撤销/恢复管理器,用于获得操作步骤增量,并通知文件管理器有操作步骤的产生。
所述的文件管理器包括:
生成恢复文件单元,用于保存一个当前打开或者新建文件的副本,并在这个副本的后面写上原始文档的名称和路径信息;
保存单元,用于保存操作步骤数据。
所述的文件管理器包括:
删除单元,用于删除恢复文件;
更新单元,用于更新恢复文件的文件信息。
所述的撤销/恢复管理器包括:
获得单元,用于获得操作步骤;
通知单元,用于通知文件管理器有操行步骤产生,以便文件管理器对恢复文件进行更新。
本发明还公开了一种数据恢复模块,包括:
读取单元,用于读取恢复文件;
恢复单元,用于在基础恢复文件基础上执行操作步骤。
本发明的效果在于:本发明通过采用增量方式存储各个操作步骤,可以提供灵活的恢复方式,且可以恢复到灾难发生前一步之前的任何步骤。本发明只需要一个副本文件,所以还节省了磁盘空间。
附图说明
图1是本发明实施例的恢复文件的文件结构图;
图2示出了本发明实施例的数据保存的流程图;
图3示出了本发明实施例的数据恢复的流程图;
图4示出了本发明实施例的数据恢复界面;
图5示出了本发明实施例的数据保存模块;
图6示出了本发明实施例的数据恢复模块。
具体实施方式
为了便于本领域一般技术人员理解和实现本发明,现结合附图描绘本发明的实施例。
图1示出本发明实施例的恢复文件的格式,所述的恢复文件记载了每一步的操作步骤的数据,是恢复的基础,整个恢复过程都是围绕着这个文件进行的。文件的格式分3部分组成:1、基础恢复文件,基础恢复文件就是用户打开的文件或者新建文件的副本,只是文件头部分同普通的文档的文件头部稍有不同,在原文件的头部的后面的保留字段有恢复识别码、文件信息部分偏移量和增量部分偏移量。所述的恢复识别码用于标识该文件为恢复文件,所述的文件信息部分偏移量表示文件信息相对于整个文件头的位置信息,所述的增量部分偏移量表示相对于整个文件的头的位置信息。2、文件信息部分,记录了当前系统被用打开的文档的文件名称,路径等信息,这个被打开的文档就是我们要对其做操作数据存储以防发生灾难的文档,这个信息也就是我们要把发生灾难的文档要恢复到目的地。如果是新建的文件则该信息为空,恢复时按照计算机系统的默认的命名规则命名文档名称。3、增量部分,增量部分包括校验标志位和操作步骤的数据。
恢复文件的命名规则,用UUID(全局唯一标识符)来作为恢复文件的名字,这样避免了名称的重复。把灾难恢复文件放到一个专门的目录里面。名称类似下面所举的情况:{A4B59C3F-A702-4db8-9914-21AE02669D98}.***。
实现数据保存和数据恢复要靠两个管理器来实现:文件管理器和Undo/Redo(撤销/恢复)管理器。文件管理器负责文件的打开、保存等有关于存档文件的操作,并根据Undo/Redo的通知以增量方式存储操作步骤。Undo/Redo管理器用于发现是否有操作步骤,若发现操作步骤,则通知文件管理器。
为了实现两个管理器之间的联系,有多种方式可以选择。如选用代码可复用性比较好的设计模式中的观察者模式,或者两个管理器相互耦合,向对方暴露接口的形式,或者在两个管理器之间加一个中间层来沟通数据和操作等形式来完成。
下面以观察者模式为例来说明上述两个管理器之间的联系。所述的观察者模式是指:让文件管理器派生自观察者类,这样文件管理器就是一个观察者,Undo/Redo管理器派生自观察者管理器,当Undo/Redo管理器发现有操作步骤时发出通知,作为观察者的文件管理器收到通知后,然后调用相应的函数来处理恢复文件的操作。
图2示出了保存数据的方法。下面结合图2描述本发明的保存数据的方法。
步骤301、新建或打开文档。
步骤302、为当前文档生成一个恢复文件的文件名。
步骤303、生成基础恢复文件,然后在基础恢复文件上增加恢复识别码,并增加当前打开文件的文件名和路径信息,以形成恢复文件。
步骤304、文件管理器处于观察状态,这时如果Undo/Redo管理器有操作步骤后,它通知文件管理器。
步骤305、文件管理器从Undo/Redo管理器中读取操作步骤数据并以增量方式将操作步骤写入恢复文件中。
步骤306、接收命令。
步骤307、判断接收到的命令是否为存盘或者另存命令,若是,执行步骤308,否则,执行步骤309。
步骤308、更新恢复文件中的当前文件的文件名和路径信息,并返回步骤305。
步骤309,如果接收的命令为关闭文档命令,则删除恢复文件,因为恢复文件已经完成了它的使命,不再有任何的意义了。
在向恢复文件中以增量方式存储操作步骤时,需要设置校验标志位,以表示本操作步骤是否完整有效。在向恢复文件中写入操作步骤之前,首先将校验标志位设置为无效状态,然后开始写操作步骤,在操作步骤写完之后,将校验标志位设置为有效状态。校验标志位的意义在于在恢复时读取操作步骤的时候,如果发现该操作步骤的校验标志为无效状态时,那么说明以下的数据是不可靠的,就不做恢复。在操作步骤的末尾写上空的ID,表示该操作步骤的结束。
在发生灾难(断电、死机等)以后,可根据本发明保存的数据恢复文件。图3示出了本发明的恢复数据的流程图。下面参照图3描述本发明实施例的数据恢复的方法。
步骤401、运行Windows的API函数来执行命令行来直接打开文件,然后由API函数ProcessShellCommand来执行打开文件的命令行,然后打开文档。
步骤402、在存放灾难恢复文件目录下去搜索有无恢复文件,若无,执行步骤404,否则,执行步骤403。
步骤403、读取灾难恢复文件目录下的恢复文件。
如图5所示,在读取恢复文件时,将恢复文件中的操作步骤与恢复程度条相对应。即,一个操作步骤一个操作步骤的读取,直到读到某个校验标志位为无效状态,或者读到文件尾部没有增量为止,在读取恢复文件的同时统计可恢复的操作步骤的步数。
步骤404、正常启动文档,如打开或新建文档。
步骤405、通过恢复程度条确定恢复程度。
步骤406、判断恢复或关闭,若恢复,则执行步骤407,否则,执行步骤409。
步骤407、将每个操作步骤的数据提取出来,然后生成版面对象或者对某个对象的操作,这些操作可包括3个状态:对象的创建、对象的修改、对象的删除。根据这些操作来更新版面上的对象。从而达到文档恢复的目的。对开发人员来讲,这个还可以起到一个日志的作用,根据每一步的操作来对软件死机做出分析和判断,因为这个对用户的整个操作的一个回放。
步骤408、然后根据恢复文件的文件信息部分(参见图1)所记录的数据,得到原来文档的名称和路径,把生成的新文件放到原来的路径下去,并改称相应的名字,如果原路径不可用就尝试新建该路径下的文件夹,如果不能新建则提示用户存盘到一个新的路径下。如果原文档是新建的文件,没有路径名称,则把该文档恢复到内存中,就像一个新建的文档那样,由用户自己选择存盘的路径。
步骤409、删除灾难恢复文件。
如图4所示,多文档界面的编辑软件每个文档会有一个恢复文件,如果用户在同时编辑多个文档时发生灾难,那么可以同时恢复多个文档。可以通过列表选择要恢复的文档,并且为这个文档设置要恢复到的步骤。
如图5所示,本发明的实施例还公开了一种数据保存模块,包括:文件管理器,用于在新建或打开文件的同时,新建恢复文件,并从Undo/redo管理器中读取操作步骤,接着以增量方式将操作步骤写入所述恢复文件中;Undo/redo管理器,用于获得操作步骤,并通知文件管理器。
所述的文件管理器包括:生成恢复文件名称单元,用于生成一个全局唯一标示符来作为恢复文件的名字;生成恢复文件单元,用于保存一个当前打开或者新建文件的副本,然后调用更新恢复文件信息模块来在这个副本的后面写上原始文档的名称和路径等信息;删除单元,用于删除恢复文件;更新单元,用于更新恢复文件的文件信息;读取操作步骤数据单元,用于读取操作步骤数据;保存单元,用于保存操作步骤数据;恢复操作步骤信息到版面单元,用于将操作步骤信息恢复到版面。
所述的Undo/Redo管理器包括:获得单元,用于获得操作步骤;通知单元,用于通知文件管理器有操行步骤产生,以便文件管理器对恢复文件进行更新。
如图6所示,本发明的实施例还公开了一种数据恢复模块,包括:读取单元,用于读取恢复文件;恢复单元,用于在基础恢复文件基础上执行操作步骤。
虽然通过实施例描绘了本发明,但本领域普通技术人员知道,在不脱离本发明的精神和实质的情况下,就可使本发明有许多变形和变化,本发明的范围由所附的权利要求来限定。
Claims (13)
1.一种保存数据的方法,其特征在于,包括:
在新建或打开文件的同时,新建基础恢复文件;
在恢复基础文件上标记恢复识别码,并设置当前打开文件的文件名和路径信息,形成恢复文件;
获得操作步骤,并将操作步骤以增量方式写入所述恢复文件中。
2.根据权利要求1所述的方法,其特征在于,当接收到存储当前打开文件的命令时,所述的方法还包括:更新所述恢复文件中的当前打开文件的文件名和路径信息。
3.根据权利要求1所述的方法,其特征在于,当接收到关闭当前打开文件的命令时,所述的方法还包括:删除恢复文件。
4.根据权利要求1所述的方法,其特征在于,将操作步骤写入恢复文件中时,还为该操作步骤标记相应的校验标志位。
5.根据权利要求4所述的方法,其特征在于,所述的将操作步骤以增量方式写入所述恢复文件中具体包括:
将操作步骤写入恢复文件之前,将该操作步骤的校验标志位设置为无效状态;
将所述操作步骤写入恢复文件中;
将该操作步骤的校验标志位设置为有效状态。
6.一种恢复数据的方法,其特征在于,包括:
读取恢复文件,所述的恢复文件包括操作步骤;
根据操作步骤恢复文件。
7.根据权利要求6所述的方法,其特征在于,所述的根据操作步骤恢复文件具体包括:
逐一读取操作步骤;并将读取的各个操作步骤与恢复程度条相对应;
通过恢复程度条确定恢复程度,并根据恢复程度将操作步骤恢复原文件。
8.根据权利要求7所述的方法,其特征在于,所述的根据恢复程度将操作步骤恢复原文件具体包括:在基础恢复文件基础上执行恢复程度之前的操作步骤。
9.一种数据保存模块,其特征在于,包括:
文件管理器,用于在新建或打开文件的同时,新建恢复文件,并从撤销/恢复管理器中读取操作步骤,接着以增量方式将操作步骤写入所述恢复文件中;
撤销/恢复管理器,用于获得操作步骤增量,并通知文件管理器有操作步骤的产生。
10.根据权利要求9所述的数据保存模块,其特征在于,所述的文件管理器包括:
生成恢复文件单元,用于保存一个当前打开或者新建文件的副本,并在这个副本的后面写上原始文档的名称和路径信息;
保存单元,用于保存操作步骤数据。
11.根据权利要求9所述的数据保存模块,其特征在于,所述的文件管理器包括:
删除单元,用于删除恢复文件;
更新单元,用于更新恢复文件的文件信息。
12.根据权利要求9所述的数据保存模块,其特征在于,所述的撤销/恢复管理器包括:
获得单元,用于获得操作步骤;
通知单元,用于通知文件管理器有操行步骤产生,以便文件管理器对恢复文件进行更新。
13.一种数据恢复模块,其特征在于,包括:
读取单元,用于读取恢复文件;
恢复单元,用于在基础恢复文件基础上执行操作步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2006101649999A CN101201768A (zh) | 2006-12-11 | 2006-12-11 | 数据保存的方法和模块、数据恢复的方法和模块 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2006101649999A CN101201768A (zh) | 2006-12-11 | 2006-12-11 | 数据保存的方法和模块、数据恢复的方法和模块 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101201768A true CN101201768A (zh) | 2008-06-18 |
Family
ID=39516943
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2006101649999A Pending CN101201768A (zh) | 2006-12-11 | 2006-12-11 | 数据保存的方法和模块、数据恢复的方法和模块 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101201768A (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102073682A (zh) * | 2010-12-21 | 2011-05-25 | 厦门市美亚柏科信息股份有限公司 | 一种基于编码方式的文档数据恢复系统及其快速恢复方法 |
CN102073553A (zh) * | 2009-11-24 | 2011-05-25 | 新奥特(北京)视频技术有限公司 | 一种文件恢复的方法和装置 |
CN103034565A (zh) * | 2012-12-05 | 2013-04-10 | 上海创图网络科技发展有限公司 | 一种大规模3d数据编辑期的灾难恢复方法 |
CN103370692A (zh) * | 2012-11-21 | 2013-10-23 | 华为技术有限公司 | 一种修复数据的方法及装置 |
CN105302674A (zh) * | 2015-11-24 | 2016-02-03 | 贵州联科卫信科技有限公司 | 一种关于电子病历编辑器文档恢复的方法 |
CN108226590A (zh) * | 2017-12-27 | 2018-06-29 | 深圳市科陆电子科技股份有限公司 | 一种结算电能表掉电数据的方法及系统 |
CN111046004A (zh) * | 2019-12-24 | 2020-04-21 | 上海达梦数据库有限公司 | 一种数据文件存储方法、装置、设备及存储介质 |
CN111143123A (zh) * | 2019-12-12 | 2020-05-12 | 广州兴森快捷电路科技有限公司 | 一种恢复未保存数据的方法及装置 |
CN111352909A (zh) * | 2019-05-07 | 2020-06-30 | 鸿合科技股份有限公司 | 一种文件保存及加载方法、设备、电子设备及存储介质 |
CN113868028A (zh) * | 2020-06-30 | 2021-12-31 | 华为技术有限公司 | 一种在数据节点上回放日志的方法、数据节点及系统 |
-
2006
- 2006-12-11 CN CNA2006101649999A patent/CN101201768A/zh active Pending
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102073553A (zh) * | 2009-11-24 | 2011-05-25 | 新奥特(北京)视频技术有限公司 | 一种文件恢复的方法和装置 |
CN102073682A (zh) * | 2010-12-21 | 2011-05-25 | 厦门市美亚柏科信息股份有限公司 | 一种基于编码方式的文档数据恢复系统及其快速恢复方法 |
CN102073682B (zh) * | 2010-12-21 | 2012-11-21 | 厦门市美亚柏科信息股份有限公司 | 一种基于编码方式的文档数据恢复系统及其快速恢复方法 |
US9983941B2 (en) | 2012-11-21 | 2018-05-29 | Huawei Technologies Co., Ltd. | Method and apparatus for recovering data |
WO2014078997A1 (zh) * | 2012-11-21 | 2014-05-30 | 华为技术有限公司 | 一种修复数据的方法及装置 |
CN103370692A (zh) * | 2012-11-21 | 2013-10-23 | 华为技术有限公司 | 一种修复数据的方法及装置 |
CN103370692B (zh) * | 2012-11-21 | 2016-06-29 | 华为技术有限公司 | 一种修复数据的方法及装置 |
CN103034565A (zh) * | 2012-12-05 | 2013-04-10 | 上海创图网络科技发展有限公司 | 一种大规模3d数据编辑期的灾难恢复方法 |
CN105302674B (zh) * | 2015-11-24 | 2019-01-01 | 贵州联科卫信科技有限公司 | 一种关于电子病历编辑器文档恢复的方法 |
CN105302674A (zh) * | 2015-11-24 | 2016-02-03 | 贵州联科卫信科技有限公司 | 一种关于电子病历编辑器文档恢复的方法 |
CN108226590A (zh) * | 2017-12-27 | 2018-06-29 | 深圳市科陆电子科技股份有限公司 | 一种结算电能表掉电数据的方法及系统 |
CN108226590B (zh) * | 2017-12-27 | 2021-06-01 | 深圳市科陆电子科技股份有限公司 | 一种结算电能表掉电数据的方法及系统 |
CN111352909A (zh) * | 2019-05-07 | 2020-06-30 | 鸿合科技股份有限公司 | 一种文件保存及加载方法、设备、电子设备及存储介质 |
CN111143123A (zh) * | 2019-12-12 | 2020-05-12 | 广州兴森快捷电路科技有限公司 | 一种恢复未保存数据的方法及装置 |
CN111046004A (zh) * | 2019-12-24 | 2020-04-21 | 上海达梦数据库有限公司 | 一种数据文件存储方法、装置、设备及存储介质 |
CN111046004B (zh) * | 2019-12-24 | 2020-07-31 | 上海达梦数据库有限公司 | 一种数据文件存储方法、装置、设备及存储介质 |
CN113868028A (zh) * | 2020-06-30 | 2021-12-31 | 华为技术有限公司 | 一种在数据节点上回放日志的方法、数据节点及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101201768A (zh) | 数据保存的方法和模块、数据恢复的方法和模块 | |
CN100498796C (zh) | 逻辑日志生成方法、数据库备份/恢复方法与系统 | |
CN104679772B (zh) | 分布式数据仓库中删除文件的方法、装置、设备及系统 | |
CN103092905B (zh) | 使用虚拟文件数据对象的列式数据库 | |
US7680843B1 (en) | Method and system to offload archiving process to a secondary system | |
US8250033B1 (en) | Replication of a data set using differential snapshots | |
CN105574187B (zh) | 一种异构数据库复制事务一致性保障方法及系统 | |
US6510552B1 (en) | Apparatus for keeping several versions of a file | |
CN102388369B (zh) | 源自单一备份的粒度应用程序数据的生命周期 | |
JP2005512191A (ja) | 大容量記憶システムの選択されたデータのスナップショットを保存するためのバックアップ方法 | |
KR20050009696A (ko) | 재난 복구 방법 및 시스템 | |
CN102142024A (zh) | 在分布式数据库中使用递增捕捉来进行逻辑数据备份和回退 | |
US8762347B1 (en) | Method and apparatus for processing transactional file system operations to enable point in time consistent file data recreation | |
CN102402562A (zh) | 数据库异地容灾方法及系统 | |
CN107729177A (zh) | 基于云存储的备份数据存储管理方法、装置和系统 | |
CN107229540A (zh) | 一种基于时间点的数据库恢复方法及系统 | |
CN108255638A (zh) | 一种快照回滚方法及装置 | |
CN104166605A (zh) | 基于增量数据文件的数据备份方法及系统 | |
CN108614876A (zh) | 一种基于Redis数据库的系统和数据处理方法 | |
CN112800019A (zh) | 基于Hadoop分布式文件系统的数据备份方法及系统 | |
CN110737504B (zh) | 一种深度学习模型训练容错方法、系统、终端及存储介质 | |
CN103544097B (zh) | 嵌入式系统的日志存储方法、系统及日志读取方法和系统 | |
US8255367B2 (en) | File management apparatus, method, and program | |
US20050262033A1 (en) | Data recording apparatus, data recording method, program for implementing the method, and program recording medium | |
CN107562898A (zh) | 一种基于kux操作系统创建回收站的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Open date: 20080618 |