发布信息

一种数据回滚方法、装置、设备及介质与流程

作者:admin      2022-08-30 21:13:03     479



计算;推算;计数设备的制造及其应用技术1.本公开涉及数据库技术领域,尤其涉及一种数据回滚方法、装置、设备及介质。背景技术:2.为了防止数据丢失,数据库可以采用多副本集的架构同步数据。3.当数据库进行数据恢复时,全部节点需要下载外部的备份数据,并重新载入该备份数据。外部的备份数据可能会因为受到攻击等原因造成数据不可靠,导致数据恢复失败,数据库会陷入不可用的状态。现有技术中数据恢复失败时,会再次获取外部的备份数据重新恢复,但是可能还会失败,不能解决问题。技术实现要素:4.为了解决上述技术问题或者至少部分地解决上述技术问题,本公开提供了一种数据回滚方法、装置、设备及介质。5.本公开实施例提供了一种数据回滚方法,所述方法包括:6.获取数据回滚请求;7.将预先确定的备份节点切换为当前主节点,并且将存量节点中的原始主节点切换为当前从节点;8.基于所述当前主节点中的备份数据,对包括所述当前从节点的所述存量节点进行数据回滚。9.本公开实施例还提供了一种数据回滚装置,所述装置包括:10.请求获取模块,用于获取数据回滚请求;11.切换模块,用于将预先确定的备份节点切换为当前主节点,并且将存量节点中的原始主节点切换为当前从节点;12.数据回滚模块,用于基于所述当前主节点中的备份数据,对包括所述当前从节点的所述存量节点进行数据回滚。13.本公开实施例还提供了一种电子设备,所述电子设备包括:处理器;用于存储所述处理器可执行指令的存储器;所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现如本公开实施例提供的数据回滚方法。14.本公开实施例还提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行如本公开实施例提供的数据回滚方法。15.本公开实施例提供的技术方案与现有技术相比具有如下优点:本公开实施例提供的数据回滚方案,获取数据回滚请求;将备份节点切换为当前主节点,并且将存量节点中的原始主节点切换为当前从节点;基于当前主节点中的备份数据,对包括当前从节点的存量节点进行数据回滚。采用上述技术方案,可以将一个原始节点作为备份节点,当需要进行数据回滚时,将该备份节点的角色切换为主节点,通过其备份数据进行全部节点的数据回滚,实现了快速的数据回滚,避免数据库陷入长时间的不可用状态。附图说明16.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。17.为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。18.图1为本公开实施例提供的一种数据回滚方法的流程示意图;19.图2为本公开实施例提供的另一种数据回滚方法的流程示意图;20.图3为本公开实施例提供的一种数据回滚装置的结构示意图;21.图4为本公开实施例提供的一种电子设备的结构示意图。具体实施方式22.为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。23.在下面的描述中阐述了很多具体细节以便于充分理解本公开,但本公开还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本公开的一部分实施例,而不是全部的实施例。24.图1为本公开实施例提供的一种数据回滚方法的流程示意图,该方法可以由数据回滚装置执行,其中该装置可以采用软件和/或硬件实现,一般可集成在电子设备中。如图1所示,该方法包括:25.步骤101、获取数据回滚请求。26.其中,数据回滚请求用于进行数据库中全部节点的数据恢复的请求,本公开实施例中以mongodb数据库为例进行说明。mongodb数据库可以采用三节点副本集的高可用架构,三个数据节点位于不同的物理服务器上,可以自动同步数据。27.本公开实施例中,获取数据回滚请求之前,还包括:获取数据恢复请求;添加空白节点,并将空白节点替换目标节点,其中,目标节点为原始主节点、原始从节点或原始隐藏节点;基于外部备份数据对替换后的原始主节点、原始从节点和原始隐藏节点,进行数据恢复。当用户发现问题或者需要使用历史数据时,可以发起数据恢复请求。数据库的副本集可以提供三种角色,隐藏(hidden)节点是数据库中默认不支持访问的数据节点,主(primary)节点是支持读写请求的数据节点,从(secondary)节点是支持只读请求的数据节点,主节点和从节点提供服务,当主节点出现故障,系统可以自动选举新的主节点,当从节点不可用,由备用节点接管服务,多重保障服务可用性。原始隐藏节点、原始主节点和原始从节点是指数据恢复之前的三种角色的节点。28.空白节点是指一个数据为空的数据节点。目标节点是原始主节点、原始从节点和原始隐藏节点中的一个,由于原始主节点和原始从节点支持访问,当原始主节点或原始从节点作为目标节点时,需要重新确定新的,并且进行外部访问网络的切换,目标节点优选为原始隐藏节点,对用户的访问影响最低。将空白节点替换目标节点,替换后的目标节点的名称不变,之后替换后的原始主节点、原始从节点和原始隐藏节点均可以下载外部备份数据,进行数据恢复,并重新组建副本集。其中,外部备份数据可以为数据库在外部设备存储的备份数据,外部备份数据可以包括物理备份数据和增量备份数据等。例如,当目标节点为原始隐藏节点,将空白节点替换原始隐藏节点作为新的原始隐藏节点,之后原始主节点、原始从节点和替换后的原始隐藏节点可以通过外部备份数据进行数据恢复。29.本公开实施例中,获取数据回滚请求,包括:如果检测到数据恢复的结果为数据恢复失败,则确定获取到数据回滚请求。外部的备份数据可能会因为受到攻击等原因造成数据不可靠,因此当检测到上述数据恢复的结果为数据恢复失败,则可以确定获取到数据回滚请求,触发进行数据回滚。可选的,当检测到数据库不可用,或者,接收到用户发送的数据丢失等故障信息时,则确定数据恢复的结果为数据恢复失败。30.步骤102、将预先确定的备份节点切换为当前主节点,并且将存量节点中的原始主节点切换为当前从节点。31.其中,备份节点为之前数据恢复过程中预先确定的一个节点,本公开实施例中备份节点可以为原始主节点、原始从节点或原始隐藏节点。本公开实施例中,添加空白节点,并将空白节点替换目标节点之前,还包括:将目标节点确定为备份节点。目标节点确定为备份节点之后,该目标节点不再参与数据同步。32.具体的,获取数据回滚请求之后,可以通过修改角色信息,将备份节点切换为当前主节点,并且将原始主节点切换为当前从节点。存量节点为数据库副本集中包括的节点,原始主节点切换之后,存量节点可以包括当前从节点、原始从节点和原始隐藏节点,存量节点中的一个节点由空白节点替换得到。33.步骤103、基于当前主节点中的备份数据,对包括当前从节点的存量节点进行数据回滚。34.数据回滚指的是数据处理错误时,将数据恢复到历史正确状态的行为,本公开实施例中是指数据恢复失败时,将数据恢复到历史状态。当前主节点中的备份数据为上述进行数据恢复时的节点数据,与上述外部备份数据的时间不同,外部备份数据可以为数据恢复的前一个备份时间存储的节点数据,例如外部备份数据可以为数据恢复的前一天存储的节点数据。35.具体的,基于当前主节点中的备份数据,对包括当前从节点的存量节点进行数据回滚,包括:通过一致性协议将当前主节点中的备份数据同步至当前从节点、原始从节点和原始隐藏节点。其中,一致性协议(raft协议),又称数据复制协议,是一种用于实现数据库副本集中各节点之间数据保持一致的协议。通过一致性协议,当前主节点的备份数据可以同步至当前从节点、原始从节点和原始隐藏节点中,即使得数据库中全部节点的数据实现正确恢复。36.本公开实施例提供的数据回滚方案,获取数据回滚请求;将备份节点切换为当前主节点,并且将存量节点中的原始主节点切换为当前从节点;基于当前主节点中的备份数据,对包括当前从节点的存量节点进行数据回滚。采用上述技术方案,可以将一个原始节点作为备份节点,当需要进行数据回滚时,将该备份节点的角色切换为主节点,通过其备份数据进行全部节点的数据回滚,实现了快速的数据回滚,避免数据库陷入长时间的不可用状态。37.在一些实施例中,基于外部备份数据对替换后的原始主节点、原始从节点和原始隐藏节点,进行数据恢复之后,还可以包括:如果确定数据恢复的结果为数据恢复成功,则在设定时间后删除备份节点。其中,设定时间为可以根据实际情况预先设定,例如设定时间可以为两天。当数据恢复的结果为数据恢复成功,则可以在设定时间之后删除备份节点,并将该备份节点的资源释放,以节省存储资源。38.图2为本公开实施例提供的另一种数据回滚方法的流程示意图,本实施例在上述实施例的基础上,进一步优化了上述数据回滚方法。如图2所示,该方法包括:39.步骤201、获取数据恢复请求。40.步骤202、将目标节点确定为备份节点。41.其中,目标节点为原始主节点、原始从节点或原始隐藏节点。42.步骤203、添加空白节点,并将空白节点替换目标节点。43.步骤204、基于外部备份数据对替换后的原始主节点、原始从节点和原始隐藏节点,进行数据恢复。44.步骤205、是否检测到数据恢复的结果为数据恢复成功,若是,则执行步骤209;否则,执行步骤206。45.步骤206、获取数据回滚请求。46.步骤207、将预先确定的备份节点切换为当前主节点,并且将存量节点中的原始主节点切换为当前从节点。47.其中,备份节点为原始主节点、原始从节点或原始隐藏节点。48.步骤208、基于当前主节点中的备份数据,对包括当前从节点的存量节点进行数据回滚。49.存量节点包括当前从节点、原始从节点和原始隐藏节点,存量节点中的一个节点由空白节点替换得到。50.基于当前主节点中的备份数据,对包括当前从节点的存量节点进行数据回滚,可以包括:通过数据一致性协议将当前主节点中的备份数据同步至当前从节点、原始从节点和原始隐藏节点。51.步骤209、在设定时间后删除备份节点。52.本公开实施例中以mongodb数据库为例进行说明,具体可以使用mongodb的配置管理功能,完成mongodb层面的节点管理;使用数据库平台搭载数据库服务的容器节点的关系;通过mongodb的备份功能,实现新增空白节点与存量节点的同步。53.本方案中,通过增加空白节点,实现数据库的备份及恢复,采用节点替换的方式来取代现有的全部节点数据恢复的方法,以此来实现实例在数据恢复遇到错误时,可以快速的启用旧节点上的数据进行快速的回滚。相对于现有的通过外部备份数据进行恢复的方案:本方案在耗时上更短,因为备份时间随着数据增大而变长,极端情况下甚至可能超过24小时;本方案在回滚上更加快速,当数据恢复发生错误时,可以直接使用被摘掉的旧节点作为新的主节点来恢复数据,而不用再进行备份恢复的流程,大大降低了用户不可用时间。54.本公开实施例提供的数据回滚方案,获取数据恢复请求,将目标节点确定为备份节点,添加空白节点,并将空白节点替换目标节点,如果检测到数据恢复的结果为数据恢复失败,获取数据回滚请求,将备份节点切换为当前主节点,并且将存量节点中的原始主节点切换为当前从节点,基于当前主节点中的备份数据,对包括当前从节点的存量节点进行数据回滚;如果检测到数据恢复的结果为数据恢复成功,则在设定时间后删除备份节点。采用上述技术方案,可以将一个原始节点作为备份节点,当需要进行数据回滚时,将该备份节点的角色切换为主节点,通过其备份数据进行全部节点的数据回滚,实现了快速的数据回滚,避免数据库陷入长时间的不可用状态。55.图3为本公开实施例提供的一种数据回滚装置的结构示意图,该装置可由软件和/或硬件实现,一般可集成在电子设备中。如图3所示,该装置包括:56.请求获取模块301,用于获取数据回滚请求;57.切换模块302,用于将预先确定的备份节点切换为当前主节点,并且将存量节点中的原始主节点切换为当前从节点;58.数据回滚模块303,用于基于所述当前主节点中的备份数据,对包括所述当前从节点的所述存量节点进行数据回滚。59.本公开实施例提供的数据回滚方案,获取数据回滚请求;将备份节点切换为当前主节点,并且将存量节点中的原始主节点切换为当前从节点;基于当前主节点中的备份数据,对包括当前从节点的存量节点进行数据回滚。采用上述技术方案,可以将一个原始节点作为备份节点,当需要进行数据回滚时,将该备份节点的角色切换为主节点,通过其备份数据进行全部节点的数据回滚,实现了快速的数据回滚,避免数据库陷入长时间的不可用状态。60.可选的,所述装置还包括数据恢复模块,具体用于:获取数据回滚请求之前,还包括:61.获取数据恢复请求;62.添加空白节点,并将所述空白节点替换目标节点,其中,所述目标节点为原始主节点、原始从节点或原始隐藏节点;63.基于外部备份数据对替换后的所述原始主节点、所述原始从节点和所述原始隐藏节点,进行数据恢复。64.可选的,所述存量节点包括所述当前从节点、所述原始从节点和所述原始隐藏节点,所述存量节点中的一个节点由所述空白节点替换得到。65.可选的,所述数据回滚模块303具体用于:66.通过一致性协议将所述当前主节点中的备份数据同步至所述当前从节点、所述原始从节点和所述原始隐藏节点。67.可选的,所述数据恢复模块还用于:添加空白节点,并将所述空白节点替换目标节点之前,68.将所述目标节点确定为备份节点。69.可选的,所述装置还包括备份删除模块,具体用于:基于外部备份数据对替换后的所述原始主节点、所述原始从节点和所述原始隐藏节点,进行数据恢复之后,70.如果确定所述数据恢复的结果为数据恢复成功,则在设定时间后删除所述备份节点。71.可选的,所述请求获取模块301具体用于:72.如果检测到所述数据恢复的结果为数据恢复失败,则确定获取到数据回滚请求。73.本公开实施例所提供的数据回滚装置可执行本发明任意实施例所提供的数据回滚方法,具备执行方法相应的功能模块和有益效果。74.图4为本公开实施例提供的一种电子设备的结构示意图。如图4所示,电子设备400包括一个或多个处理器401和存储器402。75.处理器401可以是中央处理单元(cpu)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备400中的其他组件以执行期望的功能。76.存储器402可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(ram)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(rom)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器401可以运行所述程序指令,以实现上文所述的本公开的实施例的数据回滚方法以及/或者其他期望的功能。在所述计算机可读存储介质中还可以存储诸如输入信号、信号分量、噪声分量等各种内容。77.在一个示例中,电子设备400还可以包括:输入装置403和输出装置404,这些组件通过总线系统和/或其他形式的连接机构(未示出)互连。78.此外,该输入装置403还可以包括例如键盘、鼠标等等。79.该输出装置404可以向外部输出各种信息,包括确定出的距离信息、方向信息等。该输出装置404可以包括例如显示器、扬声器、打印机、以及通信网络及其所连接的远程输出设备等等。80.当然,为了简化,图4中仅示出了该电子设备400中与本公开有关的组件中的一些,省略了诸如总线、输入/输出接口等等的组件。除此之外,根据具体应用情况,电子设备400还可以包括任何其他适当的组件。81.除了上述方法和设备以外,本公开的实施例还可以是计算机程序产品,其包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本公开实施例所提供的数据回滚方法。82.所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如java、c++等,还包括常规的过程式程序设计语言,诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。83.此外,本公开的实施例还可以是计算机可读存储介质,其上存储有计算机程序,所述计算机程序在被处理器运行时使得所述处理器执行本公开实施例所提供的数据回滚方法。84.所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。85.需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。86.以上所述仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所述的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。









图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!




内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,发布内容不收取任何费用也不接任何广告!




免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理,本文部分文字与图片资源来自于网络,部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!

相关内容 查看全部