一种分布式数据库同步系统、同步方法和节点管理方法

文档序号:6371237阅读:559来源:国知局
专利名称:一种分布式数据库同步系统、同步方法和节点管理方法
技术领域
本方案涉及到分布式数据库或云数据库同步模型的设计,提供ー种低开销、松耦合、基于Web服务的自主同步方案。
背景技术
当前,将数据副本存放在同一个机房或同一个区域的数据库服务器中,并不能安全地保护数据,尤其是遇到区域性的突发问题,例如地区供电中断,或是自然灾害等突发情况。因此,越来越多的数据库服务系统选择在全球范围设置数据库的副本存放,最大程度的保证数据的安全。日益激増的并发访问量和庞大的数据存取量都要求构建ー个分布式数据库系统。
分布式数据库不仅解决了传统数据库在存储空间上难以扩展的问题以及高度并发访问的瓶颈问题,同时通过数据冗余的方法,很好的确保了数据的完整性和安全性,提供了強大的容灾措施,在出现重大问题后,可以很快地进行数据恢复。支持这些功能最核心的技术之一就是分布式数据库同步技木。通过高效、完善的分布式数据库同步技木,能够及时地将数据库中的数据副本同步到异地数据库服务器中,一旦本地数据出现问题,能够通过同步技术进行数据恢复。本发明在此背景下提出ー种分布式数据库同步方案。

发明内容
为了让分布式数据库之间的同步活动避开数据库负载高峰期,减少数据库同步活动开销,本发明提出了ー种低开销、松耦合、基于Web服务的分布式数据库同步系统、同步方法和节点管理方法。可以显著降低同步活动在维护连接以及身份认证的开销,利用数据库服务器空闲时间进行同步,从而很大程度上降低了对数据库服务器性能的影响。本发明所采用的技术方案是—种分布式数据库同步系统,包括数据库节点和管理节点,所述数据库节点对外提供基于Web服务的分布式数据库存取、更新与查询服务;各数据库节点之间无主从之分,独立担负提供分布式数据库服务的功能;各数据库节点之间没有直接关系,定期从管理节点获取同步配置表、网络成员配置表,与其它数据库节点建立同步关系;各数据库节点中采用基于Web服务的同步模块,利用该同步模块将传统数据库封装起来,对外提供ー组API接ロ函数;所述同步模块包括应用接ロ子模块、同步接ロ子模块以及数据转换子模块,并且维护着ー组同步事务日志表;管理节点用于管理集群中数据库节点的添加、删除、认证、同步配置和心跳监听;管理节点维护网络成员配置表、同步配置表与心跳信息表,定期与各数据库节点通信更新相关信息。所述的分布式数据库同步系统,所述同步事务日志表包括本地日志表和同步日志表;本地日志表记录对本数据库节点进行的各种更新操作日志,同步日志表记录本数据库节点同其它数据库节点的同步操作日志。
所述的分布式数据库同步系统,所述管理节点维护三张配置信息表网络成员配置表用来管理合法数据库节点信息,同时为每个数据库节点配置同步分组,处于同一个分组中的数据库节点互为副本和备份;同步配置表用来确定各数据库节点和其它数据库节点的同步策略;心跳信息表用来记录和维护各数据库节点发来的心跳信息。所述分布式数据库同步系统的数据库同步方法,包括以下步骤H1、数据库节点A与管理节点M通信,获取最新的同步配置表、网络成员配置表;H2、数据库节点A根据同步配置表中相关的同步策略,定期向数据库节点B发送同步请求,同步请求包含数据库节点B的KEY和上次与数据库节点B同步更新的时间标签;H3、数据库节点B在接收到此同步请求之后,检验收到KEY值的合法性,通过检索本地日志表,将上次同步更新时间标签后的増量数据信息返回给数据库节点A ;H4、数据库节点A在接收到数据库节点B返回的同步数据后,更新自己数据库相关信息,并在同步日志表中追加与数据库节点B本次同步的时间标签日
O 所述分布式数据库同步系统的节点管理方法,包括添加节点、删除节点、和故障节点处理;所述添加节点的方法为一个新节点加入网络,先向管理节点提出申请,管理节点对该节点的申请信息进行审查,将其相关信息添加到管理节点的网络成员配置表中;新节点利用管理节点的网络成员配置表获取相关同步策略,与相关目标进行同步;其它节点通过心跳信息方式与管理节点通信,获取与这个新节点的同步策略;所述删除节点的方法为管理节点首先停止该节点对外的数据库服务,检索与被删除节点同步的相关数据库节点,向它们发出立即同步的紧急消息,相关节点接收到此紧急消息后会立即同步将被删除节点上的数据,并在完成同步之后向管理节点返回确认消息;当所有相关节点都同步之后,管理节点在适当时候将该节点的相关信息从网络成员配置表中删除,完成删除节点的工作;所述故障节点处理的方法为管理节点时刻监听各数据库节点的心跳信息,在一定时间段之内,如果管理节点没有接收到某一个数据库节点的心跳信息,则认为该数据库节点出现故障;假设数据库节点A出现故障,管理节点将按照一定的策略,选择ー个合适的数据库节点B暂时接手故障节点数据库节点A的工作,将数据库节点A的Working-area字段内容添加到B的相应信息中;同时将网络成员配置表中同步目标为数据库节点A的相关数据库节点的信息进行更新,使原先同歩数据库节点A的数据库节点现在能够同步数据库节点B上的相关数据;当A恢复正常,管理节点将先让数据库节点A与数据库节点B同步,使数据库节点A获得在故障期间转移到数据库节点B上的増量数据,最后修改网络成员配置表,使相关节点恢复对数据库节点A的同步策略。本发明可应用于分布式数据库或云数据库系统中,利用Web服务执行数据同步功能,代替传统数据库原有数据同步机制;优化同步活动的连接建立方式,降低同步的开销,提升数据库服务器的性能;同时利用Web服务的SOAP协议进行数据传输,能够适应各种复杂的异构网络,解决各种传统数据库相互间数据不兼容且不能相互同步的问题。


图I是发明的基于Web服务的同步模块结构。图2是发明的分布式数据库整体结构。图3是发明的同步分组及节点功能示意图。
图4是发明的同步过程示意图。
具体实施例方式以下结合具体实施例,对本发明进行详细说明。参考图2和图3,分布式数据库同步系统包括数据库节点和管理节点,所有数据库节点都对外提供基于Web服务的分布式数据库存取、更新与查询服务。各数据库节点之间无主从之分,独立担负提供分布式数据库服务的功能。同步分组中各数据库节点互相同步,互为副本和备份。各数据库节点之间没有直接关系,定期从管理节点获取同步配置表、网络成员配置表的相关信息,与其它数据库节点建立同步关系。管理节点主要负责管理集群中数据库节点的添加、删除、认证、同步配置和心跳监听等工作。管理节点维护网络成员配置表、同步配置表与心跳信息表,定期与各数据库节点通信,以便更新相关信息,是整个数据库集群正常运转的核心。 参考图1,各数据库节点中采用基于Web服务的同步模块,利用该同步模块将传统数据库封装起来,对外提供一组API接口函数,无论是对数据的操作,还是对数据的同步,都将通过Web服务提供的API接口函数完成。这样,传统数据库被封装成为一个Web数据库,被封装的传统数据库我们称为底层数据库,底层数据库具有很好的独立性,对外是透明的(即看不见的),底层数据库可为同构数据库,也可为各种类型的异构数据库。通过Web服务和同步模块封装底层数据库,解决各种传统数据库相互间数据异构不兼容、且不能相互同步的问题。。该同步模块包括应用接口子模块、同步接口子模块以及数据转换子模块,并且维护着一组同步事务日志表。(D应用接口子模块应用接口子模块将各种应用程序和底层数据库隔离开,使应用程序不用关心连接的是何种类型的底层数据库,使用何种数据库语言;可编程实现对多种底层数据库的访问操作,若需要更换底层数据库,只需修改配置文件,即可改变所支持数据库的类型。该模块将应用程序对数据库进行的插入、删除以及更新等基本操作记录到同步事务日志表中,以提供给其它数据库节点进行同步,查询操作不对数据库内容进行更新改动,所以不记录到同步事务日志表中。(2)同步接口子模块该模块主要负责发送和接收数据库同步的请求。它用一个配置文件设定本数据库节点与某些数据库节点的同步时间,判断发出同步请求数据库节点的合法性。当本节点需要同步数据时,该模块向特定的目标数据库节点发出同步请求,并将得到的同步信息递交给数据转换子模块;当本节点收到同步请求的时候,该模块首先判断来源数据库节点是否合法,随后通知数据转换子模块,将同步数据进行编码,生成同步数据文件,发送给同步请求方。(3)数据转换子模块该模块负责将同步事务日志表中记录的相应增量操作与特定XML格式的同步文件进行相互转换,增量操作主要包括插入操作、删除操作以及更新操作。被同步节点接收到同步请求后,数据转换模块将同步事务日志表中存储的增量操作记录进行筛选,将符合时间范围之内的增量操作记录提取出来,按照下述存储方式将增量操作按时间顺序存储到XML同步文件中。增量操作转换XML文件的步骤为数据转换模块创建XML同步文件,并在此同步文件中创建根节点;根节点下的每棵子树存储一条增量操作,子树的根属性为该操作名以及操作时间;子树中包含若干分支,分别为操作的表名、变更内容以及变更条件,其中变更内容包括本次操作涉及到的列以及所改动的数据。发起同步的节点收到被同步节点返回的XML同步文件之后,进行逆操作,将XML同步文件转换成增量操作语句,对本地数据库进行相应操作,完成同步。(4)同步事务日志表数据库节点上维护一组同步事务日志表,存放着对数据库的更新操作日志。同步 事务日志表包括本地日志表和同步日志表。本地日志表记录对本数据库节点进行的各种更新操作日志,同步日志表记录本数据库节点同其它数据库节点的同步操作日志。管理节点维护三张配置信息表网络成员配置表用来管理合法数据库节点信息,同时为每个数据库节点配置同步分组,处于同一个分组中的数据库节点互为副本和备份;同步配置表用来确定各数据库节点和其它数据库节点的同步策略;心跳信息表用来记录和维护各数据库节点发来的心跳信息。每个正常工作的数据库节点都会定期向管理节点发送心跳消息,包含了自己的同步验证码KEY以及本数据库节点当前的负载情况,管理节点将心跳消息记录到相应的心跳信息表中。(I)网络成员配置表⑴表结构
权利要求
1.一种分布式数据库同步系统,其特征在于,包括数据库节点和管理节点,所述数据库节点对外提供基于Web服务的分布式数据库存取、更新与查询服务;各数据库节点之间无主从之分,独立担负提供分布式数据库服务的功能;各数据库节点之间没有直接关系,定期从管理节点获取同步配置表、网络成员配置表,与其它数据库节点建立同步关系;各数据库节点中采用基于Web服务的同步模块,利用该同步模块将传统数据库封装起来,对外提供一组API接口函数;所述同步模块包括应用接口子模块、同步接口子模块以及数据转换子模块,并且维护着一组同步事务日志表;管理节点用于管理集群中数据库节点的添加、删除、认证、同步配置和心跳监听;管理节点维护网络成员配置表、同步配置表与心跳信息表, 定期与各数据库节点通信更新相关信息。
2.根据权利要求I所述的分布式数据库同步系统,其特征在于,所述同步事务日志表包括本地日志表和同步日志表;本地日志表记录对本数据库节点进行的各种更新操作日志,同步日志表记录本数据库节点同其它数据库节点的同步操作日志。
3.根据权利要求I所述的分布式数据库同步系统,其特征在于,所述管理节点维护三张配置信息表网络成员配置表用来管理合法数据库节点信息,同时为每个数据库节点配置同步分组,处于同一个分组中的数据库节点互为副本和备份;同步配置表用来确定各数据库节点和其它数据库节点的同步策略;心跳信息表用来记录和维护各数据库节点发来的心跳f目息。
4.根据权利要求I至3任一所述分布式数据库同步系统的数据库同步方法,其特征在于,包括以下步骤H1、数据库节点A与管理节点M通信,获取最新的同步配置表、网络成员配置表;H2、数据库节点A根据同步配置表中相关的同步策略,定期向数据库节点B发送同步请求,同步请求包含数据库节点B的KEY和上次与数据库节点B同步更新的时间标签; H3、数据库节点B在接收到此同步请求之后,检验收到KEY值的合法性,通过检索本地日志表,将上次同步更新时间标签后的增量数据信息返回给数据库节点A ;H4、数据库节点A在接收到数据库节点B返回的同步数据后,更新自己数据库相关信息,并在同步日志表中追加与数据库节点B本次同步的时间标签日志。
5.根据权利要求I至3任一所述分布式数据库同步系统的节点管理方法,其特征在于,包括添加节点、删除节点、和故障节点处理;所述添加节点的方法为一个新节点加入网络,先向管理节点提出申请,管理节点对该节点的申请信息进行审查,将其相关信息添加到管理节点的网络成员配置表中;新节点利用管理节点的网络成员配置表获取相关同步策略,与相关目标进行同步;其它节点通过心跳信息方式与管理节点通信,获取与这个新节点的同步策略;所述删除节点的方法为管理节点首先停止该节点对外的数据库服务,检索与被删除节点同步的相关数据库节点,向它们发出立即同步的紧急消息,相关节点接收到此紧急消息后会立即同步将被删除节点上的数据,并在完成同步之后向管理节点返回确认消息;当所有相关节点都同步之后,管理节点在适当时候将该节点的相关信息从网络成员配置表中删除,完成删除节点的工作;所述故障节点处理的方法为管理节点时刻监听各数据库节点的心跳信息,在一定时间段之内,如果管理节点没有接收到某一个数据库节点的心跳信息,则认为该数据库节点出现故障;假设数据库节点A出现故障,管理节点将按照一定的策略,选择一个合适的数据库节点B暂时接手故障节点数据库节点A的工作,将数据库节点A的Working-area字段内容添加到B的相应信息中;同时将网络成员配置表中同步目标为数据库节点A的相关数据库节点的信息进行更新,使原先同步数据库节点A的数据库节点现在能够同步数据库节点B上的相关数据;当A恢复正常,管理节点将先让数据库节点A与数据库节点B同步,使数据库节点A获得在故障期间转移到数据库节点B上的增量数据,最后修改网络成员配置表, 使相关节点恢复对数据库节点A的同步策略。
全文摘要
本发明公开了一种分布式数据库同步系统,包括数据库节点和管理节点,所述数据库节点对外提供基于Web服务的分布式数据库存取、更新与查询服务;各数据库节点之间无主从之分,独立担负提供分布式数据库服务的功能;各数据库节点之间没有直接关系,定期从管理节点获取同步配置表、网络成员配置表,与其它数据库节点建立同步关系;各数据库节点中采用基于Web服务的同步模块,利用该同步模块将传统数据库封装起来,对外提供一组API接口函数。利用Web服务的SOAP协议进行数据传输,能够适应各种复杂的异构网络,解决各种传统数据库相互间数据不兼容且不能相互同步的问题。
文档编号G06F17/30GK102693324SQ20121019066
公开日2012年9月26日 申请日期2012年6月4日 优先权日2012年1月9日
发明者于菊珍, 王凯东, 胡继磊 申请人:西安电子科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1