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

技术编号:34768121 阅读:16 留言:0更新日期:2022-08-31 19:23
本申请实施例提供了一种数据同步方法、装置、电子设备及存储介质,该方法包括:获取第一数据库的目标日志文件中记录的多个目标操作语句;将所述多个目标操作语句分配至多个线程,多个所述线程并发执行,每个所述线程中包括至少一个目标操作语句,各所述线程中的目标操作语句不同;通过所述多个线程同时执行所述目标操作语句以更新第二数据库中的目标数据。目标操作语句以更新第二数据库中的目标数据。目标操作语句以更新第二数据库中的目标数据。

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


[0001]本申请涉及数据库
,尤其涉及一种数据同步方法、装置、电子设备及存储介质。

技术介绍

[0002]MySQL是一种关系型数据库,负责关系型数据的存储。对于MySQL关系型数据库而言,二进制日志(binary log,binlog)是MySQL最重要的日志,其记录了几乎所有的数据操纵语言(Data Manipulation Language,DML)语句和数据定义语言(Data Definition Language,DDL)语句。其中,DML语句以插入(INSERT)、修改(UPDATE)和删除(DELETE)三种指令为核心,负责操作数据库表,DDL语句负责操作数据库。
[0003]在一些场景下,binlog日志可以为不同数据库提供同步机制,从而保证主MySQL数据库和从MySQL数据库之间的数据的同步性,对于主MySQL数据库而言,主MySQL数据库的所有DML操作和DDL操作均会按时序记录到binlog日志中,如此,当主MySQL数据库的DML操作和DDL操作频繁时,binlog日志记录的数据量非常大,而binlog日志同步的模式为串行执行模式,按照binlog日志中DML操作和DDL操作的时序逐一的顺序同步到从数据库中,如此,数据同步效率较低,无法保证主数据库和从数据库之间数据同步的及时性,容易造成主数据库和从数据库的数据的不一致,导致主数据库和从数据库的稳定性较差。

技术实现思路

[0004]本申请实施例的目的是提供一种数据同步方法、装置、电子设备及存储介质,能够提高数据库之间的同步效率,保证主数据库和从数据库之间数据同步的及时性,进而提高数据库的稳定性。
[0005]为了解决上述技术问题,本申请实施例是这样实现的:
[0006]第一方面,本申请实施例提供了一种数据同步方法,包括:获取第一数据库的目标日志文件中记录的多个目标操作语句;将所述多个目标操作语句分配至多个线程,多个所述线程并发执行,每个所述线程中包括至少一个目标操作语句,各所述线程中的目标操作语句不同;通过所述多个线程同时执行所述目标操作语句以更新第二数据库中的目标数据。
[0007]第二方面,本申请实施例提供了一种数据同步装置,包括:获取模块,用于获取第一数据库的目标日志文件中记录的多个目标操作语句;分配模块,用于将所述多个目标操作语句分配至多个线程,多个所述线程并发执行,每个所述线程中包括至少一个目标操作语句,各所述线程中的目标操作语句不同;执行模块,用于通过所述多个线程同时执行所述目标操作语句以更新第二数据库中的目标数据。
[0008]第三方面,本申请实施例提供了一种电子设备,包括处理器、通信接口、存储器和通信总线;其中,所述处理器、所述通信接口以及所述存储器通过通信总线完成相互间的通信;所述存储器,用于存放计算机程序;所述处理器,用于执行所述存储器上所存放的程序,
实现如第一方面所提到的数据同步方法步骤。
[0009]第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,实现如第一方面所提到的数据同步方法步骤。
[0010]由以上本申请实施例提供的技术方案可见,通过获取第一数据库的目标日志文件中记录的多个目标操作语句;将所述多个目标操作语句分配至多个线程,多个所述线程并发执行,每个所述线程中包括至少一个目标操作语句,各所述线程中的目标操作语句不同;通过所述多个线程同时执行所述目标操作语句以更新第二数据库中的目标数据。能够采用多线程的方式同时执行所述目标操作语句以更新第二数据库中的目标数据,相比于串行执行方式,提高了数据同步效率,保证主数据库和从数据库之间数据同步的及时性,避免造成主数据库和从数据库的数据的不一致,提高了主数据库和从数据库的稳定性。
附图说明
[0011]为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0012]图1为本申请实施例提供的数据同步方法的第一种流程示意图;
[0013]图2为本申请实施例提供的数据同步方法的第二种流程示意图;
[0014]图3为本申请实施例提供的数据同步装置的一种模块组成示意图;
[0015]图4为本申请实施例提供的电子设备的结构示意图。
具体实施方式
[0016]本申请实施例提供了一种数据同步方法、装置、电子设备及存储介质,能够提高数据库之间的同步效率,保证主数据库和从数据库之间数据同步的及时性,进而提高数据库的稳定性。
[0017]为了使本
的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
[0018]示例性的,如图1所示,本申请实施例提供一种数据同步方法,该方法的执行主体可以为服务器,其中,该服务器可以是独立的服务器,也可以是由多个服务器组成的服务器集群,而且,该服务器可以是能够进行数据同步服务器,该数据同步方法具体可以包括以下步骤:
[0019]在步骤S101中,获取第一数据库的目标日志文件中记录的多个目标操作语句。
[0020]具体来讲,第一数据库可以为主MySQL数据库,目标日志文件可以为binlog日志文件。其中,可以对主MySQL数据库中的各个数据表中的数据进行DML操作,如插入操作、修改操作以及删除操作,对主MySQL数据库进行DDL操作,在对主MySQL数据库中的各个数据表中
的数据进行DML操作时,会相应的在binlog日志文件记录对主MySQL数据库的DML操作语句,DML操作语句包括但不限于插入操作语句、修改操作语句以及删除操作语句等,对主MySQL数据库进行DDL操作时,会相应的在binlog日志文件记录对主MySQL数据库的DDL操作语句。其中,目标操作语句包括但不限于上述的DML操作语句和DDL操作语句。
[0021]进一步,获取第一数据库的目标日志文件中记录的多个目标操作语句可以通过以下步骤获取:通过binlog解析器将binlog日志文件中的二进制文件解析成DML操作语句和DDL操作语句。
[0022]在步骤S103中,将多个目标操作语句分配至多个线程,多个线程并发执行,每个线程中包括至少一个目标操作语句,各线程中的目标语句不同。
[0023]具体来讲,在从binlog日志文件中获取到多个DML操作语句和DDL操作语句之后,可以将各个DML操作语句和DDL操作语句建立各自对应的线程,即一个操作语句对本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据同步方法,其特征在于,所述数据同步方法包括:获取第一数据库的目标日志文件中记录的多个目标操作语句;将所述多个目标操作语句分配至多个线程,多个所述线程并发执行,每个所述线程中包括至少一个目标操作语句,各所述线程中的目标操作语句不同;通过所述多个线程同时执行所述目标操作语句以更新第二数据库中的目标数据。2.根据权利要求1所述的数据同步方法,其特征在于,所述将所述多个目标操作语句分配至多个线程包括:根据所述多个目标操作语句之间的关联性将所述目标操作语句划分为第一集合和第二集合,所述目标操作语句包括第一目标操作语句和第二目标操作语句,所述第一目标操作语句划分至所述第一集合,所述第二目标操作语句划分至所述第二集合,所述第一集合中的所述第一目标操作语句之间不存在关联性,所述第二集合中的所述第二目标语句之间存在关联性;将所述第一集合中的所述第一目标操作语句分别分配到不同的线程中,一个线程对应一个所述第一目标操作语句;将所述第二集合中的所述第二目标操作语句分配到同一个队列中,所述同一个队列对应同一个线程,所述同一个队列中的第二目标操作语句通过所述同一个线程按顺序执行。3.根据权利要求2所述的数据同步方法,其特征在于,所述关联性通过所述目标操作语句之间的业务关联性确定,将存在所述业务关联性的目标操作语句划分至所述第二集合,将不存在所述业务关联性的目标操作语句划分至所述第一集合。4.根据权利要求1所述的数据同步方法,其特征在于,在所述将所述多个目标操作语句分配至多个线程之前,所述方法还包括:从多个所述目标操作语句中查找多个DML操作语句;根据所述DML操作语句的类型对所述多个DML操作语句中的至少两个DML操作语句进行合并;所述将所述多个目标操作语句分配至多个线程包括:将多个合并后的DML操作语句分配至多个线程;所述通过所述多个线程同时执行所述目标操作语句以更新第二数据库中的目标数据包括:通过所述多个线程同时执行所述多个合并后的DML操作语句以更新第二数据库中的目标数据。5.根据权利要求4所述的数据同步方法,其特征在于,所述DML操作语句的类型包括删除操作语句、插入操作语句和修改操作语句,所述根据所述DML操作语句的类型对所述多个DML操作语句中的至少两个DML操作语句进行合并包括:遍历所述DML操作语句;在前序为所述插入操作语句且后序为所述修改操作语句的情况下,合并为目标插入操作语句,所述插入操作语句中与所述修改操作语句对应的内容被修改,得到修改内容,所述目标插入操作语句中包括所述插入操作语句中...

【专利技术属性】
技术研发人员:钟声振张云关矛张杰余东辉胡兆政黄胜容黄恩胜闫宇许仁兴
申请(专利权)人:中国移动通信集团有限公司
类型:发明
国别省市:

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

1