首页> 中国专利> 一种数据库备份数据恢复方法及装置

一种数据库备份数据恢复方法及装置

摘要

本发明公开了一种数据库备份数据恢复方法及装置,包括:从数据库日志文件中依次读取丢失的日志之后的数据库日志;若所述数据库日志记录的执行操作为插入操作,则针对所述数据库日志产生新系统标识号,并建立所述数据库日志的新系统标识号与旧系统标识号间的映射关系;然后,根据映射关系对数据库日志进行坏数据的逻辑恢复。因此,能够保证在数据库备份恢复的过程中,即使丢失了日志,也能够跳过数据库日志文件中丢失的日志,对丢失的日志之后的数据库日志继续进行恢复数据的操作,从而可保证数据库恢复到最新的状态,进而还可保证在对数据库进行恢复的过程中,最大限度的减少数据的丢数量以降低企业的损失。

著录项

  • 公开/公告号CN106155838A

    专利类型发明专利

  • 公开/公告日2016-11-23

    原文格式PDF

  • 申请/专利权人 中国移动通信集团河南有限公司;

    申请/专利号CN201510200558.9

  • 申请日2015-04-24

  • 分类号G06F11/14;G06F17/30;

  • 代理机构北京同达信恒知识产权代理有限公司;

  • 代理人郭润湘

  • 地址 450008 河南省郑州市经三路48号

  • 入库时间 2023-06-19 00:56:20

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-03-22

    授权

    授权

  • 2016-12-21

    实质审查的生效 IPC(主分类):G06F11/14 申请日:20150424

    实质审查的生效

  • 2016-11-23

    公开

    公开

说明书

技术领域

本发明涉及数据处理技术领域,特别涉及一种数据库备份数据恢复方法及装置。

背景技术

数据库是按照数据结构来组织、存储和管理数据的仓库,使得可以利用计算机实现生产数据的自动化管理,因此,数据库已广泛应用于各企业中的各个部门中的生产管理。

随着数据库在企业中的重要性,对数据库进行备份与恢复显示出越来越重要的地位。一份完整的数据库备份可包括全备份、差异备份以及增量备份,但是增量备份可能存在的数量非常大,文件很碎,出现问题的可能性就很大。特别是在增量备份的日志文件出现丢失的时候,现有的恢复方案只能对数据库日志文件中丢失的日志之前的数据库日志进行恢复,即在采用现有的恢复方案时,无法对数据库日志文件中丢失的日志之后的数据库日志进行恢复。因此,数据库日志文件中丢失的日志距离当前时间越长,丢失的增量数据就越多,而丢失增量数据,无论是对业务还是对企业的损失都将会是不可估量的。

发明内容

本发明实施例提供一种数据库备份数据恢复方法及装置,用以解决现有技术中只能对数据库日志文件中丢失的日志之前的数据库日志进行恢复,而不能对数据库日志文件中丢失的日志之后的数据库日志进行恢复的技术问题。

本发明实施例提供一种数据库备份数据恢复方法,该方法包括:

从数据库日志文件中依次读取丢失的日志之后的数据库日志,所述数据库 日志文件中的每个日志对应一个系统标识号;

若所述数据库日志记录的执行操作为插入操作,则针对所述数据库日志产生新系统标识号,并建立所述数据库日志的新系统标识号与旧系统标识号间的映射关系;将所述新系统标识号作为所述数据库日志的系统标识号并根据变更后的数据库日志进行坏数据的逻辑恢复;

若所述数据库日志记录的执行操作为更新或删除操作,则根据所述数据库日志的系统标识号,从所述新系统标识号与所述旧系统标识号的映射关系中查询是否存在映射关系,若存在映射关系,则将所述新系统标识号替换为所述数据库日志的系统标识号并根据变更后的数据库日志进行坏数据的逻辑恢复;若不存在映射关系,则根据所述数据库日志进行坏数据的逻辑恢复。

较佳的,该方法还包括:

从所述数据库日志文件中依次读取丢失的日志之前的数据库日志,并利用所述数据库日志进行正常数据的逻辑恢复;

将逻辑恢复后的正常数据与逻辑恢复后的坏数据进行整合,完成所述数据库的数据恢复。

较佳的,所述利用所述数据库日志进行正常数据的逻辑恢复之后,还包括:

启动逻辑恢复后的正常数据,获取逻辑恢复后的坏数据所属的日志的系统检查点SCN的值,并从所述系统检查点SCN的值开始对所述坏数据进行逻辑恢复。

较佳的,若所述数据库日志记录的执行操作为删除操作,则在使用所述变更后的数据库日志进行逻辑恢复后,还包括:删除所述数据库日志的系统标识号对应的映射关系。

较佳的,所述数据库日志文件为增量备份的日志文件。

本发明实施例还提供一种数据库备份数据恢复装置,该装置包括:

获取模块,用于从数据库日志文件中依次读取丢失的日志之后的数据库日志,所述数据库日志文件中的每个日志对应一个系统标识号;

第一恢复模块,用于在所述数据库日志记录的执行操作为插入操作,则针对所述数据库日志产生新系统标识号,并建立所述数据库日志的新系统标识号与旧系统标识号间的映射关系;将所述新系统标识号作为所述数据库日志的系统标识号并根据变更后的数据库日志进行坏数据的逻辑恢复;

第二恢复模块,用于在所述数据库日志记录的执行操作为更新或删除操作时,根据所述数据库日志的系统标识号,从所述新系统标识号与所述旧系统标识号的映射关系中查询是否存在映射关系,若存在映射关系,则将所述新系统标识号替换为所述数据库日志的系统标识号并根据变更后的数据库日志进行坏数据的逻辑恢复;若不存在映射关系,则根据所述数据库日志进行坏数据的逻辑恢复。

较佳的,该装置还包括:第三恢复模块和整合模块;

所述获取模块,还用于:从所述数据库日志文件中依次读取丢失的日志之前的数据库日志

所述第三恢复模块,用于利用所述数据库日志进行正常数据的逻辑恢复;

所述整合模块,用于将逻辑恢复后的正常数据与逻辑恢复后的坏数据进行整合,完成所述数据库的数据恢复。

较佳的,所述获取模块,还用于:在利用所述数据库日志进行正常数据的逻辑恢复之后,启动逻辑恢复后的正常数据,获取逻辑恢复后的坏数据所属的日志的系统检查点SCN的值,并从所述系统检查点SCN的值开始对所述坏数据进行逻辑恢复。

较佳的,所述第二恢复模块,还用于:若所述数据库日志记录的执行操作为删除操作,则在使用所述变更后的数据库日志进行逻辑恢复后,删除所述数据库日志的系统标识号对应的映射关系。

较佳的,所述数据库日志文件为增量备份的日志文件。

上述实施例提供的数据库备份数据恢复方法及装置,包括:从数据库日志文件中依次读取丢失的日志之后的数据库日志,所述数据库日志文件中的每个 日志对应一个系统标识号;若所述数据库日志记录的执行操作为插入操作,则针对所述数据库日志产生新系统标识号,并建立所述数据库日志的新系统标识号与旧系统标识号间的映射关系;将所述新系统标识号作为所述数据库日志的系统标识号并根据变更后的数据库日志进行坏数据的逻辑恢复;若所述数据库日志记录的执行操作为更新或删除操作,则根据所述数据库日志的系统标识号,从所述新系统标识号与所述旧系统标识号的映射关系中查询是否存在映射关系,若存在映射关系,则将所述新系统标识号替换为所述数据库日志的系统标识号并根据变更后的数据库日志进行坏数据的逻辑恢复;若不存在映射关系,则根据所述数据库日志进行坏数据的逻辑恢复,因此,能够保证在数据库备份恢复的过程中,即使丢失了日志,也能够跳过数据库日志文件中丢失的日志,对数据库日志文件中丢失的日志之后的数据库日志继续进行恢复数据的操作,从而可保证数据库恢复到最新的状态,进而还可保证在对数据库进行恢复的过程中,最大限度的减少数据的丢数量以降低企业的损失。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的数据库备份数据恢复方法的流程图;

图2为本发明实施例提供的数据库备份数据恢复装置的结构示意图。

具体实施方式

为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做 出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

图1,为本发明实施例提供的数据库备份数据恢复方法的流程图。如图所示,该方法可包括:

S101、从数据库日志文件中依次读取丢失的日志之后的数据库日志,数据库日志文件中的每个日志对应一个系统标识号。

具体的,系统标识号可为数据库内部记录中的每一条记录的一个标识,该标识代表每条数据在数据文件中的相对物理地址,用于定位数据库中一条记录的一个相对唯一地址值,通常情况下,该值在该行数据插入到数据表时被确定且唯一。例如,在Oracle(甲骨文)数据库中的系统标识号为ROWID,而ROWID可由数据对象编号、文件编号、块编号以及行编号组成。

S102、判断所读取的丢失的日志之后的数据库日志的执行操作的类型,若数据库日志记录的执行操作为插入操作,则转至步骤S103;若数据库日志记录的执行操作为更新或删除操作,则转至步骤S104。

S103、针对数据库日志产生新系统标识号,并建立数据库日志的新系统标识号与旧系统标识号间的映射关系;将新系统标识号作为数据库日志的系统标识号并根据变更后的数据库日志进行坏数据的逻辑恢复。

S104、根据数据库日志的系统标识号,从新系统标识号与旧系统标识号的映射关系中查询是否存在映射关系,若存在映射关系,则转至步骤S105;若不存在映射关系,则转至步骤S106。

S105、将新系统标识号替换为所述数据库日志的系统标识号并根据变更后的数据库日志进行坏数据的逻辑恢复。

S106、根据所述数据库日志进行坏数据的逻辑恢复。

进一步地,针对数据库日志文件中的丢失的日志之前的数据库日志,可采用现有技术对其进行正常数据的逻辑恢复。例如,针对数据库日志文件中的丢失的日志之前的数据库日志中执行的操作为DDL(Data Definition Language,数据库定义语言)操作,例如,在DDL操作为创建表、删除表、和修改表结 构等操作时,可通过自动维护一份数据字典进行数据的恢复应用,其中,数据字典是一个自动的或手动的存储数据元的定义和属性的文档,数据字典最重要的作用是作为分析阶段的工具,在数据字典中保存着与数据库日志有关的信息,在DDL之后进行DML(Data Manipulation Language,数据操纵语言)操作的时候,可根据数据字典中保存的与数据库日志有关的信息找到对应的数据字典,重新对丢失的数据进行恢复应用。其中,DML操作可为Insert(插入)、Update(更新)或者Delete(删除)操作。

在利用数据库日志进行正常数据的逻辑恢复之后,还可启动逻辑恢复后的正常数据,并获取丢失的日志之后的坏数据所属的日志的SCN(System Check Number,系统检查点)的值,并从SCN的值开始对坏数据进行逻辑恢复。

在步骤S101中可利用复制软件对丢失的日志之后的数据库日志进行分析,并将丢失的日志之后的数据库日志生成交易缓存数据。

在将数据库日志文件中的丢失的日志之前的数据库日志,采用现有技术对其进行正常数据的逻辑恢复,并且在将丢失的日志之后的数据库日志采用上述实施例提供的方法进行恢复之后,将恢复后的数据库日志文件中的丢失的日志之前的数据库日志和丢失的日志之后的数据库日志进行整合,并将整合后的数据重新应用于数据库服务器中。进一步地,在从上述步骤S104至步骤S106中,若数据库日志中记录的执行操作为删除操作,则可根据数据库日志的系统标识号,从新系统标识号与旧系统标识号的映射关系中查询是否存在映射关系,若存在映射关系,则将新系统标识号替换为数据库日志的系统标识号并根据变更后的数据库日志进行坏书记的逻辑恢复,而在根据变更后的数据库日志进行坏数据的逻辑恢复即执行数据的删除操作后,还需删除数据库日志的所述系统标识号所对应的映射关系。若不存在映射关系,则不替换系统标识号,直接进行数据库应用即直接执行数据的删除操作,即可完成对坏数据的逻辑恢复。

进一步地,上述实施例提供的数据库日志文件可为增量备份的日志文件。

根据上述内容,可以看出,通过本发明实施例提供的数据库备份数据恢复 方法,在对数据库恢复过程中出现日志丢失的时候,可跳过数据库日志文件中丢失的日志,对数据库日志文件中丢失的日志之后的数据库日志进行恢复,因此,能够保证在数据库备份恢复的过程中,即使丢失了日志,也能够跳过数据库日志文件中丢失的日志,对数据库日志文件中丢失的日志之后的数据库日志继续进行恢复数据的操作,从而可保证数据库恢复到最新的状态,进而还可保证在对数据库进行恢复的过程中,最大限度的减少数据的丢数量以降低企业的损失。

下面通过一个具体的例子,对上述实施例提供的数据库备份数据恢复方法的运用进行详细的解释说明。

假设在进行增量备份的ORACLE数据库系统中丢失一个日志文件,且在丢失的日志文件之后,有五条操作,该五条操作分别为:

第一条操作的ROWID为:AAASPQAAEAAABEjAAA,操作类型为:插入;

第二条操作的ROWID为:AAASPQAAEAAABEjAAB,操作类型为:更新;

第三条操作的ROWID为:AAASPQAAEAAABEjAAC,操作类型为:删除;

第四条操作的ROWID为:AAASPQAAEAAABEjAAA,操作类型为:更新;

第五条操作的ROWID为:AAASPQAAEAAABEjAAA,操作类型为:删除。

针对上述第一条操作,在采用数据装载应用的方法对数据库日志文件中丢失的日志之后的数据库日志进行恢复的时候,由于操作类型为插入,因此会产生一个新的ROWID,假设产生的新的ROWID为AAASPQAAEAAABEjBBB,并将产生的新的ROWID即AAASPQAAEAAABEjBBB与原来的ROWID即AAASPQAAEAAABEjAAA建立映射关系。假设针对第一条操作,在进行数据 装载应用的时候,新产生的ROWID与原来的ROWID之间建立的映射关系为A1,则在A1中,AAASPQAAEAAABEjAAA与AAASPQAAEAAABEjBBB对应。

针对上述第二条操作,在采用数据装载应用的方法对数据库日志文件中丢失的日志之后的数据库日志进行恢复的时候,由于操作类型为更新,则根据第二条操作的ROWID即AAASPQAAEAAABEjAAB查询是否存在映射关系,由于根据第二条操作的ROWID即AAASPQAAEAAABEjAAB所查询的映射关系不存在,则使用原来的ROWID即AAASPQAAEAAABEjAAB执行更新操作。

针对上述第三条操作,在采用数据装载应用的方法对数据库日志文件中丢失的日志之后的数据库日志进行恢复的时候,由于操作类型为删除,则根据第三条操作的ROWID即AAASPQAAEAAABEjAAC查询是否存在映射关系,由于根据第三条操作的ROWID即AAASPQAAEAAABEjAAC所查询的映射关系不存在,则使用原来的ROWID即AAASPQAAEAAABEjAAC执行删除操作。

针对上述第四条操作,在采用数据装载应用的方法对数据库日志文件中丢失的日志之后的数据库日志进行恢复的时候,由于操作类型为更新,则根据第四条操作的ROWID即AAASPQAAEAAABEjAAA查询是否存在映射关系,由于根据第四条操作的ROWID即AAASPQAAEAAABEjAAA所查询的映射关系为A1,并且在A1中,AAASPQAAEAAABEjAAA与AAASPQAAEAAABEjBBB对应,因此采用映射关系A1中与原来的ROWID即AAASPQAAEAAABEjAAA对应的ROWID即AAASPQAAEAAABEjBBB执行更新操作。

针对上述第五条操作,在采用数据装载应用的方法对数据库日志文件中丢失的日志之后的数据库日志进行恢复的时候,由于操作类型为删除,则根据第五条操作的ROWID即AAASPQAAEAAABEjAAA查询是否存在映射关系,由于根据第五条操作的ROWID即AAASPQAAEAAABEjAAA所查询的映射关系为A1,并且在A1中,AAASPQAAEAAABEjAAA与 AAASPQAAEAAABEjBBB对应,因此采用映射关系A1中与原来的ROWID即AAASPQAAEAAABEjAAA对应的ROWID即AAASPQAAEAAABEjBBB执行删除操作。

由于根据第五条操作的ROWID即AAASPQAAEAAABEjAAA所查询的映射关系为A1,且上述第五条操作的类型为删除,因此,在采用映射关系A1中与原来的ROWID即AAASPQAAEAAABEjAAA对应的ROWID即AAASPQAAEAAABEjBBB执行删除操作后,还可将映射关系A1进行删除。

根据上述举例,可以看出,通过本发明实施例提供的数据库备份数据恢复方法在对数据库恢复过程中出现日志丢失的时候,可跳过数据库日志文件中丢失的日志,对数据库日志文件中丢失的日志之后的数据库日志进行恢复,因此,能够保证在数据库备份恢复的过程中,即使丢失了日志,也能够跳过数据库日志文件中丢失的日志,对数据库日志文件中丢失的日志之后的数据库日志继续进行恢复数据的操作,从而可保证数据库恢复到最新的状态,进而还可保证在对数据库进行恢复的过程中,最大限度的减少数据的丢数量以降低企业的损失。

基于相同的技术构思,本发明实施例还提供一种数据库备份数据恢复装置,该装置可执行上述方法实施例。

图2,为本发明实施例提供的数据库备份数据恢复装置的结构示意图。如图2所示,该装置可包括:

获取模块201,用于从数据库日志文件中依次读取丢失的日志之后的数据库日志,所述数据库日志文件中的每个日志对应一个系统标识号;

第一恢复模块202,用于在所述数据库日志记录的执行操作为插入操作,则针对所述数据库日志产生新系统标识号,并建立所述数据库日志的新系统标识号与旧系统标识号间的映射关系;将所述新系统标识号作为所述数据库日志的系统标识号并根据变更后的数据库日志进行坏数据的逻辑恢复;

第二恢复模块203,用于在所述数据库日志记录的执行操作为更新或删除 操作时,根据所述数据库日志的系统标识号,从所述新系统标识号与所述旧系统标识号的映射关系中查询是否存在映射关系,若存在映射关系,则将所述新系统标识号替换为所述数据库日志的系统标识号并根据变更后的数据库日志进行坏数据的逻辑恢复;若不存在映射关系,则根据所述数据库日志进行坏数据的逻辑恢复。

较佳的,该装置还可包括:第三恢复模块(图中未示出)和整合模块(图中未示出)。

获取模块201,还用于:从所述数据库日志文件中依次读取丢失的日志之前的数据库日志;

所述第三恢复模块,用于利用所述数据库日志进行正常数据的逻辑恢复;

所述整合模块,用于将逻辑恢复后的正常数据与逻辑恢复后的坏数据进行整合,完成所述数据库的数据恢复。

较佳的,获取模块201,还用于:在利用所述数据库日志进行正常数据的逻辑恢复之后,启动逻辑恢复后的正常数据,获取逻辑恢复后的坏数据所属于的日志的系统检查点SCN的值,并从所述系统检查点SCN的值开始对所述坏数据进行逻辑恢复。

较佳的,第二恢复模块203,还用于:若所述数据库日志记录的执行操作为删除操作,则在使用所述变更后的数据库日志进行逻辑恢复后,删除所述数据库日志的系统标识号对应的映射关系。

较佳的,所述数据库日志文件为增量备份的日志文件。

综上所述,可以看出,通过本发明实施例提供的数据库备份数据恢复方法及装置,在对数据库恢复过程中出现日志丢失的时候,可跳过数据库日志文件中丢失的日志,对数据库日志文件中丢失的日志之后的数据库日志进行恢复,因此,能够保证在数据库备份恢复的过程中,即使丢失了日志,也能够跳过数据库日志文件中丢失的日志,对数据库日志文件中丢失的日志之后的数据库日志继续进行恢复数据的操作,从而可保证数据库恢复到最新的状态,进而还可 保证在对数据库进行恢复的过程中,最大限度的减少数据的丢数量以降低企业的损失。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号