一种可保证数据一致性的分布式数据库热备份与恢复方法

文档序号:6365856阅读:667来源:国知局
专利名称:一种可保证数据一致性的分布式数据库热备份与恢复方法
技术领域
本发明涉及分布式数 据库的备份及恢复领域。
背景技术
随着计算机技术的迅速发展,社会的信息化程度越来越高,每天产生的数据也越来越多,许多的应用程序需要处理TB甚至PB级的海量数据,这对于数据的存储与读取提出了非常高的要求。作为处理结构化数据的工具,数据库面临巨大的挑战,之前部署在单台机器上的数据库已经逐渐无法满足对于快速增长的海量数据的处理需求。为了应对海量数据的挑战,分布式数据库应运而生,其通过分布式的架构使得数据的存储与对数据的查询都可以分布到个节点上执行,从而可以通过扩充节点实现系统的增加容量与提高性能,大大提高了数据库可以处理的数据量。为了保证数据安全,对于数据库来说备份(尤其是热备份)和恢复功能是必备的功能,所谓热备份,即在数据库继续提供服务的前提下对其进行备份。当前众多的数据库提供了热备份与恢复的工具与方法,对于分布式数据库,由于其分布式的架构,对其进行热备份与恢复需要更高的技木,尤其是对于面向OLTP应用的关系型分布式数据库,如何在热备份的时候保证数据的一致性是ー个必须要解决的问题。

发明内容
本发明提供了一种可保证数据一致性的分布式数据库热备份与恢复方法,通过该方法,可以在分布式数据库继续提供服务与保证数据一致性的前提下,同时备份各个数据库节点的数据,并可在其后的某ー时刻,将整个分布式数据库恢复至备份的时刻。本发明涉及的热备份包括全量备份与増量备份。根据本发明的某一方面,分布式数据库进行热备份的步骤如下启动分布式事务,并在事务中向各数据库节点发送消息,为此次备份作出标记。事务提交后,向各数据库节点发送热备份命令。各数据库节点热备份至标记点,并将备份数据保存于本机。根据本发明的某一方面,分布式数据库进行恢复的步骤如下向各数据库节点发送恢复命令。各数据库节点根据本机的备份数据恢复至此前备份的内容。


图I为本发明的分布式数据库热备份的工作流程图。即可保证数据一致性的分布式数据库热备份工作流程图。图2为本发明的分布式数据库恢复的工作流程图。即可保证数据一致性的分布式数据库恢复工作流程图。
具体实施例方式
首先结合附图I对本发明所述的可保证数据一致性的分布式数据库热备份的技术方案做进ー步的详细描述。附图I为分布式数据库热备份所涉及模块的方框图,其中包括分布式数据库控制模块与分布式数据库节点。分布式数据库控制模块对外提供分布式数据库的接ロ,对内负责管理控制各个分布式数据库节点,分布式数据库节点可以为多个,井能任意扩展。对于单个数据库节点,要求其支持以下功能点I)支持 X/Open XA 规范。2)支持备份至某个标记点的热备份。3)从备份文件中恢复。4)支持全量备份与増量备份。在分布式数据库系统启动热备份时,首先,分布式数据库控制模块向各数据库节点发送ー个标识符,这可分为三个步骤I)启动分布式事务。2)生成ー个全局唯一的标识符(该标识符可以按时间排序),并在各个数据库节点执行包含该标识符的SQL语句。3)提交分布式事务。在计算技术上,XA规范是开放群组关于分布式事务处理(DTP)的规范。规范描述了全局的事务管理器与局部的资源管理器之间的接ロ。XA规范的目的是允许的多个资源(如数据库,应用服务器,消息队列,等等)在同一事务中访问,这样可以使ACID属性跨越应用程序而保持有效。XA使用两阶段提交来保证所有资源同时提交或回滚任何特定的事务。由于各数据库节点支持X/Open XA规范,通过在分布式数据库控制模块启动分布式事务,可以保证上述第二步执行的SQL语句满足事务的ACID属性,包括如下方面其一,根据事务的原子性,可保证该SQL语句要么在所有的数据库节点中执行,要么在所有的数据库节点中都没有执行。其ニ,根据事务的隔离性,可保证该SQL语句所在事务提交时,其之前启动的分布式事务要么在各数据库节点上已全部提交,要么在各数据库节点上全部没有提交,不会存在中间状态。其三,根据事务的持久性,可保证在该SQL语句所在事务提交时,其之前提交的分布式事务都已持久化到各数据库节点。其四,根据事务的一致性,可保证该SQL语句提交后,各数据库节点的完整性没有破坏。各个数据库节点备份至该SQL语句标记处时,通过以上的四个方面,保证了整个分布式数据库的数据一致性。其次,分布式数据库控制模块向各数据库节点发送备份至指定标识符处的命令,分布式数据库控制模块发送的命令可以是全量备份或是增量备份。数据库节点接到命令 后,开始备份本地数据库。对于全量备份,数据库节点执行以下步骤I)通过数据库节点的备份功能刷新备份文件。2)在备份文件中找到标识符所在位置。
3)将标识符所在位置之前的所有备份文件保存至特定位置。对于增量备份,数据库节点执行以下步骤I)通过数据库节点的备份功能刷新备份文件。2)在备份文件中找到标识符所在位置,为位置一。 3)在备份文件中找到前ー个标识符所在位置,为位置ニ。4)将位置一与位置ニ之间的所有备份文件保存至特定位置。数据库节点备份完成后,将备份文件向数据库控制模块发送回复。最后,分布式数据库控制模块收到各数据库节点的回复之后,确定整个分布式数据库集群热备份完成。附图2为分布式数据库恢复的方框图,在分布式数据库系统启动恢复时,共分为三个步骤。首先,分布式数据库控制模块向各个数据库节点发送带有标识符的命令。各数据库节点接收到带有标识符的命令后,找到此前备份的所有排在此标识符前的数据库备份文件,并依次恢复,恢复完成后,向数据库控制模块发送回复。最后,收到所有数据库节点的回复后,整个分布式数据库集群恢复完成。
权利要求
1.一种可保证数据一致性的分布式数据库热备份与恢复的系统与方法,其特征在于 1)可以对分布式数据库进行热备份。
2)可以对分布式数据库进行恢复。
3)可以对分布式数据库进行全量备份。
4)可以对分布式数据库进行增量备份。
5)通过分布式事务,在各个数据库节点执行带有唯一标识符的SQL语句,可以确保在恢复此标识符之前的备份文件后,所有的数据库节点的数据可以保证一致性。
2.一种可保证数据一致性的分布式数据库热备份与恢复的系统与方法,其特征在于不涉及单个数据库节点的以下功能 1)对数据库节点进行热备份。
2)对数据库节点进行恢复。
3)对数据库节点进行全量备份。
4)对数据库节点进行增量备份。
3.一种可保证数据一致性的分布式数据库热备份与恢复的系统与方法,其特征在于各个数据库节点在备份时,将备份文件保存于本地,在恢复时,恢复本地保存的备份文件。
全文摘要
本发明提供了一种可保证数据一致性的分布式数据库热备份和恢复的系统和方法,通过该方法,可以在分布式数据库继续提供服务与保证数据一致性的前提下,同时备份各个数据库节点的数据,并可在其后的某一时刻,将整个分布式数据库恢复至备份的时刻。分布式数据库进行热备份的步骤如下首先,启动分布式事务,并在事务中向各数据库节点发送消息,为此次备份作出标记。其次,事务提交后,向各数据库节点发送热备份命令。最后,各数据库节点热备份至标记点,并将备份数据保存于本机。分布式数据库进行恢复的步骤如下首先,向各数据库节点发送恢复命令。其次,各数据库节点根据本机的备份数据恢复至此前备份的内容。
文档编号G06F17/30GK102662793SQ201210058009
公开日2012年9月12日 申请日期2012年3月7日 优先权日2012年3月7日
发明者不公告发明人 申请人:江苏引跑网络科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1