数据库同步方法、装置、电子设备和存储介质制造方法及图纸

技术编号:33421559 阅读:7 留言:0更新日期:2022-05-19 00:13
本公开涉及互联网技术领域,提供一种数据库同步方法、装置、电子设备和存储介质。数据库同步方法包括:启动同步任务,将所述同步任务的配置数据储存至中间件;根据所述同步任务的配置数据自源数据库采集数据;将所采集的数据发送至消息队列;由数据消费线程自所述消息队列上消费所采集的数据,其中,所述数据消费线程根据所述中间件的所述同步任务的配置数据生成;以及根据所采集的数据同步至目标数据库。本公开通过同步任务的配置自源数据库至目的数据库的数据同步,实现跨网络环境及跨区域特性的适应以及定制化的数据同步操作。特性的适应以及定制化的数据同步操作。特性的适应以及定制化的数据同步操作。

【技术实现步骤摘要】
数据库同步方法、装置、电子设备和存储介质


[0001]本公开涉及互联网
,具体地说,涉及一种数据库同步方法、装置、电子设备和存储介质。

技术介绍

[0002]在诸如电商采购系统的各类管理系统中,数据存储是基于多用户逻辑隔离的,即在数据库中通过使用不同的用户编码来区分数据的归属用户。在该种数据隔离的设计下,部分客户为保证数据的安全性,需要将客户所属用户编码的数据同步至客户方的数据中保存,以便于开发仅属于该客户的定制功能。由此,目前存在将多租户数据库中某个用户的数据同步至客户机房的自建数据库或客户指定的云数据库内,也可用于异步数据的备份的需求。针对以上两种场景,可以使用如下方案进行数据同步:1)用户数据同步:利用mysql(关系型数据库管理系统)搭建主从机制,进行数据同步;2)异地灾备:定时使用mysql命令导出导入数据。
[0003]然而,上述方案将存在如下缺陷:1)用户数据同步无法保证跨网络环境及跨区域特性。例如,源库多用户数据机房在北京,客户自建数据库机房在上海,由于主从机制的特性,无法进行跨网络环境和异地的数据传输;2)无法实现针对某一用户或部分表的定制化同步。例如,无法实现针对某个用户下的商品数据同步,订单数据不同步的定制化操作。
[0004]需要说明的是,上述
技术介绍
部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。

技术实现思路

[0005]有鉴于此,本公开提供一种数据库同步方法、装置、电子设备和存储介质,通过同步任务的配置自源数据库至目的数据库的数据同步,实现跨网络环境及跨区域特性的适应以及定制化的数据同步操作。
[0006]本公开的一个方面提供一种数据库同步方法,包括:任务启动步骤:启动同步任务,将所述同步任务的配置数据储存至中间件;数据采集步骤:根据所述同步任务的配置数据自源数据库采集数据;数据发送步骤:将所采集的数据发送至消息队列;数据消费步骤:由数据消费线程自所述消息队列上消费所采集的数据,其中,所述数据消费线程根据所述中间件的所述同步任务的配置数据生成;以及同步步骤:根据所采集的数据同步至目标数据库。
[0007]在一些实施例中,所述同步任务为结构迁移任务时,所述任务启动步骤为结构迁移任务启动步骤,包括:判断自所述源数据库至所述目标数据库,是否首次执行所述结构迁移任务;若是,则生成库结构同步任务以及至少一表结构同步任务;若否,则生成至少一表结构同步任务,其中,所述库结构同步任务供所述数据采集步骤自源数据库采集库创建语句,并将采集的库创建语句中的源数据库名替换为目标数据库名;一个表结构同步任务关联源数据库中的一个表,所述表结构同步任务供所述数据采集步骤自源数据库采集表创建
语句,并将采集的库创建语句中的源数据库的表名替换为目标数据库的表名。
[0008]在一些实施例中,所述同步任务为全量迁移任务时,所述任务启动步骤包括:判断自所述源数据库至所述目标数据库,是否首次执行所述全量迁移任务;若是,则执行所述结构迁移任务启动步骤,并生成至少一表数据同步任务;若否,则获取所生成的表数据同步任务和/或生成新的表数据同步任务,其中,一个表数据同步任务关联源数据库的一个表,所述表数据同步任务供所述数据采集步骤自源数据库采集关联表的数据。
[0009]在一些实施例中,所述表结构同步任务和/或所述表结构数据任务为多个时,所述数据消费步骤由多个数据消费线程自所述消息队列上消费所采集的数据。
[0010]在一些实施例中,所述同步任务为增量迁移任务时,所述数据采集步骤自所述源数据库采集待同步的二进制日志,所述数据发送步骤将所述待同步的二进制日志的按时间发生顺序发送至所述消息队列,所述数据消费步骤将依次自所述消息队列消费的所述待同步的二进制日志转换为数据库执行语句,以供所述同步步骤在所述目标数据库执行。
[0011]在一些实施例中,所述任务启动步骤之后,且所述数据采集步骤之前还包括:监听所述中间件储存的同步任务的配置数据;响应于所述中间件储存的同步任务的配置数据的变更触发所述数据采集步骤的执行。
[0012]在一些实施例中,所述数据采集步骤之后,且所述数据发送步骤之前还包括:按事件类型过滤和/或组装所采集的二进制日志。
[0013]本公开的另一个方面提供一种数据库同步装置,包括:任务启动模块,配置成启动同步任务,将所述同步任务的配置数据储存至中间件;数据采集模块:配置成根据所述同步任务的配置数据自源数据库采集数据;数据发送模块:配置成将所采集的数据发送至消息队列;数据消费模块:配置成由数据消费线程自所述消息队列上消费所采集的数据,其中,所述数据消费线程根据所述中间件的所述同步任务的配置数据生成;以及同步模块:配置成根据所采集的数据同步至目标数据库。
[0014]本公开的又一个方面提供一种电子设备,包括:处理器;存储器,所述存储器中存储有可执行指令;其中,所述可执行指令被所述处理器执行时,实现上述任意实施例所述的数据库同步方法。
[0015]本公开的又一个方面提供一种计算机可读的存储介质,用于存储程序,其特征在于,所述程序被执行时实现上述任意实施例所述的数据库同步方法。
[0016]本公开与现有技术相比的有益效果至少包括:
[0017]本公开通过将同步任务的配置数据储存至中间件以供进行数据采集以及数据消费线程的生成,由此,可以通过配置数据的设置和修改以实现定制化的数据同步操作;
[0018]本公开通过将同步任务的配置数据储存至中间件以供进行数据采集后,将采集的输出传输至消息队列,以供数据消费线程消费,从而同步至目标数据库中,由此,实现从源数据库同步数据至目标数据库实现跨网络环境及跨区域特性的适应。
[0019]应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
[0020]此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施
例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0021]图1示出本公开实施例中数据库同步方法的步骤示意图;
[0022]图2示出本公开实施例中同步任务为结构迁移任务的同步流程图;
[0023]图3示出本公开实施例中同步任务为全量迁移任务的同步流程图;
[0024]图4示出本公开实施例中同步任务为增量迁移任务的同步流程图;
[0025]图5示出本公开实施例中数据库同步装置的模块示意图;
[0026]图6示出本公开实施例中电子设备的结构示意图;以及
[0027]图7示出本公开实施例中计算机可读的存储介质的结构示意图。
具体实施方式
[0028]现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据库同步方法,其特征在于,包括:任务启动步骤:启动同步任务,将所述同步任务的配置数据储存至中间件;数据采集步骤:根据所述同步任务的配置数据自源数据库采集数据;数据发送步骤:将所采集的数据发送至消息队列;数据消费步骤:由数据消费线程自所述消息队列上消费所采集的数据,其中,所述数据消费线程根据所述中间件的所述同步任务的配置数据生成;以及同步步骤:根据所采集的数据同步至目标数据库。2.如权利要求1所述的数据库同步方法,其特征在于,所述同步任务为结构迁移任务时,所述任务启动步骤为结构迁移任务启动步骤,包括:判断自所述源数据库至所述目标数据库,是否首次执行所述结构迁移任务;若是,则生成库结构同步任务以及至少一表结构同步任务;若否,则生成至少一表结构同步任务,其中,所述库结构同步任务供所述数据采集步骤自源数据库采集库创建语句,并将采集的库创建语句中的源数据库名替换为目标数据库名;所述表结构同步任务供所述数据采集步骤自源数据库采集表创建语句,并将采集的库创建语句中的源数据库的表名替换为目标数据库的表名。3.如权利要求2所述的数据库同步方法,其特征在于,所述同步任务为全量迁移任务时,所述任务启动步骤包括:判断自所述源数据库至所述目标数据库,是否首次执行所述全量迁移任务;若是,则执行所述结构迁移任务启动步骤,并生成至少一表数据同步任务;若否,则获取所生成的表数据同步任务和/或生成新的表数据同步任务,其中,一个表数据同步任务关联源数据库的一个表,所述表数据同步任务供所述数据采集步骤自源数据库采集关联表的数据。4.如权利要求3所述的数据库同步方法,其特征在于,所述表结构同步任务和/或所述表结构数据任务为多个时,所述数据消费步骤由多个数据消费线程自所述...

【专利技术属性】
技术研发人员:李来恩
申请(专利权)人:北京电解智科技有限公司
类型:发明
国别省市:

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

1