一种数据库恢复方法及系统的制作方法_6

文档序号:8395961阅读:来源:国知局
之间的数据库操作记录集合,当所述数据库操作记录集合中存在可以读取的数据库操作记录时,获取数据库操作记录中的唯一标识、与所述唯一标识所对应操作的操作类型标识和前镜像; 当查询变化记录集合中不存在所述唯一标识时,根据所述唯一标识、操作类型标识和前镜像,在变化记录集合中写入对应的唯一标识、操作类型信息和在操作发生之前所有的值信息。
3.如权利要求1所述的方法,其特征在于,当所述数据库操作记录集合通过分析事务日志获得,且所述事务日志为不包括前镜像但包括后镜像的事务日志时,所述根据数据库操作记录集合,生成变化记录集合的步骤具体包括: 根据数据库操作记录集合,生成末次变化记录集合; 所述末次变化记录集合记录测试数据库在初始时间点和希望恢复到的目标时间点之间的所有发生变化的行最后一次出现的末次变化记录,所述末次变化记录至少包括测试数据库某张表某一行的唯一标识和在操作发生之后所有的值信息; 根据所述数据库操作记录集合、末次变化记录集合以及原始数据集合生成变化记录集入口 ο
4.如权利要求3所述的方法,其特征在于,所述根据数据库操作记录集合,生成末次变化记录集合的步骤具体包括: 逆向读取测试数据库在初始时间点和希望恢复到的目标时间点之间的数据库操作记录集合,当判断所述数据库操作记录集合中存在看一个读取的数据库操作记录时,获取数据库操作记录中的唯一标识和与所述唯一标识所对应操作的后镜像; 当查询所述末次变化记录集合中不存在所述唯一标识时,根据上述唯一标识和后镜像,在末次变化记录集合中写入对应的唯一标识和在操作发生之后所有的值信息。
5.如权利要求3所述的方法,其特征在于,所述根据所述数据库操作记录集合、末次变化记录集合以及原始数据集合生成变化记录集合的步骤具体包括: 顺序读取测试数据库在希望恢复到的目标时间点和结束时间点之间的数据库操作记录集合,当判断所述数据库操作记录集合中存在可以读取的数据库操作记录时,获取所述数据库操作记录中的唯一标识和与所述唯一标识对应的操作类型标识; 当查询所述变化记录集合中不存在所述唯一标识,且所述末次变化记录集合中存在所述唯一标识时,获取所述唯一标识在末次变化记录集合中所对应的在操作发生之后所有的值信息,根据所述唯一标识、操作类型标识和在操作发生之后所有的值信息,在变化记录集合中写入对应的唯一标识、操作类型信息和在操作发生之前所有的值信息; 当查询所述变化记录集合中不存在所述唯一标识,且所述末次变化记录集合中不存在所述唯一标识时,获取所述唯一标识在原始数据集合中所对应的原始数据库值,根据所述唯一标识、操作类型标识和原始数据库值,在变化记录集合中写入对应的唯一标识、操作类型信息及在操作发生之前所有的值信息。
6.如权利要求1所述的方法,其特征在于,当通过分析生产数据库服务器与客户端之间交换的所有网络报文获得数据库操作记录集合时,所述根据数据库操作记录集合,生成变化记录集合的步骤具体包括: 顺序读取测试数据库初始时间点至结束时间点之间的数据库操作记录集合,当判断所述数据库操作记录集合中存在可以读取的数据库操作记录时,获取数据库操作记录中的操作类型标识,与所述操作类型标识对应的唯一标识和操作字段值或者与所述操作类型标识对应的取值条件; 当所述操作类型标识为插入操作,且所述变化记录集合中不存在所述唯一标识时,根据所述操作类型标识、唯一标识和操作字段值,在变化记录集合中写入对应的操作类型信息、唯一标识和在操作发生之前所有的值信息; 当所述操作类型标识为删除操作或者更新操作,且根据所述取值条件在原始数据集合中查找的符合所述取值条件的记录的唯一标识不在所述变化记录集合中存在时,将与所述记录对应的唯一标识、操作类型信息和在操作发生之前所有的值信息记录到变化记录集入口 ο
7.如权利要求1所述的方法,其特征在于,所述根据所述变化记录集合,对数据库进行逆操作的步骤具体包括: 删除数据库中与所述变化记录集合中记录的所有的唯一标识对应的行; 根据所述变化记录集合中操作类型信息为补充操作的变化记录中的在操作发生之前所有的值信息,将所述在操作发生之前所有的值信息插入到数据库中。
8.一种数据库恢复系统,其特征在于,所述系统包括: 变化记录集合生成单元,用于根据数据库操作记录集合,生成变化记录集合;以及 逆操作单元,用于根据所述变化记录集合,对数据库进行逆操作; 其中,所述数据库操作记录集合至少记录针对生产数据库的插入操作、删除操作及修改操作的所有操作历史信息; 所述变化记录集合记录测试数据库希望恢复到的目标时间点和结束时间点之间的所有发生变化的行首次出现的变化记录,所述变化记录至少包括所述数据库某张表某一行的唯一标识、操作类型信息和在操作发生之前所有的值信息; 所述唯一标识用于唯一标识所述变化记录集合中的一个实例对象,至少包括数据库中某一行所在表的表名和所述行记录的键值; 所述操作类型信息包括补充操作和清除操作,所述补充操作是所述数据库操作记录集合中删除操作的逆操作,表示将已经被删除的数据在测试数据库中还原,或者是所述数据库操作记录集合中更新操作的逆操作,表示将测试数据库中的对应记录还原到更新操作以前的状态;所述清除操作为所述数据库操作记录集合中插入操作的逆操作,表示删除测试数据库中已经插入的数据。
9.如权利要求8所述的系统,其特征在于,当所述数据库操作记录集合通过分析事务日志获得,且所述事务日志中包含前镜像时,所述变化记录集合生成单元包括: 第一变化记录信息获取模块,用于顺序读取测试数据库在希望恢复到的目标时间点和结束时间点之间的数据库操作记录集合,当判断所述数据库操作记录集合中存在可以读取的数据库操作记录时,获取数据库操作记录中的唯一标识、与所述唯一标识所对应操作的操作类型标识和前镜像;以及 第一变化记录信息写入模块,用于当查询变化记录集合中不存在所述唯一标识时,根据所述唯一标识、操作类型标识和前镜像,在变化记录集合中写入对应的唯一标识、操作类型信息和在操作发生之前所有的值信息。
10.如权利要8所述的系统,其特征在于,当所述数据库操作记录集合通过分析事务日志获得,且所述事务日志为不包括前镜像但包括后镜像的事务日志时,所述变化记录集合生成单元包括: 末次变化记录集合生成模块,用于根据数据库操作记录集合,生成末次变化记录集合; 所述末次变化记录集合记录测试数据库初始时间点和希望恢复到的目标时间点之间的所有发生变化的行最后一次出现的末次变化记录,所述末次变化记录至少包括测试数据库某张表某一行的唯一标识和在操作发生之后所有的值信息; 变化记录集合生成模块,用于根据所述数据库操作记录集合、末次变化记录集合以及原始数据集合生成变化记录集合。
11.如权利要求10所述的系统,其特征在于,所述末次变化记录集合生成模块包括: 末次变化记录信息获取子模块,用于逆向读取测试数据库在初始时间点和希望恢复到的目标时间点之间的数据库操作记录集合,当判断所述数据库操作记录集合中存在可读取的数据库操作记录时,获取数据库操作记录中的唯一标识和与上述唯一标识所对应操作的后镜像;以及 末次变化记录信息写入子模块,用于当查询所述末次变化记录集合中不存在所述唯一标识时,根据所述唯一标识和后镜像,在末次变化记录集合中写入对应的唯一标识和在操作发生之后所有的值信息。
12.如权利要求10所述的系统,其特征在于,所述变化记录集合生成模块包括: 第二变化记录信息获取模块,用于顺序读取测试数据库在希望恢复到的目标时间点和结束时间点之间的数据库操作记录集合,当判断所述数据库操作记录集合中存在可以读取的数据库操作记录时,获取所述数据库操作记录中的唯一标识和与所述唯一标识对应的操作类型标识;以及 第二变化记录信息写入模块,用于当查询所述变化记录集合中不存在所述唯一标识,且所述末次变化记录集合中存在所述唯一标识时,获取所述唯一标识在末次变化记录集合中所对应的在操作发生之后所有的值信息,根据所述唯一标识、操作类型标识和在操作发生之后所有的值信息,在变化记录集合中写入对应的唯一标识、操作类型信息和在操作发生之前所有的值信息;当查询所述变化记录集合中不存在所述唯一标识,且所述末次变化记录集合中不存在所述唯一标识时,获取所述唯一标识在原始数据集合中所对应的原始数据库值,根据所述唯一标识、操作类型标识和原始数据库值,在变化记录集合中写入对应的唯一标识、操作类型信息及在操作发生之前所有的值信息。
13.如权利要求8所述的系统,其特征在于,当通过分析生产数据库服务器与客户端之间交换的所有网络报文获得数据库操作记录集合时,所述变化记录集合生成单元包括: 第三变化记录信息获取模块,用于顺序读取测试数据库初始时间点至结束时间点之间的数据库操作记录集合,当判断所述数据库操作记录集合中存在可以读取的数据库操作记录时,获取数据库操作记录中的操作类型标识,与所述操作类型标识对应的唯一标识和操作字段值或者与所述操作类型标识对应的取值条件;以及 第三变化记录信息写入模块,用于当所述操作类型标识为插入操作,且所述变化记录集合中不存在所述唯一标识时,根据所述操作类型标识、唯一标识和操作字段值,在变化记录集合中写入对应的操作类型信息、唯一标识和在操作发生之前所有的值信息;当所述操作类型标识为删除操作或者更新操作,且根据所述取值条件在原始数据集合中查找的符合所述取值条件的记录的唯一标识不在所述变化记录集合中存在时,将与所述记录对应的唯一标识、操作类型信息和在操作发生之前所有的值信息记录到变化记录集合。
14.如权利要求8所述的系统,其特征在于,所述逆操作单元包括: 删除操作模块,用于删除数据库中与所述变化记录集合中记录的所有的唯一标识对应的行;以及 插入操作模块,用于根据所述变化记录集合中操作类型信息为补充操作的变化记录中的在操作发生之前所有的值信息,将所述在操作发生之前所有的值信息插入到数据库中。
【专利摘要】本发明适用于计算机领域,提供了一种数据库恢复方法及系统,所述方法包括如下步骤:根据数据库操作记录集合,生成变化记录集合;根据所述变化记录集合,对数据库进行逆操作。本发明实施例根据生成的仅记录希望恢复到的目标时间点和结束时间点之间的所有发生变化的行首次出现的变化记录的变化记录集合,对数据库进行逆操作,即可实现对数据库的恢复,恢复数据库所需要执行的操作远远少于实际所发生的操作,与现有技术相比,避免了大量的重复操作,提高了数据库恢复的效率,缩短了数据库恢复的时间。
【IPC分类】G06F17-30
【公开号】CN104715041
【申请号】CN201510129872
【发明人】金清德
【申请人】深圳市乾华数据科技有限公司
【公开日】2015年6月17日
【申请日】2015年3月24日
当前第6页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1