数据库数据闪回方法和装置制造方法及图纸

技术编号:14894987 阅读:92 留言:0更新日期:2017-03-29 10:16
本发明专利技术公开了一种数据库数据闪回方法和装置,涉及数据库技术领域。所述方法包括:接收数据恢复请求;所述数据恢复请求包括针对数据库的误操作所对应的第一时间;从数据库的操作记录日志中,获取对应所述第一时间的误操作部分的操作记录日志;所述操作记录日志按行格式记录了对数据库的非查询类操作;从所述操作记录日志中解析与所述误操作对应的各行操作;从与所述误操作对应的各行操作的最后一行开始,针对数据库进行与所述误操作对应的反向操作。本发明专利技术取得了使用的时间较短、恢复效率高,能够有效解决恢复时间较长而产生的用户对数据库访问的影响的有益效果。

【技术实现步骤摘要】

本专利技术涉及数据库
,具体涉及一种数据库数据闪回方法和装置。
技术介绍
数据库(Database),是按照数据结构来组织、存储和管理数据的仓库。数据库有很多种类型,从最简单的存储有各种数据的表格到能够进行海量数据存储的大型数据库系统都在各个方面得到了广泛的应用。目前,很多业务都用到了数据库,比如存在如下一种架构,前端服务器的各个应用业务服务对后端服务器中的相应该应用服务的数据库进行数据管理操作,比如查询、更新、删除、修改等操作。而前端应用业务服务的技术人员,对上述数据库进行操作时,可能存在误操作,比如进行删除时,应该设置一个删除条件,比如删除表某些ID的行,但是该技术人员未设置该删除条件,其可能将整个表进行删除。如此,该误操作则可能会影响数据库后续操作的有效性。对于上述情况,在先技术中,可以采用如下方式对数据库的数据进行恢复:1、查找误操作时刻之前最近的数据库备份。2、通过该数据库备份将数据库恢复到备份时刻。3、在该恢复的数据库的基础上,由技术人员将备份时刻到误操作时刻的正常操作,按操作前后顺序重新执行一遍。比如,在先技术每天12:00对数据库进行备份,当某一天10:00数据库被误操作,则需要提取前一天的数据库备份,将数据库恢复到前一天12:00时的状态,然后在从12:00时的状态,将从12:00开始至该天10:00的误操作时刻之前对数据库的操作,按操作前后顺序重新执行一遍,使数据库达到该天误操作之前的正确的状态。但是其使用前一天的数据库备份从恢复的过程需要的时间长,并且需要将备份时刻到误操作时刻之间的操作重新执行一遍,其也需要很长时间。因此,在先技术的数据库的恢复效率低、时间长,特别是对于很多线上应用业务来说,其较长的恢复时间会大大影响用户对数据库的访问。
技术实现思路
鉴于上述问题,提出了本专利技术以便提供一种克服上述问题或者至少部分地解决上述问题的数据库数据闪回装置和相应的数据库数据闪回方法。依据本专利技术的一个方面,提供了一种数据库数据闪回方法,包括:接收数据恢复请求;所述数据恢复请求包括针对数据库的误操作所对应的第一时间;从数据库的操作记录日志中,获取对应所述第一时间的误操作部分的操作记录日志;所述操作记录日志按行格式记录了对数据库的非查询类操作;从所述操作记录日志中解析与所述误操作对应的各行操作;从与所述误操作对应的各行操作的最后一行开始,针对数据库进行与所述误操作对应的反向操作。可选地,所述从数据库的操作记录日志中,获取对应所述第一时间的误操作部分的操作记录日志,包括:启动第一进程,由所述第一进程模拟所述数据库的从库,并通知所述数据库返回对应所述第一时间的误操作部分的操作记录日志。可选地,所述操作记录日志为二进制的binlog日志。可选地,所述从所述操作记录日志中解析与所述误操作对应的各行操作,包括:将所述binlog日志的二进制流解析为按时间序列记录的多条行可执行操作;将所述多条行可执行操作作为与所述误操作对应的各行操作,或者从所述多条行可执行操作中,提取与所述误操作关联的各行操作。可选地,在从所述操作记录日志中解析与所述误操作对应的各行操作之后,还包括:根据与所述误操作对应的各行操作,生成误操作指示文件。从与所述误操作对应的各行操作的最后一行开始,针对数据库进行与所述操作对应的反向操作包括:从与所述误操作对应的各行操作的最后一行开始,逐条提取对应进行相反操作的SQL语句;执行所述SQL语句,以逐条还原数据库中的数据。可选地,所述非查询类操作包括:删除操作、更新操作、插入操作。根据本专利技术的另一方面,提供了一种数据库数据闪回装置,包括:恢复请求接收模块,适于接收数据恢复请求;所述数据恢复请求包括针对数据库的误操作所对应的第一时间;操作记录日志获取模块,适于从数据库的操作记录日志中,获取对应所述第一时间的误操作部分的操作记录日志;所述操作记录日志按行格式记录了对数据库的非查询类操作;解析模块,适于从所述操作记录日志中解析与所述误操作对应的各行操作;反向操作模块,适于从与所述误操作对应的各行操作的最后一行开始,针对数据库进行与所述误操作对应的反向操作。可选地,所述操作记录日志获取模块包括:操作记录日志返回子模块,适于启动第一进程,由所述第一进程模拟所述数据库的从库,并通知所述数据库返回对应所述第一时间的误操作部分的操作记录日志。可选地,所述操作记录日志为二进制的binlog日志。可选地,所述解析模块包括:二进制流解析子模块,适于将所述binlog日志的二进制流解析为按时间序列记录的多条行可执行操作;将所述多条行可执行操作作为与所述误操作对应的各行操作,或者从所述多条行可执行操作中,提取与所述误操作关联的各行操作。可选地,在所述解析模块之后,还包括:误操作指示文件产生模块,适于根据与所述误操作对应的各行操作,生成误操作指示文件。可选地,所述反向操作模块包括:SQL语句提取子模块,适于从与所述误操作对应的各行操作的最后一行开始,逐条提取对应进行相反操作的SQL语句。可选地,其特征在于,所述非查询类操作包括:删除操作、更新操作、插入操作。依据本专利技术的另一方面,提供了一种设备,包括:存储器,加载有多条可执行指令;处理器,执行所述多条可执行指令;所述多条指令包括执行以下步骤的方法:接收数据恢复请求;所述数据恢复请求包括针对数据库的误操作所对应的第一时间;从数据库的操作记录日志中,获取对应所述第一时间的误操作部分的操作记录日志;所述操作记录日志按行格式记录了对数据库的非查询类操作;从所述操作记录日志中解析与所述误操作对应的各行操作;从与所述误操作对应的各行操作的最后一行开始,针对数据库进行与所述操作对应的反向操作。根据本专利技术实施例的数据库数据闪回方法和装置,通过从数据库的操作记录日志中,获取对应第一时间的误操作部分操作记录日志,并将从误操作部分的操作记录日志中对应的各行操作中从最后一行开始,针对数据库进行与误操作对应的反向操作,可以实现对数据库的恢复,本专利技术只需对误操作部分进行反向操作即可实现对数据库的恢复。解决了在先技术中,直接通过提取数据库备份,对备份时刻到误操作时刻期间的操作再次执行一遍的方案,导致数据库恢复时间长的问题,取得了本专利技术的方案使用的时间较短、恢复效率高,能够有效解决恢复时间较长而产生的用户对数据库访问的影响的效果。上述说明仅是本专利技术技术方案的概述,为了能够更清楚了解本专利技术的技术手段,而可依照说明书的内容予以实施,并且为了让本专利技术的上述和其它目的、特征和优点能够更明显易懂,以下特举本专利技术的具体实施方式。附图说明通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本专利技术的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:图1示出了根据本专利技术一个实施例的一种数据库数据闪回方法的步骤流程图;图2示出了根据本专利技术一个实施例的一种数据库数据闪回方法的步骤流程图;图3示出了根据本专利技术一个实施例的一种数据库数据闪回装置的结构示意图;图4示出了根据本专利技术一个实施例的一种数据库数据闪回装置的结构示意图;以及图5示出了根据本专利技术一个实施例的一种设本文档来自技高网
...

【技术保护点】
一种数据库数据闪回方法,包括:接收数据恢复请求;所述数据恢复请求包括针对数据库的误操作所对应的第一时间;从数据库的操作记录日志中,获取对应所述第一时间的误操作部分的操作记录日志;所述操作记录日志按行格式记录了对数据库的非查询类操作;从所述操作记录日志中解析与所述误操作对应的各行操作;从与所述误操作对应的各行操作的最后一行开始,针对数据库进行与所述误操作对应的反向操作。

【技术特征摘要】
1.一种数据库数据闪回方法,包括:接收数据恢复请求;所述数据恢复请求包括针对数据库的误操作所对应的第一时间;从数据库的操作记录日志中,获取对应所述第一时间的误操作部分的操作记录日志;所述操作记录日志按行格式记录了对数据库的非查询类操作;从所述操作记录日志中解析与所述误操作对应的各行操作;从与所述误操作对应的各行操作的最后一行开始,针对数据库进行与所述误操作对应的反向操作。2.根据权利要求1所述的方法,其特征在于,所述从数据库的操作记录日志中,获取对应所述第一时间的误操作部分的操作记录日志,包括:启动第一进程,由所述第一进程模拟所述数据库的从库,并通知所述数据库返回对应所述第一时间的误操作部分的操作记录日志。3.根据权利要求1所述的方法,其特征在于,所述操作记录日志为二进制的binlog日志。4.根据权利要求3所述的方法,其特征在于,所述从所述操作记录日志中解析与所述误操作对应的各行操作,包括:将所述binlog日志的二进制流解析为按时间序列记录的多条行可执行操作;将所述多条行可执行操作作为与所述误操作对应的各行操作,或者从所述多条行可执行操作中,提取与所述误操作关联的各行操作。5.根据权利要求1所述的方法,其特征在于,在从所述操作记录日志中解析与所述误操作对应的各行操作之后,还包括:根据与所述误操作对应的各行操作,生成误操作指示文件。6.根据权利要求1所述的方法,其特征在于,从与所述误操作对应的各行操作的最后一行开始,针对数据库进行与所述操作对应的反向操作包括:从与所述误操作对应的各行操作的最后一行...

【专利技术属性】
技术研发人员:刘臻
申请(专利权)人:北京奇虎科技有限公司奇智软件北京有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1