一种数据恢复的方法、装置和系统制造方法及图纸

技术编号:6106423 阅读:169 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种数据恢复的方法、装置和系统,其方法为:获取所有用户操作请求,将用户操作请求以操作日志形式存储于恢复日志;提取恢复日志中的读取操作记录并进行分析,得到对目标容灾节点数据库进行更新的操作语句;接收并合并属于同一事务的操作语句,以事务为单位进行集合,获取可提交的事务包并发送;顺序接收事务包,并装载事务包至目标容灾节点数据库中完成数据恢复。通过上述本发明专利技术的方法不仅解决了数据在异构数据库容灾节点之间的数据恢复的一致性和完整性问题,而且还减轻了日志传输对网络造成的负担,以及避免执行无效的查询操作,使事务包装载效率更高,进一步提高了目标容灾节点数据库的数据恢复速度。

【技术实现步骤摘要】

本专利技术涉及数据库领域,更具体的说,是涉及一种异构数据库的容灾系统中基于操作日志重做的数据恢复的方法、装置和系统
技术介绍
如图1所示,在现有技术中基于异构数据库的容灾系统的结构,由分布在网络中的若干个数据处理中心(容灾节点),容灾管理系统中间件和应用客户端组成。容灾系统是指为计算机信息系统提供的一个能应付各种灾难的环境。在计算机系统遭受不可抗拒的自然灾难,以及计算机犯罪、病毒和人为操作错误等人为灾难时,容灾系统将保证用户数据的安全性(数据容灾)和不间断的提供应用服务(应用容灾)。异构数据库系统则是相关的多个数据库系统的集合。基于异构数据库的容灾系统以中间件的形式为应用系统提供服务,中间件系统屏蔽数据处理中心(图中未标示)的存在为用户提供一个统一的访问接口,而基于异构数据库的容灾系统将现有数据中心组织为一个整体,因此各个容灾节点之间对等,并互为灾备的关系。在基于异构数据库的容灾系统中,当图1中的某些容灾节点发生故障或遭受灾难时,依据容灾要求,正常的容灾节点仍然继续处理应用系统的数据更新请求。但是,当发生灾难的容灾节点硬件更换或者故障排除之后,其数据与其他正常的容灾节点会处于不一致的状态,因此,需要对发生故障或灾难的容灾节点进行数据一致性恢复。现有数据容灾通常采用数据复制的方法,在异地建立一个备份数据系统,该备份数据系统在本地的数据系统崩溃时迅速接替本地数据系统提供数据服务。目前主流的方法包括基于存储层的数据复制、基于逻辑卷的数据复制和基于重做日志(redo log)的数据复制。其中,基于存储层的数据复制通过基于SAN(Storage Area Network,存储局域网)进行数据复制,该复制过程针对每个1/0(输入输出设备)进行,它将主系统中对磁盘的I/O操作通过网络传输到目标端存储系统中再执行一遍。但是,基于该方法进行复制的缺点为只支持主、备两端为同一品牌和具有同样配置的存储设备,不能整合不同品牌的存储设备;不支持不同数据库产品之间的数据复制;需要昂贵的高端磁盘阵列和光纤连接设备,实施费用也较高。基于逻辑卷的数据复制通过基于TCP/IP的网络环境进行数据复制,由操作系统进程捕捉逻辑卷的变化进行数据复制。它将主系统中对磁盘逻辑卷的修改操作复制到目标端系统重新执行一遍。但是,基于该方法进行复制的缺点为需要在存储设备与数据库之间建立一个虚拟存储层(逻辑卷管理层),会对主机性能有一定影响;要求两端的数据库系统必须同构,这使得在整合不同数据库产品的场合受到限制;需要传输的数据量比较大,占用的网络资源也比较多。数据库系统的基于redo log的数据复制使用数据库以外的独立进程,捕捉重做日志文件(redo log file)的信息,将其翻译成SQL语句,再通过网络传输到目标端数据库,在目标端数据库执行同样的SQL。如果其进程赶不上数据库日志切换,也可以捕捉归档日志中的内容。但是,该方法仍然存在缺点其一,数据库的所有更改都记录在redo log 中,其中记录了对数据库中的每一个变化,它的实施与具体数据库密切相关的,要将数据库的redo log file中的信息转换为SQL语句,需要对每种不同的数据库redo log进行具体分析,因此不利于异构容灾的实现;其二,在数据库的吞吐量太大时,数据会有较大延迟。基于上述现有技术中的三种数据复制方法的分析,可知现有的数据复制技术都不能完全满足异构数据库容灾系统需求。因此,需要一种可以克服现有技术中的数据复制方法的缺点,即满足异构数据库容灾系统需求的数据一致性恢复方法。
技术实现思路
有鉴于此,本专利技术提供了一种数据恢复的方法、装置和系统,以克服现有技术中各种数据复制方法不能满足异构数据库容灾系统需求的问题。为实现上述目的,本专利技术提供如下技术方案一种数据恢复方法,包括获取所有用户操作请求,将所述用户操作请求以操作日志形式存储于恢复日志;提取所述恢复日志中的读取操作记录并进行分析,得到对目标容灾节点数据库进行更新的操作语句;接收并合并属于同一事务的所述操作语句,以所述事务为单位进行集合,获取可提交的事务包,并发送;顺序接收所述事务包,并装载所述事务包至所述目标容灾节点数据库中,完成数据恢复。优选的,所述提取所述恢复日志中的读取操作记录并进行分析的过程包括逐条提取存储于所述恢复日志中的操作日志记录;依次对所述操作日志记录中表示操作记录项的结构化查询语言SQL的语句内容的sqlsrc字段进行分析;当所述sqlsrc字段的开头与关键字select匹配时,丢弃所述sqlsrc字段对应的操作日志记录的语句;当所述sqlsrc字段的开头与关键字select不匹配时,确定所述sqlsrc字段对应的操作日志记录的语句为对目标容灾节点数据库进行更新的操作语句。优选的,所述得到对目标容灾节点数据库进行更新的操作语句中包括提交当前事务Commit的事务、未Commit的事务和中止当前事务Rollkick的事务。优选的,所述合并属于同一事务的所述操作语句,以所述事务为单位进行集合,获取可提交的事务包的过程包括根据所述恢复日志中所属的事务序列号进行事务合并,生成对应的事务包;依据所述恢复日志中的操作日志序列号对每个所述事务包中的操作日志记录进行升序排序;当所述事务包为Commit的事务,获取所述事务包;当所述事务包为RolIhck的事务,丢弃所述事务包。优选的,所述获取可提交的事务包之后,并发送之前还包括存储所述事务包于发送端的缓存中。优选的,所述顺序接收所述事务包,之后,装载之前还包括将所述顺序接收的事务包存储于接收端的事务队列中。一种数据恢复装置,包括容灾管理系统中间件,所述容灾管理系统中间件包括事务捕获模块,用于获取所有用户操作请求,将所述用户操作请求以操作日志形式存储于恢复日志;恢复日志数据库,用于存储所述恢复日志;日志分析模块,用于提取所述恢复日志中的读取操作记录并进行分析,获取对目标容灾节点数据库进行更新的操作语句;事务综合模块,用于接收并合并所述日志分析模块中属于同一事务的操作语句, 以所述事务为单位进行集合,获取可提交的所述事务包;日志发送模块,用于发送事务综合模块中获取的可提交的所述事务包;日志接收模块,用于顺序接收所述事务包;日志装载模块,用于装载所述日志接收模块接收到的事务包至所述目标容灾节点数据库中,完成数据恢复。一种数据恢复系统,包括包含一个或多个用户的用户端,用于发送用户操作请求;数据恢复装置,用于接收所述用户操作请求,将所述用户操作请求以操作日志形式进行存储,并对所述操作日志进行处理,将获取到的符合目标容灾节点数据库数据恢复的事务包装载至容灾节点数据库;容灾节点数据库,用于依据装载的所述事务包中的操作日志进行数据恢复。经由上述的技术方案可知,与现有技术相比,本专利技术公开了一种数据恢复的方法、 装置和系统,通过接收用户操作请求,并以操作日志的形式存储于恢复日志数据库中,在目标容灾节点数据库恢复数据时,从恢复日志数据库中提取操作日志,经网络传输到需要恢复的容灾节点数据库中,并在这些容灾节点数据库中进行事务重做装载。通过上述过程不仅解决了数据在异构数据库容灾节点之间的恢复问题,而且通过日志分析减少了网络中的操作日志传输量,减轻日志传输对网络造成的负担,同时,通过事务综合使传输本文档来自技高网
...

【技术保护点】
1.一种数据恢复方法,其特征在于,包括:获取所有用户操作请求,将所述用户操作请求以操作日志形式存储于恢复日志;提取所述恢复日志中的读取操作记录并进行分析,得到对目标容灾节点数据库进行更新的操作语句;接收并合并属于同一事务的所述操作语句,以所述事务为单位进行集合,获取可提交的事务包,并发送;顺序接收所述事务包,并装载所述事务包至所述目标容灾节点数据库中,完成数据恢复。

【技术特征摘要】

【专利技术属性】
技术研发人员:杨树强罗荣凌王怀民吴泉源贾焰周斌韩伟红滕猛陈志坤赵辉金松昌舒琦王凯
申请(专利权)人:中国人民解放军国防科学技术大学
类型:发明
国别省市:43

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

1