一种数据库主从节点的数据同步方法和装置制造方法及图纸

技术编号:27513394 阅读:15 留言:0更新日期:2021-03-02 18:45
本发明专利技术公开了一种数据库主从节点的数据同步方法和装置,方法包括:在主节点上启用时序型数据库的输出日志功能并确定输出日志的格式;配置并启用时序型数据库的主从同步器来持续监听主节点的输出日志;从输出日志中解析出基于时序顺序的针对时序型数据库的所有编辑操作;响应于从节点离线,而将编辑操作作为待同步操作缓存到主节点的轻量数据库中;响应于从节点在线,而将编辑操作和已缓存的待同步操作同步到从节点。本发明专利技术能够在主从数据库离线正常执行主从数据同步及主从切换,保证数据完整性。完整性。完整性。

【技术实现步骤摘要】
一种数据库主从节点的数据同步方法和装置


[0001]本专利技术涉及存储领域,更具体地,特别是指一种数据库主从节点的数据同步方法和装置。

技术介绍

[0002]使用传统关系型数据库存储时间序列有很多的弊端。比如在数据量较大的情况下查询速度慢对用户不友好、对存储没有做优化占用磁盘空间大等。而influxdb作为一个开源时序型数据,着力于高性能地查询与存储时序型数据,但不具有主从同步功能,即不支持集群。如果需要实现主从数据同步,基本都是在写数据的时候,同时往主从节点中写数据,这种方式虽然能解决主从同步的问题,但是却不是最优的方式,因为往主从数据库中同时存储数据会占用大量带宽,并且一旦主/从数据库出现离线,则会造成数据丢失,这将会是很严重的。
[0003]针对现有技术中的主从同步可能导致数据丢失的问题,目前尚无有效的解决方案。

技术实现思路

[0004]有鉴于此,本专利技术实施例的目的在于提出一种数据库主从节点的数据同步方法和装置,能够在主从数据库离线正常执行主从数据同步及主从切换,保证数据完整性。
[0005]基于上述目的,本专利技术实施例的第一方面提供了一种数据库主从节点的数据同步方法,包括执行以下步骤:
[0006]在主节点上启用时序型数据库的输出日志功能并确定输出日志的格式;
[0007]配置并启用时序型数据库的主从同步器来持续监听主节点的输出日志;
[0008]从输出日志中解析出基于时序顺序的针对时序型数据库的所有编辑操作;
[0009]响应于从节点离线,而将编辑操作作为待同步操作缓存到主节点的轻量数据库中;
[0010]响应于从节点在线,而将编辑操作和已缓存的待同步操作同步到从节点。
[0011]在一些实施方式中,输出日志中包括多个操作,每个操作均具有基于时序确定的序列号;从输出日志中解析出基于时序顺序的针对时序型数据库的所有编辑操作包括:基于每个操作的序列号确定所有编辑操作的时序顺序。
[0012]在一些实施方式中,将编辑操作和已缓存的待同步操作同步到从节点包括:基于每个操作的序列号顺序依次将编辑操作和待同步操作中的每一个操作同步到从节点。
[0013]在一些实施方式中,方法还包括:响应于主节点和从节点发生主从切换,而适应性地解析从节点的输出日志并将编辑操作同步到主节点。
[0014]在一些实施方式中,编辑操作包括增加数据、删除数据、和修改数据。
[0015]在一些实施方式中,方法还包括:在将待同步操作同步到从节点后,还删除轻量数据库中的待同步操作。
[0016]在一些实施方式中,时序型数据库为influxdb,轻量数据库为sqlite。
[0017]本专利技术实施例的第二方面提供了一种数据库主从节点的数据同步装置,包括:
[0018]处理器;和
[0019]存储器,存储有处理器可运行的程序代码,程序代码在被运行时执行以下步骤:
[0020]在主节点上启用时序型数据库的输出日志功能并确定输出日志的格式;
[0021]配置并启用时序型数据库的主从同步器来持续监听主节点的输出日志;
[0022]从输出日志中解析出基于时序顺序的针对时序型数据库的所有编辑操作;
[0023]响应于从节点离线,而将编辑操作作为待同步操作缓存到主节点的轻量数据库中;
[0024]响应于从节点在线,而将编辑操作和已缓存的待同步操作同步到从节点。
[0025]在一些实施方式中,输出日志中包括多个操作,每个操作均具有基于时序确定的序列号;
[0026]从输出日志中解析出基于时序顺序的针对时序型数据库的所有编辑操作包括:基于每个操作的序列号确定所有编辑操作的时序顺序;
[0027]将编辑操作和已缓存的待同步操作同步到从节点包括:基于每个操作的序列号顺序依次将编辑操作和待同步操作中的每一个操作同步到从节点。
[0028]在一些实施方式中,步骤还包括:响应于主节点和从节点发生主从切换,而适应性地解析从节点的输出日志并将编辑操作同步到主节点。
[0029]本专利技术具有以下有益技术效果:本专利技术实施例提供的数据库主从节点的数据同步方法和装置,通过在主节点上启用时序型数据库的输出日志功能并确定输出日志的格式;配置并启用时序型数据库的主从同步器来持续监听主节点的输出日志;从输出日志中解析出基于时序顺序的针对时序型数据库的所有编辑操作;响应于从节点离线,而将编辑操作作为待同步操作缓存到主节点的轻量数据库中;响应于从节点在线,而将编辑操作和已缓存的待同步操作同步到从节点的技术方案,能够在主从数据库离线正常执行主从数据同步及主从切换,保证数据完整性。
附图说明
[0030]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0031]图1为本专利技术提供的数据库主从节点的数据同步方法的流程示意图。
具体实施方式
[0032]为使本专利技术的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本专利技术实施例进一步详细说明。
[0033]需要说明的是,本专利技术实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本专利技术实施例的限定,后续实施例对此不再一一说明。
[0034]基于上述目的,本专利技术实施例的第一个方面,提出了一种在主从数据库离线正常执行主从数据同步及主从切换的数据库主从节点的数据同步方法的一个实施例。图1示出的是本专利技术提供的数据库主从节点的数据同步方法的流程示意图。
[0035]所述的数据库主从节点的数据同步方法,如图1所示,包括执行以下步骤:
[0036]步骤S101,在主节点上启用时序型数据库的输出日志功能并确定输出日志的格式;
[0037]步骤S103,配置并启用时序型数据库的主从同步器来持续监听主节点的输出日志;
[0038]步骤S105,从输出日志中解析出基于时序顺序的针对时序型数据库的所有编辑操作;
[0039]步骤S107,响应于从节点离线,而将编辑操作作为待同步操作缓存到主节点的轻量数据库中;
[0040]步骤S109,响应于从节点在线,而将编辑操作和已缓存的待同步操作同步到从节点。
[0041]本专利技术实时监控主数据库中操作日志,将其中增、删、改的操作通过该工具同步到从数据库中。该工具基于解析influxdb产生的二进制日志,通过日志时序序列号,保证数据的唯一,并支持备节点在离线后,将数据存储到sqlite中,并在备节点上线后将存储的数据同步到备节点上。
[0042]具体来说,本专利技术使用基于inview的influxdb主从同步工具,无需对influxdb源代本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据库主从节点的数据同步方法,其特征在于,包括执行以下步骤:在主节点上启用时序型数据库的输出日志功能并确定所述输出日志的格式;配置并启用时序型数据库的主从同步器来持续监听所述主节点的所述输出日志;从所述输出日志中解析出基于时序顺序的针对所述时序型数据库的所有编辑操作;响应于从节点离线,而将所述编辑操作作为待同步操作缓存到所述主节点的轻量数据库中;响应于所述从节点在线,而将所述编辑操作和已缓存的所述待同步操作同步到所述从节点。2.根据权利要求1所述的方法,其特征在于,所述输出日志中包括多个操作,每个操作均具有基于时序确定的序列号;从所述输出日志中解析出基于时序顺序的针对所述时序型数据库的所有编辑操作包括:基于每个操作的所述序列号确定所有所述编辑操作的时序顺序。3.根据权利要求2所述的方法,其特征在于,将所述编辑操作和已缓存的所述待同步操作同步到所述从节点包括:基于每个操作的所述序列号顺序依次将所述编辑操作和所述待同步操作中的每一个操作同步到所述从节点。4.根据权利要求1所述的方法,其特征在于,还包括:响应于所述主节点和所述从节点发生主从切换,而适应性地解析所述从节点的所述输出日志并将所述编辑操作同步到所述主节点。5.根据权利要求1所述的方法,其特征在于,所述编辑操作包括增加数据、删除数据、和修改数据。6.根据权利要求1所述的方法,其特征在于,还包括:在将所述待同步操作同步到所述从节点后,还删除所述轻量数据...

【专利技术属性】
技术研发人员:李永杰
申请(专利权)人:苏州浪潮智能科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1