分布式数据库系统及其数据同步方法和节点的制作方法

文档序号:6505807阅读:189来源:国知局
分布式数据库系统及其数据同步方法和节点的制作方法
【专利摘要】本发明公开了一种分布式数据库系统及其数据同步方法和节点,其中,该方法包括:分布式数据的一个复制组中,主节点获取操作源设备发送的数据更新操作,并向该复制组中的一个或多个从节点发送所述数据更新操作。通过本发明,采用发送数据更新操作而不是更新后的整个数据文件,避免了文件损坏导致的数据丢失的问题,同时,避免了由客户端设备直接向各个节点发送数据更新操作导致客户端设备多次重发的问题,有效地提高了分布式数据库系统的可靠性和稳定性。
【专利说明】分布式数据库系统及其数据同步方法和节点

【技术领域】
[0001]本发明涉及通信领域,具体而言,涉及一种分布式数据库系统及其数据同步方法和节点。

【背景技术】
[0002]复制组指分布式数据库的一个数据节点,一个复制组中包括至少2个节点。按照其在工作中的切换方式可分为主节点和从节点。主节点为在数据库进行增、删、改等操作时直接操作的节点,其对数据进行的各种修改要同步到从节点,从节点接受主节点的各种修改操作。
[0003]在相关技术中,使用分布式文件系统或者镜像同步软件进行数据库节点间数据的同步。其中,对于使用分布式文件系统的方案,分布式文件系统完成数据的同步和备份,当一个节点宕机或出现异常时,其它节点可以立即接管,对上层应用完全透明。对于使用第三方的镜像同步软件的方案,镜像同步软件的主从关系随着复制组内主备节点的切换而切换。如图1所示,当在镜像同步软件的主节点上写入数据时,数据文件自动同步到备节点上,对用户也是透明的。
[0004]在使用分布式文件系统或者镜像同步软件时,程序异常导致数据文件损坏时,损坏的文件也会立即同步到其它节点上。在这种情况下,即使使用其它节点接管文件损坏的节点,也无法再继续处理,只能对损坏的文件进行解析。解析损坏的文件时,需要停止当前的业务,并且要丢掉一些无法修复的数据。
[0005]另外,相关技术中还采用了由客户端直接向分布式数据库系统的多个节点发送数据更新操作的方式,在该方式下,如果多个节点中的任意节点无法完成数据更新,则客户端需要继续发送,并且同步机制复杂。
[0006]综上所述,相关技术中的分布式数据库系统的数据同步方案,降低了分布式数据库系统的可靠性和稳定性。针对上述的分布式数据库系统的可靠性和稳定性较差的问题,目前尚未提出有效的解决方案。


【发明内容】

[0007]本发明实施例提供了一种分布式数据库系统及其数据同步方法和节点,以至少解决相关技术中分布式数据库系统的可靠性和稳定性较差的技术问题。
[0008]根据本发明实施例的一个方面,提供了一种分布式数据库系统的数据同步方法,包括:主节点获取操作源设备发送的数据更新操作,其中所述数据更新操作用于更新所述分布式数据库系统的数据文件中的数据;所述主节点向一个或多个从节点发送所述数据更新操作。
[0009]优选地,上述方法还包括:所述一个或多个从节点接收所述数据更新操作;所述一个或多个从节点根据所述数据更新操作更新所述数据文件中的数据。
[0010]优选地,所述主节点向一个或多个从节点同步所述更新操作包括:所述主节点记录所述数据更新操作至文件中;所述主节点通过文件传输协议(File Transfer Protocol,简称为FTP)将所述文件传输至所述一个或多个从节点。
[0011]优选地,在所述一个或多个从节点中的数据文件出现损坏的情况下,还包括:
[0012]所述主节点暂停向数据文件损坏的从节点发送所述数据更新操作,并向所述数据文件损坏的从节点发送所述主节点上存储的数据文件。
[0013]优选地,所述主节点和所述一个或多个从节点位于分布式数据库系统复制组中。
[0014]根据本发明实施例的另一个方面,提供了一种主节点,位于分布式数据库系统中,包括:获取模块,用于获取操作源设备发送的数据更新操作,其中所述数据更新操作用于更新所述分布式数据库系统的数据文件中的数据;同步模块,用于向一个或多个从节点发送所述数据更新操作。
[0015]优选地,所述同步模块包括:记录单元,用于记录所述数据更新操作至文件中;传输单元,用于通过FTP将所述文件传输至所述一个或多个从节点。
[0016]根据本发明实施例的又一个方面,提供了一种从节点,位于分布式数据库系统中,包括:接收模块,用于接收所述分布式数据库系统中主节点发送的数据更新操作,其中所述数据更新操作用于更新了所述分布式数据库系统的数据文件中的数据;更新模块,用于根据所述数据更新操作更新所述数据文件中的数据。
[0017]优选地,所述接收模块包括:传输单元,用于通过FTP接收携带有所述数据更新操作的文件;解析单元,用于从所述文件中解析出所述数据更新操作。
[0018]根据本发明实施例的再一个方面,提供了一种分布式数据库系统,包括:主节点、以及一个或多个从节点,其中,所述主节点,用于获取操作源设备发送的数据更新操作,并向一个或多个从节点发送所述数据更新操作,其中所述数据更新操作用于更新所述分布式数据库系统的数据文件中的数据;所述一个或多个从节点,用于接收所述数据更新操作,并根据所述数据更新操作更新所述数据文件中的数据。
[0019]优选地,所述一个或多个从节点,还用于在所述主节点中的数据文件出现故障的情况下作为新的主节点。
[0020]在本发明实施例中,分布式数据主节点获取操作源设备发送的数据更新操作,并向分布式系统中同一复制组内的一个或多个从节点发送所述数据更新操作,通过发送数据更新操作而不是更新后的整个数据文件,避免了文件损坏导致的数据丢失的问题,同时,避免了由客户端设备直接向各个节点发送数据更新操作导致客户端设备多次重发的问题,有效地提高了分布式数据库系统的可靠性和稳定性。

【专利附图】

【附图说明】
[0021]此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0022]图1是根据相关技术的数据库数据的同步方法的示意图;
[0023]图2是根据本发明实施例的分布式数据库系统的示意图;
[0024]图3是根据本发明实施例的分布式数据库系统的数据同步的示意图;
[0025]图4是根据本发明实施例的主节点的结构框图;
[0026]图5是根据本发明实施例的从节点的结构框图;
[0027]图6是根据本发明实施例的分布式数据库系统的数据同步方法的流程图;
[0028]图7是根据本发明优选实施例的数据同步的实现方法的流程图;
[0029]图8是根据本发明优选实施例的从机出现故障时的数据同步的流程图;以及
[0030]图9是根据本发明优选实施例的主机出现故障时的数据同步的流程图。

【具体实施方式】
[0031]下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
[0032]根据本发明实施例,提供了一种分布式数据库系统。
[0033]图2是根据本发明实施例的分布式数据库系统的示意图,如图2所示,该系统包括主节点202和至少一个从节点204,其中,主节点202,用于获取操作源设备发送的数据更新操作,并向一个或多个从节点204发送数据更新操作,其中该数据更新操作用于更新分布式数据库系统的数据文件中的数据;一个或多个从节点204,用于接收主节点202发送的上述数据更新操作,并根据该数据更新操作更新数据文件中的数据。
[0034]在本发明实施例的一个优选实施方式中,主节点202,可以用于周期性地或者在接收到的数据更新操作达到预定数量的情况下,向从节点204发送接收到的数据更新操作。通过设置发送数据更新操作的条件,可以降低数据传输占用的资源。
[0035]进一步的,在本发明实施例的一个优选实施方式中,主节点202,可以用于将接收到的数据更新操作记录到文件中,然后通过FTP方式传输至从节点204。相应的,从节点204,可以用于接收主节点202发送的文件,并从接收到的文件中解析出数据更新操作。在这种情况下,主节点202和从节点204中需要配置支持FTP传输的装置或功能模块。
[0036]需要说明的是,本发明实施例并不限于上述通过文件方式发送数据更新操作,本领域技术人员可以根据需要采用其他方式,例如,自定义消息,将数据更新操作携带在自定义消息中发送。
[0037]在本发明实施例中,在任意从节点204中的数据文件出现损坏时,主节点202可以暂停向数据文件出现损坏的从节点204发送数据更新操作,并直接向该从节点204发送数据文件。在该从节点204的数据文件恢复正常后,主节点202继续向该从节点204发送数据更新操作进行数据同步。
[0038]另外,在本发明实施例中,主节点202的数据文件出现损坏时,主节点202停止发送数据更新操作。一个或多个从节点204中的一个从节点204作为新的主节点,向从节点204发送数据更新操作,并向原主节点204发送数据文件。在数据文件恢复时,新的主节点202可以向原主节点204发送数据更新操作。或者,在原主节点202的数据文件恢复后,可以重新成为主节点202。
[0039]在实际应用中,上述操作源设备可以是安装有数据库应用软件的设备。上述主节点202和上述从节点204可以包括本领域公知的硬件和软件,可用于运行Windows、UNIX、LINUX或其他操作系统,并可被配置为可运行JAVA、C等编程语言编写的应用程序。主节点202和从节点204可以包括独立计算机、多CPU机器、或服务器。主节点202和从节点204之间可以通过公知的通信方式进行交互。主节点202和从节点204可以被配置为对诸如Oracle等数据库进行管理。
[0040]为了更直接的展现本发明实施例的技术原理,与图1中的相关技术对应,本发明实施例的方案可以如图3所示,其具体实现方式如前所述,在此不再赘述。
[0041]下面对本发明实施例的主节点和从节点进行分别描述。
[0042]图4是根据本发明实施例的主节点的结构框图,如图4所示,本发明实施例的主节点可以包括:获取模块10和同步模块20,其中,获取模块10,用于获取操作源设备发送的数据更新操作,同步模块20,与获取模块10相连接,用于向一个或多个从节点发送获取到的数据更新操作。
[0043]在本发明实施例的一个优选实施方式中,同步模块20可以包括:记录单元,用于记录上述数据更新操作至文件中;传输单元,用于通过FTP将上述文件传输至一个或多个从节点。
[0044]图5是根据本发明实施例的从节点的结构框图,如图5所示,本发明实施例的从节点包括:接收模块30和更新模块40,其中,接收模块30,用于接收分布式数据库系统中主节点发送的数据更新操作;更新模块40,与接收模块30相连接,用于根据上述数据更新操作更新数据文件中的数据。
[0045]对应的,在本发明实施例的一个优选实施方式中,接收模块30可以包括:传输单元,用于通过FTP接收携带有上述数据更新操的文件;解析单元,用于从接收到的上述文件中解析出其携带的数据更新操作。
[0046]在实际应用中,上述文件可以是文本文件、XML文件等,本发明实施例对此不进行限定,只要能够发送数据更新操作,并能够从文件中解析出数据更新操作即可。
[0047]在本发明实施例的一个优选实施方式中,主节点和从节点可以相互切换,即主节点可以具备从节点的功能,同时从节点也可以具备主节点的功能。因此,上述主节点中可以被配置为包括从节点的各个模块,同理,从节点中也可以被配置为包括主节点的各个功能模块。
[0048]进一步的,当节点作为主节点时,被配置为执行主节点的功能,当节点作为从节点时,被配置为执行从节点的功能。
[0049]上述主节点和从节点的功能可以通过软件代码实现,软件代码通过编译后存储在主节点或从节点的存储器中,主节点或从节点的处理器通过读取并执行软件代码实现上述功能。或者,上述功能也可以通过本领域公知的硬件或硬件和软件相结合实现。本发明实施例对此不进行严格限制。
[0050]下面对本发明实施例实现上述功能的方法进行描述。
[0051]图6是根据本发明实施例的分布式数据库系统的数据同步方法的流程图,如图6所示,该方法可以包括步骤S602至步骤S604。
[0052]步骤S602,主节点获取操作源设备发送的数据更新操作,其中所述数据更新操作用于更新所述分布式数据库系统的数据文件中的数据;
[0053]步骤S604,主节点向一个或多个从节点发送所述数据更新操作。
[0054]优选地,在本发明实施例的一个优选实施方式中,上述方法还包括:一个或多个从节点接收上述数据更新操作,并根据该数据更新操作更新数据文件中的数据。
[0055]在本发明实施例的一个优选实施方式中,主节点可以周期性地或者在接收到的数据更新操作达到预定数量的情况下,向从节点204发送接收到的数据更新操作。通过设置发送数据更新操作的条件,可以降低数据传输占用的资源。
[0056]进一步的,在本发明实施例的一个优选实施方式中,主节点可以将接收到的数据更新操作记录到文件中,然后通过FTP方式传输至从节点。相应的,从节点204可以接收主节点202发送的文件,并从接收到的文件中解析出数据更新操作。
[0057]需要说明的是,本发明实施例并不限于上述通过文件方式发送数据更新操作,本领域技术人员可以根据需要采用其他方式,例如,自定义消息,将数据更新操作携带在自定义消息中发送。
[0058]在本发明实施例中,在任意从节点中的数据文件出现损坏时,主节点可以暂停向数据文件出现损坏的从节点发送数据更新操作,并直接向该从节点发送数据文件。在该从节点的数据文件恢复正常后,主节点继续向该从节点发送数据更新操作进行数据同步。
[0059]另外,在本发明实施例中,主节点的数据文件出现损坏时,主节点停止发送数据更新操作。一个或多个从节点中的一个从节点作为新的主节点,向从节点发送数据更新操作,并向原主节点发送数据文件。在数据文件恢复时,新的主节点可以向原主节点发送数据更新操作。或者,在原主节点的数据文件恢复后,可以重新成为主节点。
[0060]优选实施例
[0061]本发明实施例提供一种分布式数据库复制组内节点间数据同步的方法、系统和装置,以实现对节点间数据的同步,避免因程序发生故障导致数据文件损坏时,将损坏的文件也同步到从机。
[0062]在本发明实施例中,上述主节点为主机,指在分布式数据库的复制组中参与具体的增、删、改、查运算的节点,该节点上修改的数据需要同步到从机上。所述从机,是指在分布式数据库的复制组中不参与具体的增、删、改、查运算,只接收主机同步过来的数据,在主机出现问题时,从机要改变角色为主机启动,接管出现问题的主机。当主机问题排除时,启动为从机。
[0063]主机在发生增、删、改等操作时,将修改的数据记录在redolog文件中。主机通过定时和定量的原则将redolog传送至从机上。从机接收到redolog文件后,要按照约定好的规则对文件进行解析。
[0064]在本发明实施例中,各个节点包括主机模式和从机模式。当节点为主机时,启动为主机模式;当节点为从机时,启动为从机模式。
[0065]在具体实现中,在启动分布式数据库数据节点的服务程序时,如果不加参数,启动为主机模式,如果加上” -s”参数时,则以从机模式启动。
[0066]当节点启动为主机模式时,按照预先规划的数据格式记录下主机所进行的各种增、删、改等操作,并保存在redolog文件中。当redolog文件大小达到设定的数量或者经过一定时间仍没有达到设定的数量,则将redolog文件传送至从机。当节点启动为从机模式时,接收来自主机的redolog文件,按照预定的数据格式对其进行解析,并对从机上的数据进行同样的修改。
[0067]各个节点带有一个配置文件,在配置文件中含有复制组内其它节点的IP地址、FTP端口、FTP用户名和FTP密码。当节点启动为主机模式时,需要读取这些信息,并将产生的redolog文件使用FTP协议传送到备节点。
[0068]当主机发生故障时,在从机上由从机模式转为主机模式。当原来的主机故障排除时,在新的主机上运行为从机模式。
[0069]当从机上因为程序故障发生数据文件损坏时,将该文件隔离,并通知主机该文件发生损坏,主机将停止向该从机传送相关的redolog文件,并将相应的数据文件传送给该从机。
[0070]当主机上因为程序故障发生数据文件损坏时,应将该文件隔离,并且将其中一个从机切换为主机模式,原主机切换为从机模式。此时新的从机将通知新的主机该文件发生损坏,新的主机需要传送相应的数据文件给新的从机,传送完成后,才能再传送redolog文件。
[0071]在本发明实施例中,复制组内各节点机器上需要部署FTP服务端程序,用于redolog文件和数据文件的传输。
[0072]下面对本发明实施例的流程的各个方面进行描述。
[0073]图7是根据本发明优选实施例的数据同步的实现方法的流程图,该实现方法的流程如图7所示,包括以下步骤:
[0074]步骤S702,将主机上的数据库程序启动为主机模式。
[0075]步骤S704,将从机上的数据库程序启动为从机模式。
[0076]步骤S706,当用户对数据库进行增、删、改等操作时,主机上会按照约定好的数据格式产生相应的redolog文件。
[0077]步骤S708,当主机上的redolog文件达到一定大小时,或者超过一定的时间仍未达到指定的大小时,则将该redolog文件传送至从机。
[0078]步骤S710,从机接收从主机传送过来的redolog文件,并按照约定的数据格式对其进行解析,并在从机上对数据文件执行同样的修改操作。
[0079]通过以上几个步骤,该复制组已经处于正常工作状态,属于整个分布式数据库中的一个数据节点。
[0080]当该复制组内的主机发生故障且没有发生文件损坏时,则主从机发生切换;当该复制组内的从机发生故障且没有发生文件损坏时,则首先要排除从机的故障,然后从机继续接收来自主机的redolog文件。
[0081]当复制组内从机发生故障且数据文件损坏时,本发明实施例提供了恢复方法,该方法的流程如图8所示,包括以下步骤:
[0082]步骤S802,从机数据文件发生损坏时,从机能够检查到损坏文件的名称。
[0083]步骤S804,从机会发送消息给主机,告诉主机损坏的文件的名称。
[0084]步骤S806,主机接收到从机的消息,此时停止向该从机传送关于该损坏文件的redolog 文件。
[0085]步骤S808,主机将整个文件通过FTP协议传送给该从机。该从机接收完数据文件后才可以接收和处理redolog文件。
[0086]当复制组内主机发生故障且数据文件损坏时,本发明实施例提供了恢复方法,该方法的流程如图9所示,包括以下步骤:
[0087]步骤S902,当主机文件发生损坏时,此时主机需要向分布式数据库集群控制系统汇报,请求主备切换。
[0088]步骤S904,分布式数据库集群控制系统对该数据节点进行主备切换。
[0089]步骤S906,新的从机会通知新的主机损坏文件的列表。
[0090]步骤S908,此时新的主机刚刚启动,还未产生redolog文件,直接将相应的数据文件传送给新的从机。新的从机接收完数据文件后,才可以接收和处理redolog文件。
[0091]综上所述,本发明提供的分布式数据库复制组内数据节点间数据同步的方法,能够有效防止损坏的数据文件也被同步,使整个分布式数据库系统更加稳定可靠。
[0092]在另外一个实施例中,还提供了一种软件,该软件用于执行上述实施例及优选实施方式中描述的技术方案。
[0093]在另外一个实施例中,还提供了一种存储介质,该存储介质中存储有上述软件,该存储介质包括但不限于:光盘、软盘、硬盘、可擦写存储器等。
[0094]从以上的描述中,可以看出,本发明实现了如下技术效果:
[0095]分布式数据主节点获取操作源设备发送的数据更新操作,并向分布式系统中的一个或多个从节点发送所述数据更新操作,通过发送数据更新操作而不是更新后的整个数据文件,避免了文件损坏导致的数据丢失的问题,同时,避免了由客户端设备直接向各个节点发送数据更新操作导致客户端设备多次重发的问题,有效地提高了分布式数据库系统的可靠性和稳定性。
[0096]显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
[0097]以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种分布式数据库系统的数据同步方法,其特征在于,包括: 主节点获取操作源设备发送的数据更新操作,其中所述数据更新操作用于更新所述分布式数据库系统的数据文件中的数据; 所述主节点向一个或多个从节点发送所述数据更新操作。
2.根据权利要求1所述的方法,其特征在于,还包括: 所述一个或多个从节点接收所述数据更新操作; 所述一个或多个从节点根据所述数据更新操作更新所述数据文件中的数据。
3.根据权利要求1或2所述的方法,其特征在于,所述主节点向一个或多个从节点同步所述更新操作包括: 所述主节点记录所述数据更新操作至文件中; 所述主节点通过文件传输协议FTP将所述文件传输至所述一个或多个从节点。
4.根据权利要求1或2所述的方法,其特征在于,在所述一个或多个从节点中的数据文件出现损坏的情况下,还包括: 所述主节点暂停向数据文件损坏的从节点发送所述数据更新操作,并向所述数据文件损坏的从节点发送所述主节点上存储的数据文件。
5.根据权利要求1所述的方法,其特征在于,所述主节点和所述一个或多个从节点位于所述分布式数据库系统复制组中。
6.一种主节点,位于分布式数据库系统复制组中,其特征在于,包括: 获取模块,用于获取操作源设备发送的数据更新操作,其中所述数据更新操作用于更新所述分布式数据库系统的数据文件中的数据; 同步模块,用于向一个或多个从节点发送所述数据更新操作。
7.根据权利要求6所述的主节点,其特征在于,所述同步模块包括: 记录单元,用于记录所述数据更新操作至文件中; 传输单元,用于通过文件传输协议FTP将所述文件传输至所述一个或多个从节点。
8.一种从节点,位于分布式数据库系统复制组中,其特征在于,包括: 接收模块,用于接收所述分布式数据库系统中主节点发送的数据更新操作,其中所述数据更新操作用于更新了所述分布式数据库系统的数据文件中的数据; 更新模块,用于根据所述数据更新操作更新所述数据文件中的数据。
9.根据权利要求8所述的从节点,其特征在于,所述接收模块包括: 传输单元,用于通过文件传输协议FTP接收携带有所述数据更新操作的文件; 解析单元,用于从所述文件中解析出所述数据更新操作。
10.一种分布式数据库系统,其特征在于,包括:主节点、以及一个或多个从节点,其中, 所述主节点,用于获取操作源设备发送的数据更新操作,并向一个或多个从节点发送所述数据更新操作,其中所述数据更新操作用于更新所述分布式数据库系统的数据文件中的数据; 所述一个或多个从节点,用于接收所述数据更新操作,并根据所述数据更新操作更新所述数据文件中的数据。
11.根据权利要求10所述的系统,其特征在于,所述一个或多个从节点,还用于在所述主节点中的数据文件出现故障的情况下作为新的主节点。
【文档编号】G06F17/30GK104281631SQ201310294944
【公开日】2015年1月14日 申请日期:2013年7月12日 优先权日:2013年7月12日
【发明者】叶成旭, 徐宜良 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1