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