CN101593185A - 利用同步进行数据恢复的方法和系统 - Google Patents
利用同步进行数据恢复的方法和系统 Download PDFInfo
- Publication number
- CN101593185A CN101593185A CNA2008101088758A CN200810108875A CN101593185A CN 101593185 A CN101593185 A CN 101593185A CN A2008101088758 A CNA2008101088758 A CN A2008101088758A CN 200810108875 A CN200810108875 A CN 200810108875A CN 101593185 A CN101593185 A CN 101593185A
- Authority
- CN
- China
- Prior art keywords
- data
- record
- change type
- merging
- change
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开一种利用同步进行数据恢复的方法,包括:记录数据记录的变化历史;响应于接收到的数据恢复请求,查询所需要恢复的数据记录的历史目标版本,合并所述数据记录的历史目标版本与当前版本之间的变化历史;发送所述合并结果。本发明通过高效的合并方法合并数据记录的目标版本与当前版本之间的变化历史,并通过远程同步发送数据记录中变化的字段,节省了大量存储资源,实现了一种高效且方便的数据恢复方法。
Description
技术领域
本发明涉及数据恢复的方法和系统,特别涉及利用同步进行数据恢复的方法和系统。
背景技术
近年来,随着各类移动设备(如智能手机,个人数字助理,笔记本电脑等)的广泛使用,在机场、高级写字楼、图书馆、餐馆或咖啡馆里,移动办公的人士比比皆是。移动设备的用户实际上可以作为系统服务器的一个客户机,客户机所取得的现场资料需要与系统服务器数据库同步,当存在数据的多个副本时,这些副本需要保持一致性,一旦断开连接,服务器与每个客户机都可以修改各自的数据。
实际中,在服务器端的管理员发现来自客户端的最新数据存在问题时,常常需要客户端的数据恢复到历史某个时间点的版本。例如,客户机端数据库需要远程数据库恢复,传统的RDBMS系统可以包含归档日志(archivelog),归档日志将支持数据库恢复,然而,移动数据库系统中不具有类似的本地归档日志以及支持数据库恢复的能力。再例如,在系统升级过程中,客户机从服务器端得到新版本的数据和新版本的应用,然而,升级后的数据和升级后的应用无法工作,为了正常使用客户端旧的应用,需要客户端的数据降级到旧版本。在要求相同组群的所有客户机都具有来自服务器的相同数据版本的情况下,一个客户机的升级失败将导致相同组群的所有客户机都降级到同一数据版本。
在传统数据恢复系统中,存在解决部分上述问题的方法,客户机可以使用备份工具在同步之前备份客户端数据的副本,在同步之后如果需要返回到之前的状态,就使用备份的副本恢复本地数据库。然而,系统需要额外的存储开销,并且每次都需要恢复整个数据库,耗费了大量的存储资源和时间。并且在上述两个例子的情形下,每次同步之前都进行备份也不现实,因此这种数据恢复系统的效率非常低下。
因此,需要一种改进的、提高效率的方法来支持客户机端的数据恢复到之前的某个历史状态。
发明内容
为了解决上述问题,本发明设计了一种利用同步进行数据恢复的方法和系统。
根据本发明的一个方面,提供一种利用同步进行数据恢复的方法,包括:记录数据记录的变化历史;响应于接收到的数据恢复请求,查询所需要恢复的数据记录的历史目标版本,合并所述数据记录的历史目标版本与当前版本之间的变化历史;发送所述合并结果。
根据本发明的另一方面,提供一种利用同步进行数据恢复的系统,包括:记录装置,用于记录数据记录的变化历史;同步引擎,响应于接收到的数据恢复请求,查询所需要恢复的数据记录的历史目标版本,合并所述数据记录的目标版本与当前版本之间的变化历史,并发送所述合并结果。
本发明的方法通过记录数据记录的变化历史,在进行数据恢复时使用高效的合并方法合并数据记录的变化历史,仅仅发送数据记录中变化的字段,从而节省了大量存储资源。本发明的数据恢复方法仅将当前版本与历史目标版本之间的差异进行恢复,是一种高效率的增量数据恢复。且该方法使得移动设备可以通过无线网络随时随地通过同步进行恢复,是一种易于使用的数据恢复方法。
附图简述
结合附图,通过参考下列详细的示例性实施例的描述,将会更好地理解本发明本身、优选的实施方式以及本发明的目的和优点,其中
图1示出本发明的利用同步进行数据恢复的方法流程图;
图2示出根据本发明的服务器与客户机之间利用同步进行数据恢复的系统示意图;
图3示出根据本发明的服务器与客户机之间利用同步进行数据恢复的方法流程图;
图4示出标识客户机同步方向的全局同步控制表;
图5示出包含服务器端全部数据记录历史版本的全局数据记录版本表;
图6A示出服务器端源数据表的示例;
图6B示出服务器端的历史表模式;
图6C示出服务器端第一次加载源数据表的历史表的示例;
图7A示出服务器端第一次发生变化之后的源数据表的示例;
图7B示出服务器端第二次加载源数据表的历史表的示例;
图8示出对于每个源数据表的客户机版本历史表
图9示出根据本发明的利用数据记录的变化历史进行合并的方法流程图;
图10详细描述了图9中合并数据记录的工作过程流程图;
图11示出使用图10中的方法进行合并的示例;
图12示出本发明处理客户机自身发起的变化对服务器和其它客户机的影响的流程图;
图13示出根据本发明的服务器与客户机之间利用同步进行数据恢复的系统示意图。
具体实施方式
下面结合附图详细描述本发明的数据恢复方法和系统。
本发明的数据恢复方法涉及存储在任何存储介质的数据记录,数据记录包括多个表示数据记录属性、特征的字段。根据本发明的数据记录能够利用某种属性或特征来唯一标识,例如可以在数据记录中创建一个字段,这个字段的值是某种形式的唯一数值(如时间戳),用这个数值来唯一标识数据记录。
参照图1描述本发明的利用同步进行数据恢复的方法,在步骤101,记录数据记录的变化历史;在步骤102,响应于接收到的数据恢复请求,查询所需要恢复的历史目标版本,合并所述数据记录的历史目标版本与当前版本之间的变化历史;在步骤103发送所述合并结果。
根据本发明的实施例,所述数据记录的变化历史为数据字段的变化历史。所述变化历史通过变化类型、变化位以及版本号来记录,所述变化类型用于记录所述数据记录变化的变化类型,所述变化位用于记录与所述数据记录的变化类型对应的字段变化状态,并且所述版本号用于标记所述数据记录的有效时间点。
本发明的数据恢复的方法可以应用于服务器与一个客户机之间以及服务器与多个客户机之间的计算机网络系统,在服务器与客户机中存储有数据记录,每个数据记录包括多个表示数据记录属性、特征的字段。图2示出根据本发明的服务器与客户机之间利用同步进行数据恢复的系统示意图,该系统包括服务器200和多个客户机207,210,213,全局数据记录版本表201包含服务器端数据记录的全局版本历史,全局同步控制表202控制所有客户机的同步方向,服务器侧存储有需要与客户机同步的数据记录表203,对于每个数据记录表,存在记录该数据记录表中数据记录变化历史的历史表204,客户机版本历史表205记录每个数据记录表的全部客户机的版本历史。客户机207、220、213分别存储有数据记录表208、211、214,所述客户机端数据记录表包含与服务器侧的数据记录表相同或部分相同的数据。历史表204和数据记录表208、211、214分别记录服务器端和客户机端数据记录的变化类型和变化位,从而记录服务器端和客户机端数据记录的变化状态。服务器包括同步引擎206,客户机207、220、213分别包括同步引擎209、212、215,服务器同步引擎与客户机同步引擎可以进行通信来执行双向数据同步。
图3示出本发明的在服务器与客户机之间利用同步进行数据恢复的流程图。在步骤301,系统管理员利用管理工具设置同步方向和历史时间标签,历史时间标签指向数据恢复到之前同步的某个历史时间点,对于每个客户机,同步方向可以向前、向后以及保持当前的状态,向前同步即将数据同步到最新的状态,向后同步,即将数据恢复到之前同步的某个历史时间点;在步骤302,在全局同步控制表中维护每个客户机的同步方向和历史时间标签;在步骤303,客户机端应用可以使用所提供的API接口改变同步方向和历史时间标签;在客户机执行同步时,在步骤304,根据服务器与客户端双方的设置确定同步方向和历史时间标签,通常服务器端的设置将优先于客户端的设置,但是在客户端设置为向后同步的情况下,如果服务器端是正常同步,则客户端的设置将优先考虑;在步骤305,如果确定为向后同步进行数据恢复,则利用客户机版本历史表和历史时间标签查寻客户机的历史目标版本;在步骤306,为了使客户机返回到之前的状态,查询从客户机历史目标版本到当前版本之间的变化历史,合并相同数据记录的多个变化数据记录的变化类型和变化位并产生对于客户机当前数据记录的增量变化字段。在步骤307,服务器将增量变化字段发送到客户端以恢复到历史目标版本的数据。
图4示出标识客户机同步方向的全局同步控制表,客户机ID表示客户机的标识,方向表示客户机的同步方向,其中方向为1表示正常向前同步,即客户机同步到服务器的最新版本,方向为0表示保持当前状态,方向为-1表示客户机进行数据恢复的后向同步。历史时间标签表示数据恢复的历史时间点,在系统管理员设置了客户机的同步方向之后,将数值保存在该表中,并且如果将同步方向设置为-1,则在数据恢复之后,方向将变为默认值1。客户机01被设置为向前同步;客户机02被设置为保持当前状态;客户机03被设置为向后同步,数据恢复到历史时间标签为2007年8月8日12时的版本。
图5示出包含服务器端全部数据记录的历史版本的全局数据记录版本表,该全局数据版本表记录了服务器端的全部相对版本号以及该版本对应的时间标签。例如,该表中最后一行表示在时间标签为2007年8月20日12点的服务器端数据的相对版本号为1000,从一个较小版本号到一个较大版本号,可能存在数据变化,这种数据变化将记录在下文的历史表中,最大值的版本号是当前服务器的版本。
根据本发明的实施例,服务器端和客户机端的数据记录可以存储在数据库中,图6A示出服务器端源数据表的示例,该源数据表中有三列整数类型(C1,C2,C3),一列可变字符串类型(CCHAR),以及一列二进制大数据类型(CBLOB),其中C1是主关键字列,其余C2,C3,CCHAR以及CBLOB是非主关键字列,在该源数据表中存在初始化的两行数据。
图6B示出历史表模式,历史表记录了服务器端源数据表中源数据行的变化历史,源数据行的变化将被定时捕捉,并将每个源数据行的变化用历史表中的一个变化行来表示。历史表模式包含主关键字列PK column、非主关键字列Non-PK Column、From版本号、To版本号、变化类型ChangeType、变化位ChangeBits以及客户端ID。From版本号和to版本号是用于标记源数据行的变化行在两个相对时间点有效的版本号,from版本号表示变化行开始存在的时间点,而to版本号表示变化行有效届满的时间点,即意味着该变化行要出现新的变化,这里From版本号和To版本号的值来自于全局数据版本表。源数据表的所有变化行都将被捕获并被周期地加载到历史表中。根据本发明的实施例,如果添加源数据行,则可以设置所述源数据行的变化类型ChangeType为“I”(添加)并且标记变化位Changebits,例如将变化位Changebits的所有位置为1;如果删除源数据行,则可以设置所述源数据行的变化类型ChangeType为“D”(删除)并且标记变化位Changebits,例如将变化位Changebits的所有位置为0;如果更新源数据行,则可以设置所述源数据行的变化类型ChangeType为更新“U”并且标记变化位Changebits,例如可以将与所述源数据行的更新的列相对应的变化位Changebits置为1以及将与所述源数据行的未更新的列相对应的变化位Changebits置为0。
图6C示出第一次加载源数据表的历史表,所有数据列与源数据表相同。历史表中的每一行用来记录源数据表中的源数据行的每个变化行,对于源数据行的每一个变化行,例如主关键字列C1为1的源数据行,from版本号是该源数据行开始存在的当前版本号1,to版本号是该源数据行有效届满的版本号∞(最大值∞表示该变化行对应源数据表中当前行)。ChangeType为“I”表明该源数据行的变化类型为“I”(添加),ChangeBits是二进制数据类型(1111),它的位数是该源数据表中非主关键字列的数目,因此对于源数据表中的四个非主关键列字,ChangeBits是四位二进制数,其从左至右每一位表示主关键字列C1为1、变化类型为“I”(添加)的源数据行所对应的该源数据行的非主关键字列从左至右每列的变化状态。
图7A-7B示出第一次发生变化之后的源数据表和历史表,其中图7A示出第一次发生变化之后的源数据表,该源数据表中存在来自客户机03的多个变化,主关键字列C1为1的源数据行的C2列被更新为“11”,并且添加了主关键字列C1为3的源数据行。图7B示出第二次加载源数据表的历史表,相应地,在历史表中存在一个主关键字列C1为3的新变化行,from版本号是该源数据行开始存在的当前版本号2,to版本号是该源数据行有效届满的版本号∞,其中ChangeType是“I”(添加)并且ChangeBits是(1111),以此来标记新添加的源数据行。此外还存在另一个主关键字列C1为1的新变化行,from版本号是该源数据行开始存在的当前版本号2,to版本号是该源数据行有效届满的版本号∞,其中ChangeType是“U”(更新)并且ChangeBits是(1000),以此来标记源数据表中主关键字列C1为1的源数据行的第一个非主关键字列被更新。同时原历史表中主关键字列C1为1的变化行对应的to版本号被更新为1,表示该源数据行的变化在版本号1之前生效。
图8示出对于每个源数据表的客户机版本历史表,该客户机版本历史表包含对于每个源数据表的全部客户机的版本历史。每次同步之后,客户机将得到一个新的版本号,并将其记录在客户机版本历史表中新的一行。客户机版本历史表中的版本号来自全局版本历史表中的值,例如,第一行表示客户机01的版本在2007-08-08-12:00:00是100,之后,客户机01执行同步并且它的版本号在2007-08-08-12:10:00是300。当客户机执行数据恢复时,需要确定客户机的当前数据版本号以及客户机要进行数据恢复的历史目标版本。当前的数据版本号是客户机版本历史表中最近的版本号,而历史目标版本需要根据客户机进行数据恢复的时间标签从客户机版本历史表中查寻。
图9示出合并的方法流程图。在步骤901,从历史记录中取出该客户机自历史目标版本与当前版本之间的数据记录的变化历史;在步骤902,创建两个变量合并后的变化类型MergedChangeType和合并后的变化位MergedChangeBits;在步骤903,判断是否存在相同数据记录的下一个变化数据记录,判断为“是”,则前进到步骤904,否则过程结束;在步骤904,将相同源数据行的变化行进行合并,并将得到的合并后的变化类型MergedChangeType和合并后的变化位MergedChangeBits存储在变量MergedChangeType和MergedChangeBits中;在步骤905,取出MergedChangeType的值,该值可以是以下四个值的其中之一:“D”(删除),“DI”(删除后添加),“U”(更新)以及“I”(添加)。如果该值为“D”,那么前进到步骤906,生成删除行操作。如果该值为“DI”,则前进到步骤907,对所有字段产生先删除,然后添加的操作;如果该值为“U”,则前进到步骤908,生成更新操作,其中包含MergedChangeBits中标记变化的字段;如果该值为“I”,则前进到步骤909,对所有要添加的列生成添加操作。在步骤910,判断是否存在下一个数据记录的变化数据记录,如果判断为“是”,则过程返回到步骤903再次循环,否则前进到步骤911结束过程。
图10详细描述了图9中的合并变化数据记录的工作过程,即,如何高效地计算出对于相同数据记录的多个变化数据记录的合并后的变化类型MergedChangeType和合并后的变化位MergedChangeBits。在该合并过程中,为了使客户机上的当前版本数据能够回到历史版本数据,历史表中记录的数据操作将被逆转并合并。逆转是指为了使客户机的当前版本恢复到历史目标版本,需要对原变化数据记录中的部分变化类型进行逆转:添加将被逆转为删除,删除将被逆转为添加,更新不进行逆转。流程的输入是某个客户机的历史目标版本与当前版本之间的相同数据记录的所有变化数据记录,将所有变化数据记录按照时间发生的先后顺序排序,最先发生的变化数据记录将排在序列的最上面,当前变化数据记录将排在序列的最下面。在步骤1001,根据客户机最先变化数据记录的ChangeType进行不同的步骤。
如果最先变化数据记录的ChangeType是“I”(添加),那么过程进行到步骤1002将合并后的变化类型MergedChangeType设置为“D”(删除)以及标记MergedChangeBits,例如将MergedChangeBits设置为全零,并且下一步前行到步骤1213。
如果最先变化数据记录的ChangeType是“D”(删除),那么过程进行到步骤1003,如果最先变化数据记录之后不存在相同数据记录的变化数据记录,则过程进行到1004,MergedChangeType被设置为添加“I”以及标记MergedChangeBits,例如将MergedChangeBits设置为全1;如果最先变化数据记录之后存在相同数据记录的变化数据记录,则该变化数据记录的ChangeType一定是添加,因为删除操作一定伴随一个添加操作,不管在添加操作之后有多少次变化,合并后的变化类型MergedChangeType最后都等同于删除后添加的效果,过程进行到步骤1005,MergedChangeType被设置为“DI”(删除后添加)以及标记MergedChangeBits,例如将MergedChangeBits设置为全1。
如果最先变化数据记录的ChangeType是“U”(更新),那么前进到步骤1006,首先将变量MergedChangeType和MergedChangeBits的值设置为最先变化数据记录的ChangeType和ChangeBits;在步骤1007,检查最先变化数据记录之后是否存在相同数据记录的变化数据记录,如果最先变化数据记录之后不存在相同数据记录的变化数据记录,则过程前进到步骤1013,返回当前的MergedChangeType和MergedChangeBits;如果最先变化数据记录之后存在相同数据记录的变化数据记录,在步骤1008进一步判断该变化数据记录的ChangeType,如果该变化数据记录的ChangeType是“U”(更新),则前进到步骤1009,该MergedChangeType仍旧是更新“U”并且MergedChangeBits将是当前MergedChangeBits和该变化数据记录ChangeBits的按位或逻辑运算结果,并且过程返回到1008直到将相同数据记录的所有变化数据记录处理完;如果该变化数据记录的ChangeType是删除“D”,则在步骤1010,进一步检查在该变化数据记录之后是否存在相同数据记录的下一个变化数据记录,如果存在相同数据记录的下一个变化数据记录,则在步骤1011,该下一个变化数据记录的ChangeType一定是添加,将MergedChangeType设置为“DI”(删除后添加)以及标记MergedChangeBits,例如将MergedChangeBits设置为全1;否则如果不存在相同数据记录的下一个变化数据记录,则在步骤1012,将MergedChangeType设置为添加“I”并且标记MergedChangeBits,例如将MergedChangeBits设置为全1;在步骤1011和步骤1012之后,过程前进到步骤1013以返回MergedChangeType和MergedChangeBits。
图11示出使用图10中的方法进行合并的示例,为了简单、清楚起见,以数据库为例,在示例(1)至(3)中,从上至下是具有相同主关键字列的相同源数据行的历史状态的变化行到当前状态的变化行的ChangeType和ChangeBits,在示例(1)中,具有相同主关键字列的相同源数据行的最先变化行的ChangeType是“U”(更新),在更新之后的变化行的ChangeType也是“U”(更新),逆转之后对应于前两个变化行的ChangeType依然是“U”,当前变化行的ChangeType是“D”(删除),逆转之后对应于当前变化行的ChangeType是“I”(添加)。因此合并后的MergedChangeType是添加“I”以及MergedChangeBits是(1111)。
在示例2中,具有相同主关键字列的相同源数据行的最先变化行的ChangeType是添加“I”,逆转之后对应于该最先变化行的ChangeType是删除“D”,并且在添加之后的所有变化都可以被忽略,因此合并后的MergedChangeType是删除以及MergedChangeBits是(0000)。
在示例3中,具有相同主关键字列的相同源数据行的所有变化行的ChangeType都是更新“U”,因此三个更新被合并,MergedChangeType是更新“U”,以及MergedChangeBits是三个ChangeBits的按位或逻辑运算结果(0111)。
图12示出处理客户机自身发起的变化对服务器和其它客户机的影响的流程图。在步骤1201,取出来源于该客户机的历史目标版本与当前版本之间的数据记录的变化历史;前进到步骤1202,取出一个变化数据记录;在步骤1203,在历史记录中该历史目标版本与当前版本之间找到不是由该客户端发起的而是由服务器或其它客户机发起的相同数据记录的最近变化数据记录,若不存在由服务器或其它客户机发起的相同数据记录的最近变化数据记录,则取出该客户机历史目标版本的变化数据记录;在步骤1204,检查步骤1202中的变化数据记录是否是服务器最近的变化数据记录;如果判断为“是”,则在步骤1205,将步骤1202中的变化数据记录更新为步骤1203中得到的相同数据记录的最近变化数据记录;如果判断为“否”,则在步骤1206,将步骤1202中的变化数据记录从历史表中删除;在步骤1207判断相同数据记录的所有变化数据记录是否都处理过了,如果判断为是,则过程结束;如果判断为否,则过程返回到步骤1202。
图13示出本发明的利用同步进行数据恢复的系统1300,包括:记录装置1301,用于记录数据记录的变化历史;同步引擎1302,响应于接收到的数据恢复请求,查询所需要恢复的数据记录的历史目标版本,合并所述数据记录的历史目标版本与当前版本之间的变化历史,并发送所述合并结果。
该记录装置用于:如果添加数据记录,则记录所述数据记录的变化类型为添加并且标记所述数据记录的变化位;如果删除数据记录,则记录所述数据记录的变化类型为删除并且标记所述数据记录的变化位;如果更新数据记录,则记录所述数据记录的变化类型为更新并且标记所述数据记录的变化位。
所述同步引擎还包括合并装置,所述合并装置用于分别将对应于相同数据记录的所有变化的变化类型和变化位进行合并,得到合并后的变化类型和合并后的变化位。其中合并装置还包括:删除逆转合并装置,如果所述相同数据记录的最先变化类型为删除,则在所述最先数据记录之后不存在相同数据记录的下一个变化数据记录的情况下,则将合并后的变化类型设置为添加并标识合并后的变化位.否则在所述最先数据记录之后存在相同数据记录的下一个变化数据记录的情况下,将合并后的变化类型设置为删除后添加并标识合并后的变化位;添加逆转合并装置,如果所述相同数据记录的最先变化数据记录的变化类型为添加,将合并后的变化类型设置为删除并标识合并后的变化位;更新合并装置,在所述相同数据记录的最先变化记录的变化类型为更新的情况下,如果在所述最先变化数据记录之后不存在相同数据记录的下一个变化数据记录,则将所述最先变化数据记录的变化类型和变化位分别设置为合并后的变化类型和合并后的变化位;如果在所述最先变化数据记录之后存在相同数据记录的下一个变化数据记录并且所述下一个变化数据记录的变化类型是更新,则合并后的变化类型是更新,合并后的变化位是当前合并后的变化位与所述下一个变化数据记录的变化位的按位或逻辑运算结果。
当所述系统用于服务器与多个客户机之间消除由客户机自身的变化对服务器与其它客户机的影响时还包括处理装置,所述处理装置用于1)从客户机的历史目标版本与当前版本之间数据记录的变化历史中取出来自于该客户机的一个变化数据记录;2)在目标版本与当前版本之间取出由服务器或其它客户机发起的相同数据记录的最近变化数据记录;3)判断步骤1)中的该变化数据记录是否为服务器最近的变化数据记录,如果判断为是,则将该变化数据记录更新为步骤2)中的相同数据记录的最近变化数据记录;如果判断为否,则将该变化数据记录从数据记录的变化历史中删除。
本发明的数据同步系统中合并装置的具体实现方法可以参照图9和图10的合并方法的流程来实现,在此不一一赘述。
本发明可以硬件、软件、固件或其组合的方式实现。本发明可以集中的方式在一个计算机系统中实现,或以分布方式实现,在这种分布方式中,不同的部件分布在若干互连的计算机系统中。适于执行本文中描述的方法的任何计算机系统或其它装置都是合适的。优选地,本发明以计算机软件和通用计算机硬件的组合的方式实现,在这种实现方式中,当该计算机程序被加载和执行时,控制该计算机系统而使其执行本发明的方法,或构成本发明的系统。
上面出于举例说明的目的,给出了本发明的优选实施例的说明。优选实施例的上述说明不是穷尽的,也不打算把本发明局限于公开的明确形式,显然鉴于上述教导,许多修改和变化是可能的。对本领域的技术人员来说显而易见的这种修改和变化包括在由附加的权利要求限定的本发明的范围内。
Claims (18)
1.一种利用同步进行数据恢复的方法,包括:
记录数据记录的变化历史;
响应于接收到的数据恢复请求,查询所需要恢复的数据记录的历史目标版本;
合并所述数据记录的历史目标版本与当前版本之间的变化历史;
发送所述合并结果。
2.如权利要求1所述的方法,其中所述数据记录的变化历史为数据记录的字段的变化历史。
3.如权利要求2所述的方法,其中所述历史目标版本通过历史时间标签来确定。
4.如权利要求3所述的方法,其中所述变化历史通过变化类型、变化位以及版本号来记录,所述变化类型用于记录所述数据记录变化的变化类型,所述变化位用于记录与所述数据记录的变化类型对应的字段变化状态,并且所述版本号用于标记所述数据记录的有效时间点。
5.如权利要求4所述的方法,其中合并所述变化历史的步骤包括:分别将对应于相同数据记录的所有变化的变化类型和变化位进行合并,得到合并后的变化类型和合并后的变化位。
6.如权利要求5所述的方法,其中记录数据记录的变化历史的步骤还包括:
如果添加数据记录,则设置所述数据记录的变化类型为添加并且标记所述数据记录的变化位;
如果删除数据记录,则设置所述数据记录的变化类型为删除并且标记所述数据记录的变化位;
如果更新数据记录,则设置所述数据记录的变化类型为更新并且标记所述数据记录的变化位。
7.如权利要求6所述的方法,其中所述合并相同数据记录的所有变化数据记录的变化类型和变化位的步骤还包括:
如果所述相同数据记录的最先变化数据记录的变化类型为添加,则将合并后的变化类型设置为删除并标识合并后的变化位;
如果所述相同数据记录的最先变化数据记录的变化类型为删除,则在所述最先变化数据记录之后不存在相同数据记录的下一个变化数据记录的情况下,将合并后的变化类型设置为添加并标识合并后的变化位,否则在所述最先数据记录之后存在相同数据记录的下一个变化数据记录的情况下,将合并后的变化类型设置为删除后添加并标识合并后的变化位;
在所述相同数据记录的最先变化记录的变化类型为更新的情况下,如果在所述最先变化数据记录之后不存在相同数据记录的下一个变化数据记录,则将合并后的变化类型和合并后的变化位分别设置为所述最先变化数据记录的变化类型和变化位;如果在所述最先变化数据记录之后存在相同源数据记录的下一个变化数据记录并且所述下一个变化数据记录的变化类型是更新,则合并后的变化类型是更新,合并后的变化位是当前合并后的变化位与所述下一个变化数据记录的变化位的按位或逻辑运算结果。
8.如权利要求1所述的方法,当所述方法用于服务器与多个客户机之间消除客户机自身的变化对服务器与其它客户机的影响时还包括以下步骤:
1)从客户机的历史目标版本与当前版本之间数据记录的变化历史中取出一个来自于该客户机的变化数据记录;
2)在所述历史目标版本与当前版本之间取出由服务器或其它客户机发起的相同数据记录的最近变化数据记录;
3)判断步骤1)中的该变化数据记录是否为服务器最近的变化数据记录,如果判断为是,则将该变化数据记录更新为步骤2)中的相同数据记录的最近变化数据记录;如果判断为否,则将该变化数据记录从数据记录的变化历史中删除。
9.如权利要求1-4所述的方法,其中所述数据记录存储在数据库中。
10.一种利用同步进行数据恢复的系统,包括:
记录装置,用于记录数据记录的变化历史;
同步引擎,响应于接收到的数据恢复请求,查询所需要恢复的数据记录的历史目标版本,合并所述数据记录的历史目标版本与当前版本之间的变化历史,并发送所述合并结果。
11.如权利要求10所述的系统,其中所述数据记录的变化历史为数据记录的字段的变化历史。
12.如权利要求11所述的系统,其中所述历史目标版本通过历史时间标签来确定。
13.如权利要求12所述的系统,其中所述变化历史通过变化类型、变化位以及版本号来记录,所述变化类型用于记录所述数据记录变化的变化类型,所述变化位用于记录与所述数据记录的变化类型对应的字段变化状态,并且所述版本号用于标记所述数据记录的有效时间点。
14.如权利要求13所述的系统,其中所述同步引擎还包括逆转合并装置,所述合并装置用于分别将对应于相同数据记录的所有变化的变化类型和变化位进行合并,得到合并后的变化类型和合并后的变化位。
15.如权利要求14所述的系统,其中所述记录装置还用于:
如果添加数据记录,则记录所述数据记录的变化类型为添加并且标记所述数据记录的变化位;
如果删除数据记录,则记录所述数据记录的变化类型为删除并且标记所述数据记录的变化位;
如果更新数据记录,则记录所述数据记录的变化类型为更新并且标记所述数据记录的变化位。
16.如权利要求15所述的系统,其中所述同步引擎还包括:
添加逆转合并装置,如果所述相同数据记录的最先变化数据记录的变化类型为添加,则将合并后的变化类型设置为删除并标识合并后的变化位;
删除逆转合并装置,如果所述相同数据记录的最先变化数据记录的变化类型为删除,则在所述最先变化数据记录之后不存在相同数据记录的下一个变化数据记录的情况下,将合并后的变化类型设置为添加并标识合并后的变化位,否则在所述最先数据记录之后存在相同数据记录的下一个变化数据记录的情况下,将合并后的变化类型设置为删除后添加并标识合并后的变化位;
更新合并装置,在所述相同数据记录的最先变化记录的变化类型为更新的情况下,如果在所述最先变化数据记录之后不存在相同数据记录的下一个变化数据记录,则将所述最先变化数据记录的变化类型和变化位分别设置为合并后的变化类型和合并后的变化位;如果在所述最先变化数据记录之后存在相同数据记录的下一个变化数据记录并且所述下一个变化数据记录的变化类型是更新,则合并后的变化类型是更新,合并后的变化位是当前合并后的变化位与所述下一个变化数据记录的变化位的按位或逻辑运算结果。
17.如权利要求10所述的系统,当所述系统用于服务器与多个客户机之间消除由客户机自身的变化对服务器与其它客户机的影响时还包括处理装置,所述处理装置用于
1)从客户机的历史目标版本与当前版本之间数据记录的变化历史中取出一个来自于该客户机的变化数据记录;
2)在所述历史目标版本与当前版本之间取出由服务器或其它客户机发起的相同数据记录的最近变化数据记录;
3)判断步骤1)中的该变化数据记录是否为服务器最近的变化数据记录,如果判断为是,则将该变化数据记录更新为步骤2)中的相同数据记录的最近变化数据记录;如果判断为否,则将该变化数据记录从数据记录的变化历史中删除。
18.如权利要求10-14所述的方法,其中所述数据记录存储在数据库中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2008101088758A CN101593185A (zh) | 2008-05-29 | 2008-05-29 | 利用同步进行数据恢复的方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2008101088758A CN101593185A (zh) | 2008-05-29 | 2008-05-29 | 利用同步进行数据恢复的方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101593185A true CN101593185A (zh) | 2009-12-02 |
Family
ID=41407844
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2008101088758A Pending CN101593185A (zh) | 2008-05-29 | 2008-05-29 | 利用同步进行数据恢复的方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101593185A (zh) |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101848274A (zh) * | 2010-03-12 | 2010-09-29 | 深圳市同洲电子股份有限公司 | 移动终端中记录备份的方法和装置、及恢复的方法和装置 |
CN102693169A (zh) * | 2011-03-25 | 2012-09-26 | 国际商业机器公司 | 在多租户环境下恢复租户数据的方法、设备和数据库系统 |
CN102939593A (zh) * | 2010-03-05 | 2013-02-20 | 艾菲股份有限公司 | 无限存储器 |
WO2013091162A1 (zh) * | 2011-12-19 | 2013-06-27 | 华为技术有限公司 | 一种分布式存储数据恢复方法、装置及系统 |
CN103605809A (zh) * | 2013-12-10 | 2014-02-26 | 厦门诚创网络有限公司 | 一种数据同步的方法 |
CN103916423A (zh) * | 2012-12-31 | 2014-07-09 | 华为技术有限公司 | 数据同步方法及设备 |
CN105095457A (zh) * | 2015-07-28 | 2015-11-25 | 驰众信息技术(上海)有限公司 | 历史数据存储管理方法 |
CN105677889A (zh) * | 2016-01-30 | 2016-06-15 | 武汉大学 | 一种空间数据的局部更新、整体还原增量更新方法 |
US9448918B2 (en) | 2005-09-15 | 2016-09-20 | Eye-Fi, Inc. | Content-aware digital media storage device and methods of using the same |
CN106156070A (zh) * | 2015-03-31 | 2016-11-23 | 华为技术有限公司 | 一种查询方法、文件合并方法与相关装置 |
CN106547643A (zh) * | 2015-09-21 | 2017-03-29 | 阿里巴巴集团控股有限公司 | 异常数据的恢复方法及装置 |
CN106970855A (zh) * | 2016-01-14 | 2017-07-21 | 华为技术有限公司 | 数据恢复的方法和装置 |
CN109358898A (zh) * | 2018-10-24 | 2019-02-19 | 网易(杭州)网络有限公司 | 一种信息处理方法、装置、电子设备和存储介质 |
CN109582504A (zh) * | 2018-12-05 | 2019-04-05 | 深圳软牛科技有限公司 | 一种用于苹果设备的数据恢复方法和装置 |
CN110457292A (zh) * | 2019-08-12 | 2019-11-15 | 网易(杭州)网络有限公司 | 游戏地图的管理方法、装置、设备及存储介质 |
CN110474800A (zh) * | 2019-08-09 | 2019-11-19 | 北京直真科技股份有限公司 | 一种维护传输综合网管系统资源数据稳定性的方法 |
CN110543469A (zh) * | 2019-08-28 | 2019-12-06 | 贝壳技术有限公司 | 一种数据库版本管理方法及服务器 |
CN110968587A (zh) * | 2018-09-30 | 2020-04-07 | 北京国双科技有限公司 | 一种数据处理方法及装置 |
-
2008
- 2008-05-29 CN CNA2008101088758A patent/CN101593185A/zh active Pending
Cited By (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9448918B2 (en) | 2005-09-15 | 2016-09-20 | Eye-Fi, Inc. | Content-aware digital media storage device and methods of using the same |
CN102939593A (zh) * | 2010-03-05 | 2013-02-20 | 艾菲股份有限公司 | 无限存储器 |
CN102939593B (zh) * | 2010-03-05 | 2015-10-21 | 艾菲股份有限公司 | 无限存储器 |
CN101848274A (zh) * | 2010-03-12 | 2010-09-29 | 深圳市同洲电子股份有限公司 | 移动终端中记录备份的方法和装置、及恢复的方法和装置 |
CN102693169B (zh) * | 2011-03-25 | 2015-01-28 | 国际商业机器公司 | 在多租户环境下恢复租户数据的方法、设备和数据库系统 |
CN102693169A (zh) * | 2011-03-25 | 2012-09-26 | 国际商业机器公司 | 在多租户环境下恢复租户数据的方法、设备和数据库系统 |
US9075839B2 (en) | 2011-03-25 | 2015-07-07 | International Business Machines Corporation | Method, apparatus and database system for restoring tenant data in a multi-tenant environment |
WO2013091162A1 (zh) * | 2011-12-19 | 2013-06-27 | 华为技术有限公司 | 一种分布式存储数据恢复方法、装置及系统 |
CN103916423A (zh) * | 2012-12-31 | 2014-07-09 | 华为技术有限公司 | 数据同步方法及设备 |
CN103605809B (zh) * | 2013-12-10 | 2016-09-14 | 厦门诚创网络有限公司 | 一种数据同步的方法 |
CN103605809A (zh) * | 2013-12-10 | 2014-02-26 | 厦门诚创网络有限公司 | 一种数据同步的方法 |
CN106156070B (zh) * | 2015-03-31 | 2019-07-12 | 华为技术有限公司 | 一种查询方法、文件合并方法与相关装置 |
CN106156070A (zh) * | 2015-03-31 | 2016-11-23 | 华为技术有限公司 | 一种查询方法、文件合并方法与相关装置 |
CN105095457A (zh) * | 2015-07-28 | 2015-11-25 | 驰众信息技术(上海)有限公司 | 历史数据存储管理方法 |
CN106547643A (zh) * | 2015-09-21 | 2017-03-29 | 阿里巴巴集团控股有限公司 | 异常数据的恢复方法及装置 |
CN106547643B (zh) * | 2015-09-21 | 2020-05-22 | 阿里巴巴集团控股有限公司 | 异常数据的恢复方法及装置 |
CN106970855A (zh) * | 2016-01-14 | 2017-07-21 | 华为技术有限公司 | 数据恢复的方法和装置 |
CN106970855B (zh) * | 2016-01-14 | 2021-04-20 | 华为技术有限公司 | 数据恢复的方法和装置 |
CN105677889A (zh) * | 2016-01-30 | 2016-06-15 | 武汉大学 | 一种空间数据的局部更新、整体还原增量更新方法 |
CN110968587A (zh) * | 2018-09-30 | 2020-04-07 | 北京国双科技有限公司 | 一种数据处理方法及装置 |
CN109358898A (zh) * | 2018-10-24 | 2019-02-19 | 网易(杭州)网络有限公司 | 一种信息处理方法、装置、电子设备和存储介质 |
CN109358898B (zh) * | 2018-10-24 | 2022-09-13 | 网易(杭州)网络有限公司 | 一种信息处理方法、装置、电子设备和存储介质 |
CN109582504A (zh) * | 2018-12-05 | 2019-04-05 | 深圳软牛科技有限公司 | 一种用于苹果设备的数据恢复方法和装置 |
CN110474800A (zh) * | 2019-08-09 | 2019-11-19 | 北京直真科技股份有限公司 | 一种维护传输综合网管系统资源数据稳定性的方法 |
CN110474800B (zh) * | 2019-08-09 | 2022-01-11 | 北京直真科技股份有限公司 | 一种维护传输综合网管系统资源数据稳定性的方法 |
CN110457292A (zh) * | 2019-08-12 | 2019-11-15 | 网易(杭州)网络有限公司 | 游戏地图的管理方法、装置、设备及存储介质 |
CN110543469A (zh) * | 2019-08-28 | 2019-12-06 | 贝壳技术有限公司 | 一种数据库版本管理方法及服务器 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101593185A (zh) | 利用同步进行数据恢复的方法和系统 | |
CN101551801B (zh) | 数据同步的方法和系统 | |
US9135264B2 (en) | Distributed catalog, data store, and indexing | |
CN103473277B (zh) | 文件系统的快照方法和装置 | |
CA2769773C (en) | System and method for data communication over a network | |
CN105302533A (zh) | 代码同步方法和装置 | |
CN104040481A (zh) | 用于融合、存储和检索增量式备份数据的方法和系统 | |
CN100549950C (zh) | 分布式软件系统的部署方法 | |
CN103294675A (zh) | 一种分布式存储系统中的数据更新方法及装置 | |
CN107545015B (zh) | 一种查询故障的处理方法及处理装置 | |
CN102272751B (zh) | 在数据库环境通过背景同步的数据完整性 | |
CN102811260B (zh) | 文件云同步系统及方法 | |
CN101464895A (zh) | 一种更新内存数据的方法、系统和装置 | |
CN103886091A (zh) | 一种基于记录标记的数据库同步方法 | |
CN103902410A (zh) | 云存储系统的数据备份加速方法 | |
CN109710586B (zh) | 一种集群节点配置文件同步方法及装置 | |
CN102231163B (zh) | 将指定文件优先同步更新的系统及方法 | |
KR101424568B1 (ko) | 트랜잭션 재시작 가능한 클라이언트 장치와 데이터베이스 서버 및 방법 | |
US20120185440A1 (en) | Method and apparatus for providing address book restoration | |
CN104598652A (zh) | 一种数据库查询方法及装置 | |
CN114185991A (zh) | 基于分布式数据库实现数据同步的方法及相关装置 | |
CN101425078A (zh) | 一种软件源代码的更新方法及装置 | |
CN111090701B (zh) | 业务请求处理方法、装置、可读存储介质和计算机设备 | |
CN104750849A (zh) | 用于维护基于树形结构的目录关系的方法和系统 | |
CN116594669A (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 | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20091202 |