一种数据可靠性的存储及恢复方法、系统及存储装置与流程

文档序号:13564654阅读:225来源:国知局

本发明涉及数据存储领域,具体涉及一种数据可靠性的存储及恢复方法、系统及存储装置。



背景技术:

在软件系统中,经常会用到数据存储或数据更新,数据的大小通常不少于一个存储单元,整个数据块一起完整保存才是一个完整的存储过程,数据保存才是完整的。

如果在数据存储过程中,出现意外情况,如掉电、存储过程意外终止等,就会导致存储的数据一部分被更新,另一部分没有被更新,数据出现不完整的情况。



技术实现要素:

本发明要解决的技术问题在于,针对现有技术的上述缺陷,提供一种数据可靠性的存储及恢复方法,解决数据存储过程中,数据出现不完整情况的问题。

本发明要解决的技术问题在于,针对现有技术的上述缺陷,提供一种数据可靠性的存储及恢复系统,解决数据存储过程中,数据出现不完整情况的问题。

本发明要解决的技术问题在于,针对现有技术的上述缺陷,提供一种存储装置,解决数据存储过程中,数据出现不完整情况的问题。

本发明解决其技术问题所采用的技术方案是:提供一种数据可靠性的存储及恢复方法,所述存储及恢复方法包括步骤:

在数据存储区中设置存储空间大小一致的第一存储区和第二存储区,以及在第一存储区和第二存储区中均存储一相同的数据信息;其中,数据存储区进行数据更新时,先更新第一存储区的数据信息再更新第二存储区;

以及,分别对第一存储区和第二存储区的数据信息进行完整性校验;

若第一存储区的数据信息完整而第二存储区的数据信息不完整,将第一存储区的数据信息拷贝至第二存储区;若第一存储区的数据信息不完整而第二存储区的数据信息完整,将第二存储区的数据信息拷贝至第一存储区。

其中,较佳方案是,所述存储及恢复方法还包括步骤:

分别对第一存储区和第二存储区的数据信息进行错误识别校验;

若第一存储区的数据信息错误而第二存储区的数据信息没有错误,将第二存储区的数据信息拷贝至第一存储区;若第一存储区的数据信息没有错误而第二存储区的数据信息错误,将第一存储区的数据信息拷贝至第二存储区。

其中,较佳方案是,所述存储及恢复方法还包括:

采用相同的校验方法分别对第一存储区和第二存储区的数据信息进行校验;

并获得对应的校验码。

其中,较佳方案是:所述校验方法包括crc、md5或checksum中的一种。

其中,较佳方案是,所述存储及恢复方法包括:

获取第一存储区的数据信息的第一校验码,以及获取第二存储区的数据信息的第二校验码;

若第一存储区的数据信息完整,并且第二存储区的数据信息也完整,比较第一校验码是否与第二校验码相同;

若第一校验码与第二校验码不相同,将第一存储区的数据信息拷贝至第二存储区。

其中,较佳方案是:若第一存储区的数据信息不完整,并且第二存储区的数据信息也不完整,将第一存储区和第二存储区均设置为初始默认值。

其中,较佳方案是:所述存储及恢复方法还包括步骤:

通过校验方法获取预存储数据信息的校验码;

数据存储区进行数据更新,先更新第一存储区的数据信息再更新第二存储区。

本发明解决其技术问题所采用的技术方案是:提供一种数据可靠性的存储及恢复系统,所述存储及恢复系统包括主控单元和数据存储单元,所述主控单元包括更新模块、拷贝模块、判断模块和校验模块,所述数据存储单元包括第一存储模块和第二存储模块,所述第一存储模块和第二存储模块的存储空间大小一致,以及在第一存储模块和第二存储模块中均存储一相同的数据信息;其中,

所述更新模块对数据存储单元进行数据更新,先更新第一存储模块的数据信息,再更新第二存储模块的数据信息;

所述校验模块分别对第一存储模块和第二存储模块的数据信息进行完整性校验;

所述判断模块在第一存储模块的数据信息完整而第二存储模块的数据信息不完整时,控制拷贝模块将第一存储模块的数据信息拷贝至第二存储模块;以及,所述判断模块在第一存储模块的数据信息不完整而第二存储模块的数据信息完整时,控制拷贝模块将第二存储模块的数据信息拷贝至第一存储模块。

其中,较佳方案是:所述校验模块还分别对第一存储模块和第二存储模块的数据信息进行错误识别校验;所述判断模块在第一存储模块的数据信息错误而第二存储模块的数据信息没有错误时,控制拷贝模块将第二存储模块的数据信息拷贝至第一存储模块;所述判断模块在第一存储模块的数据信息没有错误而第二存储模块的数据信息错误时,控制拷贝模块将第一存储模块的数据信息拷贝至第二存储模块。

本发明解决其技术问题所采用的技术方案是:提供一种存储装置,其特征在于:所述存储装置存储有计算机程序,所述计算机程序能够被执行以实现所述存储及恢复方法的步骤。

本发明的有益效果在于,与现有技术相比,本发明通过设计一种数据可靠性的存储及恢复方法、系统及存储装置,分别对第一存储区和第二存储区的数据信息进行完整性校验,可以保证数据在存储过程中出现意外,数据不完整时,自动恢复正确数据,保证数据的完整性,正确性;以及,提高系统的可靠性以及容错能力。

附图说明

下面将结合附图及实施例对本发明作进一步说明,附图中:

图1是本发明存储及恢复方法的流程示意图;

图2是本发明基于错误识别的存储及恢复方法的结构示意图;

图3是本发明基于校验码的存储及恢复方法的结构示意图;

图4是本发明存储及恢复系统的结构示意图;

图5是本发明基于错误识别的存储及恢复系统的结构示意图。

具体实施方式

现结合附图,对本发明的较佳实施例作详细说明。

如图1所示,本发明提供一种数据可靠性的存储及恢复方法的优选实施例。

一种数据可靠性的存储及恢复方法,包括步骤:

步骤s10、在数据存储区中设置存储空间大小一致的第一存储区和第二存储区;

步骤s20、数据存储区进行数据更新时,先更新第一存储区的数据信息再更新第二存储区;

步骤s30、分别对第一存储区和第二存储区的数据信息进行完整性校验;

步骤s31、获取第一存储区的数据信息是否完整,若不完整跳到步骤s32,否则跳到步骤s33;

步骤s32、获取第二存储区的数据信息是否完整,若不完整跳到步骤s34,否则跳到步骤s35;

步骤s33、获取第二存储区的数据信息是否完整,若不完整跳到步骤s36,否则结束流程;

步骤s34、将第一存储区和第二存储区均设置为初始默认值,并结束流程;

步骤s35、将第二存储区的数据信息拷贝至第一存储区,并结束流程;

步骤s36、将第一存储区的数据信息拷贝至第二存储区,并结束流程。

具体地,在数据存储区中设置存储空间大小一致的第一存储区和第二存储区,以及在第一存储区和第二存储区中均存储一相同的数据信息;其中,数据存储区进行数据更新时,先更新第一存储区的数据信息再更新第二存储区;以及,分别对第一存储区和第二存储区的数据信息进行完整性校验;若第一存储区的数据信息完整而第二存储区的数据信息不完整,将第一存储区的数据信息拷贝至第二存储区;若第一存储区的数据信息不完整而第二存储区的数据信息完整,将第二存储区的数据信息拷贝至第一存储区。

进一步地,采用相同的校验方法分别对第一存储区和第二存储区的数据信息进行校验;并获得对应的校验码。

优选地,所述校验方法包括crc、md5或checksum中的一种。其中,循环冗余校验(cyclicredundancycheck,crc)是一种根据网络数据包或电脑文件等数据产生简短固定位数校验码的一种散列函数,主要用来检测或校验数据传输或者保存后可能出现的错误。它是利用除法及余数的原理来作错误侦测的。

以及,messagedigestalgorithmmd5(中文名为消息摘要算法第五版)为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护。md5即message-digestalgorithm5(信息-摘要算法5),用于确保信息传输完整一致。是计算机广泛使用的杂凑算法之一(又译摘要算法、哈希算法),主流编程语言普遍已有md5实现。将数据(如汉字)运算为另一固定长度值,是杂凑算法的基础原理,md5的前身有md2、md3和md4。

以及,checksum:【电脑】总和检验码,校验和。在数据处理和数据通信领域中,用于校验目的的一组数据项的和。这些数据项可以是数字或在计算检验总和过程中看作数字的其它字符串。

如图2所示,本发明提供一种数据可靠性的存储及恢复方法的较佳实施例。

一种数据可靠性的存储及恢复方法,包括步骤:

步骤s10、在数据存储区中设置存储空间大小一致的第一存储区和第二存储区;

步骤s20、数据存储区进行数据更新时,先更新第一存储区的数据信息再更新第二存储区;

步骤s40、分别对第一存储区和第二存储区的数据信息进行错误识别校验;

步骤s41、获取第一存储区的数据信息是否正确,若错误跳到步骤s42,否则跳到步骤s43;

步骤s42、获取第二存储区的数据信息是否正确,若错误跳到步骤s44,否则跳到步骤s45;

步骤s43、获取第二存储区的数据信息是否正确,若错误跳到步骤s46,否则结束流程;

步骤s44、将第一存储区和第二存储区均设置为初始默认值,并结束流程;

步骤s45、将第二存储区的数据信息拷贝至第一存储区,并结束流程;

步骤s46、将第一存储区的数据信息拷贝至第二存储区,并结束流程。

具体地,分别对第一存储区和第二存储区的数据信息进行错误识别校验;若第一存储区的数据信息错误而第二存储区的数据信息没有错误,将第二存储区的数据信息拷贝至第一存储区;若第一存储区的数据信息错误而第二存储区的数据信息没有错误,将第二存储区的数据信息拷贝至第一存储区。

在本实施例中,优先校验数据信息的完整性,再进行错误识别校验,提高数据可靠性,以及数据正确性。

如图3所示,本发明提供一种数据可靠性的存储及恢复方法的较佳实施例。

步骤s10、在数据存储区中设置存储空间大小一致的第一存储区和第二存储区;

步骤s20、数据存储区进行数据更新时,先更新第一存储区的数据信息再更新第二存储区;

步骤s50、分别对第一存储区和第二存储区的数据信息进行校验;

步骤s51、获取第一存储区的数据信息是否通过校验,若不通过跳到步骤s52,否则跳到步骤s53;

步骤s52、获取第二存储区的数据信息是否通过校验,若不通过跳到步骤s55,否则跳到步骤s56;

步骤s53、获取第二存储区的数据信息是否通过校验,若不通过跳到步骤s57,否则跳到步骤s54;

步骤s54、第一存储区的校验码是否与第二存储去的校验码相同,若不相同跳到步骤s57,否则结束流程。

步骤s55、将第一存储区和第二存储区均设置为初始默认值,并结束流程;

步骤s56、将第二存储区的数据信息拷贝至第一存储区,并结束流程;

步骤s57、将第一存储区的数据信息拷贝至第二存储区,并结束流程。

在本实施例中,校验是否通过与数据信息是否完整有关,若数据信息完整即校验通过;或者,校验是否通过与数据信息是否完整以及正确与否有关,若数据信息完整及正确即校验通过,当有一项不能通过,例如数据信息不完整或者数据信息错误。

其中,数据校验码可以是crc值,也可以是md5值或者是校验和。

以及,在获取数据信息时,通过校验方法获取预存储数据信息的校验码;数据存储区进行数据更新,先更新第一存储区的数据信息再更新第二存储区。

通过存储两个相同的区域并选用合适的算法,可以验证数据的完整性并识别数据错误,将完整的数据覆盖错误数据,保证数据存储的完整性以及正确性。

如图4和图5所示,本发明提供一种数据可靠性的存储及恢复系统的优选实施例。

一种数据可靠性的存储及恢复系统,所述存储及恢复系统包括主控单元10和数据存储单元20,所述主控单元10包括更新模块11、拷贝模块12、判断模块13和校验模块14,所述数据存储单元20包括第一存储模块21和第二存储模块22,所述第一存储模块21和第二存储模块22的存储空间大小一致,以及在第一存储模块21和第二存储模块22中均存储一相同的数据信息;其中,

所述更新模块11对数据存储单元20进行数据更新,先更新第一存储模块21的数据信息,再更新第二存储模块22的数据信息;所述校验模块14分别对第一存储模块21和第二存储模块22的数据信息进行完整性校验;所述判断模块13在第一存储模块21的数据信息完整而第二存储模块22的数据信息不完整时,控制拷贝模块12将第一存储模块21的数据信息拷贝至第二存储模块22;以及,所述判断模块13在第一存储模块21的数据信息不完整而第二存储模块22的数据信息完整时,控制拷贝模块12将第二存储模块21的数据信息拷贝至第一存储模块22。

进一步地,所述校验模块14还分别对第一存储模块21和第二存储模块22的数据信息进行错误识别校验;所述判断模块13在第一存储模块21的数据信息错误而第二存储模块22的数据信息没有错误时,控制拷贝模块12将第二存储模块21的数据信息拷贝至第一存储模块22;所述判断模块13在第一存储模块21的数据信息没有错误而第二存储模块22的数据信息错误时,控制拷贝模块12将第一存储模块22的数据信息拷贝至第二存储模块21。

在本实施例中,采用相同的校验方法分别对第一存储模块21和第二存储模块22的数据信息进行校验;并获得对应的校验码。优选地,所述校验方法包括crc、md5或checksum中的一种。

在本实施例中,主控单元10可以为可编程处理器,数据存储单元20可以为存储设备或硬盘,当然为了节省空间,数据存储单元20也可以为主控单元10的内部存储器。

在本发明中,提供一种存储装置。

所述存储装置存储有计算机程序,所述计算机程序能够被执行以实现所述存储及恢复方法的步骤。

具体地,本发明可以广泛应用于需要数据存储的控制系统,或者应用系统中。

以上所述者,仅为本发明最佳实施例而已,并非用于限制本发明的范围,凡依本发明申请专利范围所作的等效变化或修饰,皆为本发明所涵盖。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1