一种数据库集群系统及其恢复方法、管理节点的制作方法

文档序号:9375636阅读:536来源:国知局
一种数据库集群系统及其恢复方法、管理节点的制作方法
【技术领域】
[0001]本发明涉及数据库技术领域,具体涉及一种数据库集群系统及其恢复方法、管理节点。
【背景技术】
[0002]数据库集群系统将集群技术与数据库系统相结合,其包括一组完整的、自治的计算处理单元(节点),每个节点均有独自的CPU、内存以及磁盘等硬件资源,运行独立的操作系统和自治的数据库系统。各个节点通过高速专用网络或者商业通用网络互连,彼此协同计算,作为统一的数据库系统提供并行事务处理服务。
[0003]在现今大数据的环境下,对于数据库集群系统而言,除了正确、快速的处理用户的数据之外,还需要考虑数据库的可靠性,以及在故障出现后,如何迅速的处理故障以及时的提供服务。
[0004]在数据库系统中,数据库本身产生的事务日志是数据库自身可靠性保证的重要工具。每个节点的数据库系统都具有事务日志,用于记录所有事务以及每个事务对数据库所做的修改。事务日志是数据库的重要组件。如果系统出现故障,则可能需要使用事务日志进行故障恢复,将数据库恢复到一致状态。
[0005]因此,如何利用事务日志,实现简便、简便的数据库集群系统恢复,是个一个亟待解决的重要问题。

【发明内容】

[0006]本发明提供了一种数据库集群系统的恢复方法,可以简便、高效地实现数据库恢复。
[0007]为解决上述技术问题,本发明提供的数据库集群系统的恢复方法,所述数据库集群系统包括一个管理节点和多个数据库节点,所述恢复方法包括:
[0008]所述管理节点收集系统中各个数据库节点的事务日志;
[0009]根据事务的先后时序关系,对收集的所有数据库节点的事务日志中的事务进行排序,得到事务列表;
[0010]轮询所述事务列表中的事务,直至所有事务轮询完毕,其中,在轮询每个事务时,判断当前轮询事务是否仅涉及一个相关数据库节点:
[0011]若是,则将当前轮询事务的事务信息发送给相关数据库节点,由所述相关数据库节点根据该事务信息进行故障恢复,并继续轮询所述事务列表中的下一个事务;
[0012]否则,将当前轮询事务的事务信息发送给每个相关数据库节点,由每个相关数据库节点分分别根据该事务信息进行故障恢复,并在接收到所有相关数据库节点反馈的故障恢复完成消息后,才继续轮询所述事务列表中的下一个事务。
[0013]本发明实施例的上述的恢复方法中,在当前轮询事务仅涉及一个相关数据库节点时,将当前轮询事务的事务信息发送给所述相关数据库节点后,直接轮询所述事务列表中的下一个事务,而不等待接收所述相关数据库节点反馈的故障恢复完成消息。
[0014]本发明实施例的上述的恢复方法中,在轮询完所述事务列表中的所有事务后,所述恢复方法还包括:
[0015]接收到所述事务列表中的每个事务的所有相关数据库节点反馈的故障恢复完成消息,确定所述数据库集群系统的成功恢复。
[0016]本发明实施例的上述的恢复方法中,所述管理节点收集的数据库节点的事务日志包括:每条事务的全局事务号及事务时序信息;
[0017]所述根据事务的先后时序关系,对收集的所有数据库节点的事务日志中的事务进行排序,得到事务列表,包括:
[0018]根据事务的全局事务号,确定当前收集的所有不同事务,其中,具有相同全局事务号的事务为同一事务;
[0019]根据每条事务的事务时序信息,排序所述所有不同事务,得到事务列表。
[0020]本发明实施例的上述的恢复方法中,所述管理节点进一步根据当前轮询事务的全局事务号,是否仅存在一个数据库节点的事务日志中,来判断当前轮询事务是否仅涉及一个相关数据库节点
[0021 ] 本发明实施例的上述的恢复方法中,所述管理节点收集的数据库节点的事务日志还包括:该数据库节点的节点标识、以及该事务日志在该数据库节点处的保存位置;
[0022]所述管理节点进一步根据相关数据库节点的节点标识,将当前轮询事务的事务信息发送给相关数据库节点,所述事务信息包括当前轮询事务的全局事务号以及在该相关数据库节点处的保存位置,以使该相关数据库节点据此从本地事务日志中读取相应的事务并进行故障恢复。
[0023]本发明还提供了一种管理节点,包括:
[0024]收集单元,用于收集所述数据库集群系统中各个数据库节点的事务日志;
[0025]排序单元,用于根据事务的先后时序关系,对收集的所有数据库节点的事务日志中的事务进行排序,得到事务列表;
[0026]轮询单元,用于轮询所述事务列表中的事务,直至所有事务轮询完毕,其中,在轮询每个事务时,判断当前轮询事务是否仅涉及一个相关数据库节点:若是,则将当前轮询事务的事务信息发送给相关数据库节点,由所述相关数据库节点根据该事务信息进行故障恢复,并继续轮询所述事务列表中的下一个事务;否则,将当前轮询事务的事务信息发送给每个相关数据库节点,由每个相关数据库节点分分别根据该事务信息进行故障恢复,并在接收到所有相关数据库节点反馈的故障恢复完成消息后,才继续轮询所述事务列表中的下一个事务。
[0027]本发明实施例的上述的管理节点中,所述轮询单元,在当前轮询事务仅涉及一个相关数据库节点时,将当前轮询事务的事务信息发送给所述相关数据库节点后,直接轮询所述事务列表中的下一个事务,而不等待接收所述相关节点反馈的故障恢复完成消息。
[0028]本发明实施例的上述的管理节点还包括:
[0029]确定单元,用于在所述轮询单元轮询完所述事务列表中的所有事务后,若接收到所述事务列表中的每个事务的所有相关数据库节点反馈的故障恢复完成消息后,则确定所述数据库集群系统的成功恢复。
[0030]本发明实施例的上述的管理节点中,所述收集单元收集的数据库节点的事务日志包括:每条事务的全局事务号及事务时序信息;
[0031]所述排序单元,进一步用于根据事务的全局事务号,确定当前收集的所有不同事务,其中,具有相同全局事务号的事务为同一事务;以及,根据每条事务的事务时序信息,排序所述所有不同事务,得到事务列表。
[0032]本发明实施例的上述的管理节点中,所述轮询单元还用于根据当前轮询事务的全局事务号,是否仅存在一个数据库节点的事务日志中,来判断当前轮询事务是否仅涉及一个相关数据库节点
[0033]本发明实施例的上述的管理节点中,所述收集单元收集的数据库节点的事务日志还包括:该数据库节点的节点标识、以及该事务日志在该数据库节点处的保存位置;
[0034]所述轮询单元还用于根据相关数据库节点的节点标识,将当前轮询事务的事务信息发送给相关数据库节点,所述事务信息包括当前轮询事务的全局事务号以及在该相关数据库节点处的保存位置,以使该相关数据库节点据此从本地事务日志中读取相应的事务并进行故障恢复。
[0035]本发明还提供了一种数据库集群系统,包括多个数据库节点,还包括以上所述的管理节点。
[0036]与现有技术相比,本发明实施例提供的数据库集群系统及其恢复方法、管理节点,具有以下有益效果:
[0037]本发明实施例采用了统一的资源管理节点来控制恢复操作,将集群的事务日志统一进行管理,在整体上进行组织,简化了数据库的恢复实现过程,并可以利用数据库节点的并行恢复以提高恢复效率。并且,本实施例可以避免在事务跨节点的时候不同数据库节点间相互通信的开销,从而减少了节点间的通信开销,因此在全局事务比较多的应用场景中,具有明显的优势。
【附图说明】
[0038]图1为本发明实施例所述
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1