执行数据恢复操作的方法及装置与流程

文档序号:11199086阅读:799来源:国知局
本发明涉及计算机领域,具体而言,涉及一种执行数据恢复操作的方法及装置。
背景技术
::开放数据处理服务(opendataprocessingservice,简称为odps)由阿里云自主研发的分布式海量数据处理平台,其提供了丰富的数据处理功能和灵活的编程框架,应用于数据分析、挖掘、商业智能等领域。odps采用抽象的作业处理框架将不同场景的各种计算任务统一在同一个平台之上,共享安全、存储、数据管理和资源调度,为来自不同用户需求的各种数据处理任务提供统一的编程接口和界面。元数据是指描述数据属性的信息,其用来支持如指示存储位置、历史数据、资源查找、文件记录等功能。换言之,元数据(metadata)是描述其它数据的数据(dataaboutotherdata),或者说是用于提供某种资源的有关信息的结构数据(structureddata)其使用目的在于:识别资源,评价资源,追踪资源在使用过程中的变化,实现简单高效地管理大量网络化数据以及实现信息资源的有效发现、查找、一体化组织和对使用资源的有效管理。元数据的基本特点主要有:a)元数据一经建立,便可共享。元数据的结构和完整性依赖于信息资源的价值和使用环境;元数据的开发与利用环境往往是一个变化的分布式环境;任何一种格式都不可能完全满足不同团体的不同需要;b)元数据首先是一种编码体系。元数据是用来描述数字化信息资源,特别是网络信息资源的编码体系,这导致了元数据和传统数据编码体系的根本区别;元数据的最为重要的特征和功能是为数字化信息资源建立一种机器可理解框架。元数据体系构建了电子政务的逻辑框架和基本模型,从而决定了电子政务的功能特征、运行模式和系统运行的总体性能。电子政务的运作都基于元数据来实现,其主要作用有:描述功能、整合功能、控制功能和代理功能。由于元数据也是数据,因此可以用类似数据的方法在数据库中进行存储和获取。如果提供数据元的组织同时提供描述数据元的元数据,将会使数据元的使用变得准确而高效。用户在使用数据时可以首先查看其元数据以便能够获取自己所需的信息。目前,在分布式数据处理平台系统中,已经存在一种大规模或超大规模数据集合场景下的数据版本化系统,用户可以通过这个系统轻易地实现数据恢复、时间点还原、更改撤销以及数据重做等操作。图1是根据相关技术提供的分布式数据处理平台系统生成数据版本管理记录过程的示意图。如图1所示,该系统在数据恢复过程中,如果采用链式的数据恢复方式,那么彼此的数据恢复操作之间便会存在依赖关系,换言之,如果用户需要恢复的版本比较旧时,则必须根据当前的变更日志(changelog,其是指对数据操作的变更日志,其可用于数据恢复)记录,依次回滚到指定的版本。例如:表1是相关技术中采用链式的数据恢复方式进行数据恢复的示例。如表1所示:表1以上述表1为例,相关技术中所采用的数据恢复方式通常是基于分布式数据库中的changelog机制来完成的,其具体实施过程如下:第一步.用户通过具有日志记录查询功能的指令查看到当前记录的表(table)的数据版本。第二步.若用户指定其中特定的changelogid(1452216975272855351),并使用具有日志记录回滚功能的指令,则需要启动数据恢复机制,恢复到指定版本。第三步.扫描table的版本记录,获取到从当前的状态到指定版本的所有操作记录,倒序的依次生成恢复计划。如表1所示,当用户指定恢复到1452216975272855351这个数据版本时,需要从1452407775639627693开始依次逆序地恢复每个版本,直到恢复到1452216975272855351这个版本。第四步.按照已经生成的恢复计划开始恢复,其实现方式即为按照顺序操作数据和元数据的处理逻辑。目前的数据版本以及恢复机制,其实质上都是一次作业,会操作数据和元数据,这同用户的作业以及内部的跨集群复制作业的最后处理从原理上来看都是一致的。然而,由于现有的恢复机制需要从当前状态依次倒序恢复,直至恢复到指定版本。上述示例仅是简单地列举了其中少量的数据版本,如果线上的表操作执行过于频繁,可能会出现从1452407775639627693这个数据版本到1452216975272855351,中间的版本状态成千上万,也就是在恢复到一个指定版本时,可能中间过程需要依次处理数千次的操作。目前,相关技术中所能够提供的海量数据处理平台(例如:hive等数据仓库)不具备数据恢复的管理模块,而传统的数据库(例如:mysql)所采用的解决方案是获取每次操作的差异数据进行保存,以便于在执行后续恢复操作的过程中能够按照存储的差异数据进行恢复,这在海量数据处理系统中,带来了很大的依赖性,恢复数据发杂性高,而且风险高。综上所述,针对目前相关技术中所能够提供的数据恢复方式,还是很有可能会带来以下亟待解决的技术难题:数据恢复的复杂度大大提升,其中涉及的数据和元数据操作较多,由此会带来数据不一致的风险以及造成数据恢复的失败率提升,进而直接导致数据恢复失败,甚至是由于发生数据和元数据不匹配的情况而造成数据丢失;另外,此种依次倒序的恢复方式还会极大地增加所需恢复时间的开销。由此可见,依赖版本依次逆序恢复的数据恢复方式,不仅能够造成恢复时间的大幅提升,而且,该恢复数据的行为由于需要通过对数据和元数据的一系列操作来完成,由此加大了用户操作的复杂度,此外,还有可能增加系统内部复制等机制的冲突概率,进而加大用户操作异常或者恢复异常可能性,带来数据恢复失败风险。针对上述的问题,目前尚未提出有效的解决方案。技术实现要素:本发明实施例提供了一种执行数据恢复操作的方法及装置,以至少解决相关技术中的所提到的分布式数据处理平台系统恢复机制需要从当前最新的变更日志经过多个中间变更日志依次回滚才能恢复至指定的目标变更日志,操作较为繁琐且易造成数据丢失的技术问题。根据本发明实施例的一个方面,提供了一种执行数据恢复操作的方法,包括:获取待恢复到的第一变更日志的标识信息;根据标识信息查找第一变更日志;通过最新记录的第二变更日志中记录的用户数据信息与元数据信息以及第一变更日志中记录的用户数据信息与元数据信息将第二变更日志恢复至第一变更日志,其中,在第二变更日志与第一变更日志之间存在多条待撤销的变更日志。可选地,通过第二变更日志中记录的用户数据信息与元数据信息以及第一变更日志中记录的用户数据信息与元数据信息将第二变更日志恢复至第一变更日志包括:从第一变更日志中解析出第一原始用户数据和第一原始元数据;从第二变更日志中解析出第二原始用户数据和第二原始元数据,并将第二原始用户数据恢复至第一原始用户数据以及将第二原始元数据恢复至第一原始元数据。可选地,通过第二变更日志中记录的用户数据信息与元数据信息以及第一变更日志中记录的用户数据信息与元数据信息将第二变更日志恢复至第一变更日志包括:从第二变更日志中解析出已修改用户数据和已修改元数据,并将已修改用户数据恢复至第一原始用户数据以及将已修改元数据恢复至第一原始元数据,其中,已修改用户数 据和已修改元数据是按照第二变更日志中记录的修改对象的操作类型对第二变更日志中记录的原始用户数据和原始元数据进行修改后得到的。可选地,根据标识信息查找第一变更日志包括以下之一:通过在变更日志查询命令中添加列表名称获取变更日志列表信息或者通过在变更日志查询命令中添加分区名称获取变更日志分区信息,并根据标识信息从变更日志列表信息或者变更日志分区信息中查找第一变更日志;通过在变更日志查询命令中添加列表名称和标识信息或者通过在变更日志查询命令中添加分区名称和标识信息,查找第一变更日志。可选地,获取第一变更日志的标识信息包括:接收触发数据恢复操作的控制指令,其中,控制指令中携带有标识信息;对控制指令执行鉴权操作,并在鉴权成功的情况下,从控制指令中获取标识信息。可选地,在通过第二变更日志中记录的用户数据信息与元数据信息以及第一变更日志中记录的用户数据信息与元数据信息将第二变更日志恢复至第一变更日志之后,还包括:返回与控制指令对应的提示信息,其中,提示信息用于表示第二变更日志已经成功恢复至第一变更日志。根据本发明实施例的另一方面,还提供了一种执行数据恢复操作的装置,包括:获取模块,用于获取待恢复到的第一变更日志的标识信息;查找模块,用于根据标识信息查找第一变更日志;恢复模块,用于通过最新记录的第二变更日志中记录的用户数据信息与元数据信息以及第一变更日志中记录的用户数据信息与元数据信息将第二变更日志恢复至第一变更日志,其中,在第二变更日志与第一变更日志之间存在多条待撤销的变更日志。可选地,恢复模块包括:解析单元,用于从第一变更日志中解析出第一原始用户数据和第一原始元数据;恢复单元,用于从第二变更日志中解析出第二原始用户数据和第二原始元数据,并将第二原始用户数据恢复至第一原始用户数据以及将第二原始元数据恢复至第一原始元数据。可选地,恢复模块包括:解析单元,用于从第一变更日志中解析出第一原始用户数据和第一原始元数据;恢复单元,用于从第二变更日志中解析出已修改用户数据和已修改元数据,并将已修改用户数据恢复至第一原始用户数据以及将已修改元数据恢复至第一原始元数据,其中,已修改用户数据和已修改元数据是按照第二变更日志中记录的修改对象的操作类型对第二变更日志中记录的原始用户数据和原始元数据进行修改后得到的。可选地,查找模块,用于通过在变更日志查询命令中添加列表名称获取变更日志 列表信息或者通过在变更日志查询命令中添加分区名称获取变更日志分区信息,并根据标识信息从变更日志列表信息或者变更日志分区信息中查找第一变更日志;或者,通过在变更日志查询命令中添加列表名称和标识信息或者通过在变更日志查询命令中添加分区名称和标识信息,查找第一变更日志。可选地,获取模块包括:接收单元,用于接收触发数据恢复操作的控制指令,其中,控制指令中携带有标识信息;获取单元,用于对控制指令执行鉴权操作,并在鉴权成功的情况下,从控制指令中获取标识信息。可选地,上述装置还包括:反馈模块,用于返回与控制指令对应的提示信息,其中,提示信息用于表示第二变更日志已经成功恢复至第一变更日志。在本发明实施例中,采用从当前最新记录的变更日志仅通过执行一次恢复操作便恢复至指定的目标变更日志的方式,通过最新记录的变更日志中记录的用户数据信息与元数据信息以及目标变更日志中记录的用户数据信息与元数据信息将最新记录的变更日志直接恢复至目标变更日志而省略了对最新记录的变更日志与目标变更日志之间存在多条待撤销的变更日志的依次回滚的处理过程,从而实现了降低分布式数据库恢复机制的操作复杂度,提高分布式数据库恢复机制的成功率以及减少分布式数据库恢复机制的时间开销的技术效果,进而解决了相关技术中的所提到的分布式数据处理平台系统恢复机制需要从当前最新的变更日志经过多个中间变更日志依次回滚才能恢复至指定的目标变更日志,操作较为繁琐且易造成数据丢失的技术问题。附图说明此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:图1是根据相关技术提供的分布式数据处理平台系统生成数据版本管理记录过程的示意图;图2是本发明实施例的一种执行数据恢复操作的方法的计算机终端的硬件结构框图;图3是根据本发明实施例的执行数据恢复操作的方法的流程图;图4是根据本发明优选实施例的采用不同方式查询日志变更记录的对比示意图;图5是根据本发明实施例的执行数据恢复操作的装置的结构框图;图6是根据本发明优选实施例的执行数据恢复操作的装置的结构框图;图7是根据本发明实施例的一种计算机终端的结构框图。具体实施方式为了使本
技术领域
:的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。实施例1根据本发明实施例,还提供了一种执行数据恢复操作的方法的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。本申请实施例一所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在计算机终端上为例,图2是本发明实施例的一种执行数据恢复操作的方法的计算机终端的硬件结构框图。如图2所示,计算机终端10可以包括一个或多个(图中仅示出一个)处理器102(处理器102可以包括但不限于微处理器mcu或可编程逻辑器件fpga等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输装置106。本领域普通技术人员可以理解,图2所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比图2中所示更多或者更少的组件,或者具有与图2所示不同的配置。存储器104可用于存储应用软件的软件程序以及模块,如本发明实施例中的执行数据恢复操作的方法对应的程序指令/模块,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的执行数据恢复操作的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(networkinterfacecontroller,简称为nic),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(radiofrequency,简称为rf)模块,其用于通过无线方式与互联网进行通讯。在上述运行环境下,本申请提供了如图3所示的执行数据恢复操作的方法。图3是根据本发明实施例的执行数据恢复操作的方法的流程图。如图3所示,该方法可以包括以下处理步骤:步骤s302:获取待恢复到的第一变更日志的标识信息;步骤s304:根据标识信息查找第一变更日志;步骤s306:通过最新记录的第二变更日志中记录的用户数据信息与元数据信息以及第一变更日志中记录的用户数据信息与元数据信息将第二变更日志恢复至第一变更日志,其中,在第二变更日志与第一变更日志之间存在多条待撤销的变更日志。通过本发明实施例所提供的技术方案,采用从当前最新记录的变更日志(相当于上述第二变更日志)仅通过执行一次恢复操作便恢复至指定的目标变更日志(相当于上述第一变更日志)的方式,通过最新记录的变更日志中记录的用户数据信息与元数据信息以及目标变更日志中记录的用户数据信息与元数据信息将最新记录的变更日志直接恢复至目标变更日志而省略了对最新记录的变更日志与目标变更日志之间存在多条待撤销的变更日志的依次回滚的处理过程,从而实现了降低分布式数据库恢复机制的操作复杂度,提高分布式数据库恢复机制的成功率的技术效果,进而解决了相关技术中的所提到的分布式数据处理平台系统恢复机制需要从当前最新的变更日志经过多个中间变更日志依次回滚才能恢复至指定的目标变更日志,操作较为繁琐且易造成数据丢失的技术问题。在使用分布式数据处理平台系统执行数据处理的过程中往往会遇到因误操作而引起的数据被误删除或者被误覆盖,为此,分布式数据处理平台系统的数据版本管理恢复模块(例如:changelogs)提供了一种海量数据版本化的机制和数据恢复的工具,即,可以使用数据版本管理恢复模块将海量数据撤销或者恢复至数据的任意历史版本、查看每个版本修改的内容。因此,通过数据版本管理恢复模块可以实现数据在被误删除或者被误覆盖之后能够及时得到恢复,以确保数据维护的安全性。通过数据版本管理恢复模块的保存时间可以确定数据版本管理恢复模块功能是否开启,例如:当数据版本管理恢复模块的保存时间小于预设时长时,则表示数据版本管理恢复模块功能关闭,不记录数据版本管理恢复模块;当数据版本管理恢复模块的保存时间大于或等于预设时长时,则表示当前数据版本管理恢复模块功能开启,会自动记录数据版本管理恢复模块。在数据版本管理恢复模块的保存时间范围内,已经执行的任意修改操作都可以得到即时恢复。数据版本管理恢复模块中的每条变更日志完整地记录了修改表或分区的操作类型、用户、查询、环境信息、原始的元数据和数据全量快照以及修改后的元数据和数据全量快照,用户可以利用数据版本管理恢复模块执行回滚或者数据恢复等操作。可选地,在步骤s306中,通过第二变更日志中记录的用户数据信息与元数据信息以及第一变更日志中记录的用户数据信息与元数据信息将第二变更日志恢复至第一变更日志可以包括以下执行步骤:步骤s3061:从第一变更日志中解析出第一原始用户数据和第一原始元数据;考虑到第一变更日志中记录的用户数据信息包括:在对处理对象(分区或者列表)执行与第一变更日志中包含的操作类型对应的修改操作前的第一原始用户数据和第一原始元数据以及在执行与第一变更日志中包含的操作类型对应的修改操作后的已修改用户数据和已修改元数据。而如果需要将当前最新记录的变更日志恢复到用户指定的变更日志,那么最终结果便是需要将当前最新记录的变更日志中用户数据信息和元数据信息恢复至在对处理对象(分区或者列表)执行与第一变更日志中包含的操作类型对应的修改操作前的第一原始用户数据和第一原始元数据。因此,需要从第一变更日志中解析(或提取)出第一原始用户数据和第一原始元数据。即,待恢复到的目标对象为第一原始用户数据和第一原始元数据。步骤s3062:从第二变更日志中解析出第二原始用户数据和第二原始元数据,并将第二原始用户数据恢复至第一原始用户数据以及将第二原始元数据恢复至第一原始元数据;或者,从第二变更日志中解析出已修改用户数据和已修改元数据,并将已修 改用户数据恢复至第一原始用户数据以及将已修改元数据恢复至第一原始元数据,其中,已修改用户数据和已修改元数据是按照第二变更日志中记录的修改对象的操作类型对第二变更日志中记录的原始用户数据和原始元数据进行修改后得到的。相对于上述待恢复到的目标对象而言,被恢复的源对象既可以是在对处理对象(分区或者列表)执行与第二变更日志中包含的操作类型对应的修改操作前的第二原始用户数据和第二原始元数据,也可以是在执行与第二变更日志中包含的操作类型对应的修改操作后的已修改用户数据和已修改元数据,进而在确定出待恢复到的目标对象以及被恢复的源对象的基础上,通过仅执行一次数据恢复操作,便可以直接将第二原始用户数据恢复至第一原始用户数据以及将第二原始元数据恢复至第一原始元数据;或者,将已修改用户数据恢复至第一原始用户数据以及将已修改元数据恢复至第一原始元数据。例如:用户在2016-01-0809:36:15在支付宝上执行第一次操作,创建一个个人账户,此时将产生第一个变更记录,其用户数据信息主要包括:user,2016-01-0809:36:15,新建账户内的具体金额(0元),相应的元数据信息则主要包括:用户名、创建时间以及账户余额等描述用户数据属性的信息。由于该账户为新建账户,因此,该新建账户的余额为0元。如果用户在2016-01-0809:57:23执行第二次操作,向支付宝的新建账户存入200元人民币,那么此时将产生第二个变更记录,其用户数据信息主要包括:user,2016-01-0809:57:23,新建账户内的具体金额(200元)以及人民币,相应的元数据信息则主要包括:用户名、创建时间、账户余额以及币种等描述用户数据属性的信息。如果用户在2016-01-0909:52:20执行第三次操作,从支付宝的新建账户提取50元人民币,那么此时将产生第三个变更记录,其用户数据信息主要包括:user,2016-01-0909:52:20,新建账户内的具体金额(150元)以及人民币,相应的元数据信息则主要包括:用户名、创建时间、账户余额以及币种等描述用户数据属性的信息。通过此次操作,当前变更记录可以包括:对用户账户存储记录表进行修改操作前的原始用户数据(user,2016-01-0809:57:23,200元以及人民币)以及原始元数据(用户名、创建时间、账户余额以及币种);对用户账户存储记录表进行修改操作后的已修改用户数据(user,2016-01-0909:52:20,150元以及人民币)以及已修改元数据(用户名、创建时间、账户余额以及币种)。在中间经历过n-1次操作后,如果用户在2016-01-1014:32:28执行第n次操作,需要将账户内的100元人民币转成日元,那么此时将产生第n个变更记录,其元数据信息在现有的用户名、创建时间、账户余额以及币种等属性信息的基础上还可能需要 增加汇率属性,相应地,用户数据信息在币种属性下除了人民币以外又新增了日元数据以及汇率值(1人民币=17.4825日元)。通过此次操作,当前变更记录可以包括:对用户账户存储记录表进行修改操作前的原始用户数据(user,2016-01-1009:40:50,200元以及人民币)以及原始元数据(用户名、创建时间、账户余额以及币种);对用户账户存储记录表进行修改操作后的已修改用户数据(user,2016-01-1014:32:28,200元,人民币以及日元)以及已修改元数据(用户名、创建时间、账户余额、币种以及汇率)。如果用户需要将第n个变更记录恢复至第三个变更记录,那么首先,需要从第三个变更记录中提取对用户账户存储记录表进行修改操作前的原始用户数据(user,2016-01-0809:57:23,200元以及人民币)以及原始元数据(用户名、创建时间、账户余额以及币种)。其次,再从第n个变更记录中提取对用户账户存储记录表进行修改操作前的原始用户数据(user,2016-01-1009:40:50,200元以及人民币)以及原始元数据(用户名、创建时间、账户余额以及币种);或者,对用户账户存储记录表进行修改操作后的已修改用户数据(user,2016-01-1014:32:28,200元,人民币以及日元)以及已修改元数据(用户名、创建时间、账户余额、币种以及汇率)。然后,既可以将原始用户数据(user,2016-01-1009:40:50,200元以及人民币)以及原始元数据(用户名、创建时间、账户余额以及币种)恢复至原始用户数据(user,2016-01-0809:57:23,200元以及人民币)以及原始元数据(用户名、创建时间、账户余额以及币种),也可以将已修改用户数据(user,2016-01-1014:32:28,200元,人民币以及日元)以及已修改元数据(用户名、创建时间、账户余额、币种以及汇率)恢复至原始用户数据(user,2016-01-0809:57:23,200元以及人民币)以及原始元数据(用户名、创建时间、账户余额以及币种)。可选地,在步骤s304中,根据标识信息查找第一变更日志可以包括以下方式之一:方式一、通过在变更日志查询命令中添加列表名称获取变更日志列表信息或者通过在变更日志查询命令中添加分区名称获取变更日志分区信息,并根据标识信息从变更日志列表信息或者变更日志分区信息中查找第一变更日志;作为分布式数据处理平台系统用户可以通过showchangelogsfortable<表名>[partition(<分区名>)]语法结构查询特定表或分区的数据版本管理恢复模块。然后,再根据logid从特定表或分区的数据版本管理恢复模块查询到对应的变更记录。方式二、通过在变更日志查询命令中添加列表名称和标识信息或者通过在变更日志查询命令中添加分区名称和标识信息,查找第一变更日志。作为分布式数据处理平台系统用户也可以通过showchangelogsfortable<表名>[partition(<分区名>)]<logid>语法直接查询到特定表或分区的变更记录。其中,上述<logid>是每一条数据版本管理恢复模块的唯一id,其本质上是一个不会重复的精确到纳秒的时间戳。在showchangelogs列表中可以看到,当因为误操作造成数据被误删除或者被误覆盖发生异常时,便可以通过上述两条命令查找到特定的变更记录,以便于用户及时发现问题,恢复数据版本。可选地,在步骤s302中,获取第一变更日志的标识信息可以包括以下执行步骤:s3021:接收触发数据恢复操作的控制指令,其中,控制指令中携带有标识信息;s3022:对控制指令执行鉴权操作,并在鉴权成功的情况下,从控制指令中获取标识信息。在优选实施例中,用户可以指定需要恢复到的logid,并可以使用undo语法结构(即undotable<表名>[partition(<分区名>)]to<logid>)启动数据恢复机制,仅通过执行一次数据恢复操作直接将最新记录的变更日志恢复至需要保留的变更日志。因此,无论是分区或列表数据被误删除或者被误覆盖,都可以使用上述命令进行恢复。当然,在用户指定需要恢复到的logid并启动数据恢复机制后,需要预先对用户进行分布式数据处理平台系统鉴权,判断用户是否具有对变更日志执行恢复操作的权限,如果用户具有对变更日志执行恢复操作的权限,则从用户提交的触发数据恢复机制的命令中获取logid;而如果用户不具有对变更日志执行恢复操作的权限,则直接向用户发出告警或拒绝用户对数据版本管理恢复模块进行访问。可选地,在通过第二变更日志中记录的用户数据信息与元数据信息以及第一变更日志中记录的用户数据信息与元数据信息将第二变更日志恢复至第一变更日志之后,还包括:返回与控制指令对应的提示信息,其中,提示信息用于表示第二变更日志已经成功恢复至第一变更日志。如果在用户指定需要恢复到的logid,并使用undo语法结构(即undotable<表名>[partition(<分区名>)]to<logid>)启动数据恢复机制,然后仅通过执行一次数据恢复操作便成功将最新记录的变更日志恢复至需要保留的变更日志后,可以向用户返回数据恢复操作执行成功,最新记录的变更日志已经恢复至用户指定的目标变更日志的提示信息,进而结束整个数据恢复流程。为了更加突出本发明实施例所提供的技术方案与现有解决方案的区别,将结合图3所示的示例作进一步的比对。图4是根据本发明优选实施例的采用不同方式查询日 志变更记录的对比示意图。如图4所示,假设当前最新存储的日志记录表中包括标识信息依次为:1452216975272855351,1452216989166724482,1452217464192642287,…,1452407625046628818,1452407726812625638,1452407775639627693。假设当前需要恢复至标识信息为1452216989166724482这个版本的日志记录,那么按照相关技术中提供的恢复方案:1452407775639627693→1452407726812625638→1452407625046628818→…→1452217464192642287→1452216989166724482;即按照变更记录的记录顺序依次回滚至1452216989166724482。与之相比,采用本发明实施例所提供的技术方案:1452407775639627693→1452216989166724482;即从当前最新记录的1452407775639627693直接恢复至指定版本1452216989166724482。需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的执行数据恢复操作的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。实施例2根据本发明实施例,还提供了一种用于实施上述执行数据恢复操作的装置,图5是根据本发明实施例的执行数据恢复操作的装置的结构框图。如图5所示,该装置包 括:获取模块10,用于获取待恢复到的第一变更日志的标识信息;查找模块20,用于根据标识信息查找第一变更日志;恢复模块30,用于通过最新记录的第二变更日志中记录的用户数据信息与元数据信息以及第一变更日志中记录的用户数据信息与元数据信息将第二变更日志恢复至第一变更日志,其中,在第二变更日志与第一变更日志之间存在多条待撤销的变更日志。可选地,图6是根据本发明优选实施例的执行数据恢复操作的装置的结构框图。如图6所示,恢复模块30包括:解析单元300,用于从第一变更日志中解析出第一原始用户数据和第一原始元数据;恢复单元302,用于从第二变更日志中解析出第二原始用户数据和第二原始元数据,并将第二原始用户数据恢复至第一原始用户数据以及将第二原始元数据恢复至第一原始元数据。可选地,解析单元300,用于从第一变更日志中解析出第一原始用户数据和第一原始元数据;恢复单元302,用于从第二变更日志中解析出已修改用户数据和已修改元数据,并将已修改用户数据恢复至第一原始用户数据以及将已修改元数据恢复至第一原始元数据,其中,已修改用户数据和已修改元数据是按照第二变更日志中记录的修改对象的操作类型对第二变更日志中记录的原始用户数据和原始元数据进行修改后得到的。可选地,查找模块20,用于通过在变更日志查询命令中添加列表名称获取变更日志列表信息或者通过在变更日志查询命令中添加分区名称获取变更日志分区信息,并根据标识信息从变更日志列表信息或者变更日志分区信息中查找第一变更日志;或者,通过在变更日志查询命令中添加列表名称和标识信息或者通过在变更日志查询命令中添加分区名称和标识信息,查找第一变更日志。可选地,如图6所示,获取模块10可以包括:接收单元100,用于接收触发数据恢复操作的控制指令,其中,控制指令中携带有标识信息;获取单元102,用于对控制指令执行鉴权操作,并在鉴权成功的情况下,从控制指令中获取标识信息。可选地,如图6所示,上述装置还可以包括:反馈模块40,用于返回与控制指令对应的提示信息,其中,提示信息用于表示第二变更日志已经成功恢复至第一变更日志。实施例3本发明的实施例可以提供一种计算机终端,该计算机终端可以是计算机终端群中的任意一个计算机终端设备。可选地,在本实施例中,上述计算机终端也可以替换为 移动终端等终端设备。可选地,在本实施例中,上述计算机终端可以位于计算机网络的多个网络设备中的至少一个网络设备。可选地,图7是根据本发明实施例的一种计算机终端的结构框图。如图7所示,该计算机终端可以包括:一个或多个(图中仅示出一个)处理器以及存储器。其中,存储器可用于存储软件程序以及模块,如本发明实施例中的执行数据恢复操作方法和装置对应的程序指令/模块,处理器通过运行存储在存储器内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的执行数据恢复操作的方法。存储器可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。处理器可以通过传输装置调用存储器存储的信息及应用程序,以执行下述步骤:s1,获取待恢复到的第一变更日志的标识信息;s2,根据标识信息查找第一变更日志;s3,通过最新记录的第二变更日志中记录的用户数据信息与元数据信息以及第一变更日志中记录的用户数据信息与元数据信息将第二变更日志恢复至第一变更日志,其中,在第二变更日志与第一变更日志之间存在多条待撤销的变更日志。可选的,上述处理器还可以执行如下步骤的程序代码:从第一变更日志中解析出第一原始用户数据和第一原始元数据;从第二变更日志中解析出第二原始用户数据和第二原始元数据,并将第二原始用户数据恢复至第一原始用户数据以及将第二原始元数据恢复至第一原始元数据。可选的,上述处理器还可以执行如下步骤的程序代码:从第一变更日志中解析出第一原始用户数据和第一原始元数据;从第二变更日志中解析出已修改用户数据和已修改元数据,并将已修改用户数据恢复至第一原始用户数据以及将已修改元数据恢复至第一原始元数据,其中,已修改用户数据和已修改元数据是按照第二变更日志中记录的修改对象的操作类型对第二变更日志中记录的原始用户数据和原始元数据进行修改后得到的。可选的,上述处理器还可以执行如下步骤的程序代码:通过在变更日志查询命令中添加列表名称获取变更日志列表信息或者通过在变更日志查询命令中添加分区名称 获取变更日志分区信息,并根据标识信息从变更日志列表信息或者变更日志分区信息中查找第一变更日志;或者,通过在变更日志查询命令中添加列表名称和标识信息或者通过在变更日志查询命令中添加分区名称和标识信息,查找第一变更日志。可选的,上述处理器还可以执行如下步骤的程序代码:接收触发数据恢复操作的控制指令,其中,控制指令中携带有标识信息;对控制指令执行鉴权操作,并在鉴权成功的情况下,从控制指令中获取标识信息。可选的,上述处理器还可以执行如下步骤的程序代码:返回与控制指令对应的提示信息,其中,提示信息用于表示第二变更日志已经成功恢复至第一变更日志。采用本发明实施例,采用从当前最新记录的变更日志仅通过执行一次恢复操作便恢复至指定的目标变更日志的方式,通过最新记录的变更日志中记录的用户数据信息与元数据信息以及目标变更日志中记录的用户数据信息与元数据信息将最新记录的变更日志直接恢复至目标变更日志而省略了对最新记录的变更日志与目标变更日志之间存在多条待撤销的变更日志的依次回滚的处理过程,从而实现了降低分布式数据库恢复机制的操作复杂度,提高分布式数据库恢复机制的成功率以及减少分布式数据库恢复机制的时间开销的技术效果,进而解决了相关技术中的所提到的分布式数据处理平台系统恢复机制需要从当前最新的变更日志经过多个中间变更日志依次回滚才能恢复至指定的目标变更日志,操作较为繁琐且易造成数据丢失的技术问题。本领域普通技术人员可以理解,图7所示的结构仅为示意,计算机终端也可以是智能手机(如android手机、ios手机等)、平板电脑、掌声电脑以及移动互联网设备(mobileinternetdevices,mid)、pad等终端设备。图7其并不对上述电子装置的结构造成限定。例如,计算机终端还可包括比图7中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图7所示不同的配置。本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(read-onlymemory,rom)、随机存取器(randomaccessmemory,ram)、磁盘或光盘等。实施例4本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于保存上述实施例一所提供的执行数据恢复操作的方法所执行的程序代码。可选地,在本实施例中,上述存储介质可以位于计算机网络中计算机终端群中的任意一个计算机终端中,或者位于移动终端群中的任意一个移动终端中。可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:s1,获取待恢复到的第一变更日志的标识信息;s2,根据标识信息查找第一变更日志;s3,通过最新记录的第二变更日志中记录的用户数据信息与元数据信息以及第一变更日志中记录的用户数据信息与元数据信息将第二变更日志恢复至第一变更日志,其中,在第二变更日志与第一变更日志之间存在多条待撤销的变更日志。可选地,在本实施例中,存储介质还被设置为存储用于执行以下步骤的程序代码:从第一变更日志中解析出第一原始用户数据和第一原始元数据;从第二变更日志中解析出第二原始用户数据和第二原始元数据,并将第二原始用户数据恢复至第一原始用户数据以及将第二原始元数据恢复至第一原始元数据。可选地,在本实施例中,存储介质还被设置为存储用于执行以下步骤的程序代码:从第一变更日志中解析出第一原始用户数据和第一原始元数据;从第二变更日志中解析出已修改用户数据和已修改元数据,并将已修改用户数据恢复至第一原始用户数据以及将已修改元数据恢复至第一原始元数据,其中,已修改用户数据和已修改元数据是按照第二变更日志中记录的修改对象的操作类型对第二变更日志中记录的原始用户数据和原始元数据进行修改后得到的。可选地,在本实施例中,存储介质还被设置为存储用于执行以下步骤的程序代码:通过在变更日志查询命令中添加列表名称获取变更日志列表信息或者通过在变更日志查询命令中添加分区名称获取变更日志分区信息,并根据标识信息从变更日志列表信息或者变更日志分区信息中查找第一变更日志;或者,通过在变更日志查询命令中添加列表名称和标识信息或者通过在变更日志查询命令中添加分区名称和标识信息,查找第一变更日志。可选地,在本实施例中,存储介质还被设置为存储用于执行以下步骤的程序代码:接收触发数据恢复操作的控制指令,其中,控制指令中携带有标识信息;对控制指令执行鉴权操作,并在鉴权成功的情况下,从控制指令中获取标识信息。可选地,在本实施例中,存储介质还被设置为存储用于执行以下步骤的程序代码:返回与控制指令对应的提示信息,其中,提示信息用于表示第二变更日志已经成功恢复至第一变更日志。上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。以上所述仅是本发明的优选实施方式,应当指出,对于本
技术领域
:的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1