CN110990365A - 一种数据同步方法、装置、服务器及存储介质 - Google Patents

一种数据同步方法、装置、服务器及存储介质 Download PDF

Info

Publication number
CN110990365A
CN110990365A CN201911221138.3A CN201911221138A CN110990365A CN 110990365 A CN110990365 A CN 110990365A CN 201911221138 A CN201911221138 A CN 201911221138A CN 110990365 A CN110990365 A CN 110990365A
Authority
CN
China
Prior art keywords
database
data processing
data
processing record
binary log
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201911221138.3A
Other languages
English (en)
Inventor
康林
段效晨
秦占明
赵艳杰
罗廷方
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing QIYI Century Science and Technology Co Ltd
Original Assignee
Beijing QIYI Century Science and Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing QIYI Century Science and Technology Co Ltd filed Critical Beijing QIYI Century Science and Technology Co Ltd
Priority to CN201911221138.3A priority Critical patent/CN110990365A/zh
Publication of CN110990365A publication Critical patent/CN110990365A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1805Append-only file systems, e.g. using logs or journals to store data
    • G06F16/1815Journaling file systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例涉及一种数据同步方法、装置、服务器及存储介质,所述方法包括:确定第一数据库以及第二数据库;获取所述第一数据库对应的二进制日志;提取所述二进制日志中的数据处理记录;根据所述数据处理记录,执行所述第一数据库与所述第二数据库之间的数据同步。如此基于二进制日志执行第一数据库与第二数据库之间的数据同步,无需依赖数据中间表,避免了新增列消耗的时间,提高了数据同步效率。

Description

一种数据同步方法、装置、服务器及存储介质
技术领域
本发明涉及数据同步技术领域,尤其涉及一种数据同步方法、装置、服务器及存储介质。
背景技术
MySQL是一种开放源代码的关系型数据库管理系统,MySQL数据库系统使用最常用的数据库管理语言-SQL(StructuredQueryLanguage,结构化查询语言)进行数据库管理。MySQL因为其速度、可靠性和适应性方面的优势而备受关注。随着数据的不断增多,单纯使用MySQL已经不能满足日常的数据查询需求,而使用ElasticSearch(文档型数据库)存储数据,可以很好的解决日常的数据查询需求。但是在进行数据异构存储后,随之而来的是数据同步的问题。
相关技术中,对于数据同步,通过建立数据中间表,将MySQL中数据导入数据中间表,获取数据中间表中的增量数据写入ElasticSearch,其中,数据中间表中数据量随着业务的发展越来越大。
当需要在ElasticSearch的索引中新增Mapping字段时,相应的也需要在数据中间表中新增列(数据中间表中每一列对应一个Mapping字段)。由于数据中间表中数据量较大,导致在数据中间表中新增列需要消耗较长的时间,影响了数据同步的效率。
发明内容
本发明实施例的目的在于提供一种数据同步方法、装置、服务器及存储介质,以实现无需依赖数据中间表、避免新增列消耗的时间、提高数据同步效率的有益效果。具体技术方案如下:
在本发明实施例的第一方面,首先提供了一种数据同步方法,所述方法包括:
确定第一数据库以及第二数据库;
获取所述第一数据库对应的二进制日志;
提取所述二进制日志中的数据处理记录;
根据所述数据处理记录,执行所述第一数据库与所述第二数据库之间的数据同步。
可选的,所述获取所述第一数据库对应的二进制日志,包括:
获取所述第一数据库对应的增量二进制日志。
可选的,所述提取所述二进制日志中的数据处理记录,包括:
按照预设的规则将所述二进制日志写入对应的分区中;
按照日志生成时刻,从所述分区中依序获取所述二进制日志;
提取获取的所述二进制日志中的数据处理记录。
可选的,所述按照预设的规则将所述二进制日志写入对应的分区中,包括:
确定所述二进制日志对应的主关键字;
利用预设的哈希算法计算所述主关键字对应的哈希值;
将所述二进制日志写入所述哈希值对应的分区中。
可选的,所述根据所述数据处理记录,执行所述第一数据库与所述第二数据库之间的数据同步,包括:
判断所述数据处理记录的长度是否超过预设长度阈值;
若所述数据处理记录的长度超过预设长度阈值,根据所述数据处理记录,执行所述第一数据库与所述第二数据库之间的数据同步。
可选的,所述方法还包括:
若所述数据处理记录的长度未超过预设长度阈值,缓存所述数据处理记录;
当缓存的所述数据处理记录的长度超过预设长度阈值时,根据缓存的所述数据处理记录,执行所述第一数据库与所述第二数据库之间的数据同步;
或者,
若所述数据处理记录的长度未超过预设长度阈值,缓存所述数据处理记录;
当经过预设时间间隔时,根据缓存的所述数据处理记录,执行所述第一数据库与所述第二数据库之间的数据同步。
可选的,所述方法还包括:
监测当时时刻是否达到预设时刻;
若当前时刻达到预设时刻,校验所述第一数据库的数据是否与所述第二数据库的数据一致。
在本发明实施例的第二方面,还提供了一种数据同步装置,所述装置包括:
数据库确定模块,用于确定第一数据库以及第二数据库;
日志获取模块,用于获取所述第一数据库对应的二进制日志;
日志提取模块,用于提取所述二进制日志中的数据处理记录;
同步执行模块,用于根据所述数据处理记录,执行所述第一数据库与所述第二数据库之间的数据同步。
在本发明实施例的第三方面,还提供了一种服务器,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现上述任一所述的数据同步方法。
在本发明实施例的第四方面,还提供了一种存储介质,所述存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述任一所述的数据同步方法。
在本发明实施例的第五方面,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一所述的数据同步方法。
本发明实施例提供的技术方案,通过获取第一数据库对应的二进制日志,提取二进制日志中的数据处理记录,基于二进制日志中的数据处理记录,执行第一数据库与第二数据库之间的数据同步。如此基于二进制日志执行第一数据库与第二数据库之间的数据同步,无需依赖数据中间表,避免了新增列消耗的时间,提高了数据同步效率。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种数据同步方法的实施流程示意图;
图2为本发明实施例提供的一种Kafka与MySQL、ElasticSearch的连接示意图;
图3为本发明实施例提供的另一种数据同步方法的实施流程示意图;
图4为本发明实施例提供的一种二进制日志写入分区的示意图;
图5为本发明实施例提供的一种从分区中获取二进制日志的示意图;
图6为本发明实施例提供的一种数据同步装置的结构示意图;
图7为本发明实施例提供的一种服务器的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明实施例中,为了解决相关技术中技术问题,提出了一种基于二进制日志(例如MySQL Binlog)执行第一数据库(例如MySQL)与第二数据库(例如ElasticSearch)之间的数据同步的发明思路。以MySQL为例,二进制日志是MySQL通过Replication协议用来做主从数据同步的数据,因此二进制日志存在需要写入ElasticSearch的数据,并符合对数据同步时效性的要求。
此外,基于MySQL Binlog执行第一数据库(MySQL)与第二数据库(ElasticSearch)之间的数据同步,业务可以专注于业务逻辑对MySQL的操作,而无需再关心向ElasticSearch同步的问题,减少了不必要的同步代码,无需依赖数据中间表,避免了新增列消耗的时间,提高了数据同步效率。
基于上述发明思路,本发明实施例引入Kafka,Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写。Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据。通过Kafka获取二进制日志(二进制日志属于机密内容,为了安全考虑不能直接获取),可以保证二进制日志的安全性。
如图1所示,为本发明实施例提供的一种数据同步方法的实施流程示意图,可以由Kafka执行以下方法步骤:
S101,确定第一数据库以及第二数据库;
随着数据的不断增多,单纯使用MySQL已经不能满足日常的数据查询需求,而使用ElasticSearch(文档型数据库)存储数据,可以很好的解决日常的数据查询需求。但是在进行数据异构存储后,随之而来的是数据同步的问题。
对于数据同步,意味着需要将MySQL中数据同步至ElasticSearch中。基于此,需要确定第一数据库以及第二数据库,第一数据库为源数据库,第二数据库为目标数据库,例如第一数据库可以是MySQL,第二数据库可以是ElasticSearch。
其中,在本发明实施例中,第一数据库以及第二数据库可以由用户指定,也可以根据数据库的主备关系确定第一数据库以及第二数据库,本发明实施例对此不作限定。
例如,本发明实施例接收数据库标识,根据数据库标识确定第一数据库MySQL,第二数据库ElasticSearch,如图2所示。
S102,获取所述第一数据库对应的二进制日志;
对于第一数据库中数据,由于可以进行处理操作(例如针对数据的增删改查),可以生成二进制日志(即Binlog)。由此可见该Binlog用于记录第一数据库中的数据处理操作(例如针对数据的增删改查),Binlog以二进制的形式存储于磁盘中。
在本发明实施例中,可以基于二进制日志执行第一数据库与第二数据库之间的数据同步,因此可以获取第一数据库对应的二进制日志,便于后续完成第一数据库与第二数据库之间的数据同步。
例如,第一数据库为MySQL,可以获取MySQL对应的Binlog-A、Binlog-B、Binlog-C、Binlog-D……。
S103,提取所述二进制日志中的数据处理记录;
对于二进制日志,用于记录第一数据库中的数据处理操作(例如针对数据的增删改查)。针对第一数据库对应的二进制日志,可以提取该二进制日志中的数据处理记录。
其中,对于二进制日志,一般都是以明文形式存在,可以直接提取该二进制日志中的数据处理记录。
例如,对于MySQL对应的Binlog-A、Binlog-B、Binlog-C、Binlog-D,可以提取该Binlog-A中的数据处理记录,可以提取该Binlog-B中的数据处理记录,可以提取该Binlog-C中的数据处理记录,可以提取该Binlog-D中的数据处理记录,如此可以得到多个数据处理记录。
需要说明的是,对于MySQL对应的Binlog-A、Binlog-B、Binlog-C、Binlog-D,可以同步提取Binlog-A中的数据处理记录、Binlog-B中的数据处理记录、Binlog-C中的数据处理记录、Binlog-D中的数据处理记录,也可以异步提取Binlog-A中的数据处理记录、Binlog-B中的数据处理记录、Binlog-C中的数据处理记录、Binlog-D中的数据处理记录,本发明实施例对此不作限定。
S104,根据所述数据处理记录,执行所述第一数据库与所述第二数据库之间的数据同步。
对于二进制日志中的数据处理记录,可以根据该数据处理记录,执行第一数据库与第二数据库之间的数据同步。
例如,对于第一数据库为MySQL,第二数据库为ElasticSearch,由于修改操作触发,对于MySQL中数据“1”,修改为“2”,相应的MySQL会生成一条Binlog,提取该Binlog中的数据处理记录,根据该Binlog中的数据处理记录,执行MySQL与ElasticSearch之间的数据同步,可以使ElasticSearch中数据“1”,修改为“2”。
通过上述对本发明实施例提供的技术方案的描述,本发明实施例通过获取第一数据库对应的二进制日志,提取二进制日志中的数据处理记录,基于二进制日志中的数据处理记录,执行第一数据库与第二数据库之间的数据同步。如此基于二进制日志执行第一数据库与第二数据库之间的数据同步,无需依赖数据中间表,避免了新增列消耗的时间,提高了数据同步效率。
如图3所示,为本发明实施例提供的另一种数据同步方法的实施流程示意图,可以由Kafka执行以下方法步骤:
S301,确定第一数据库以及第二数据库;
在本发明实施例中,本步骤与上述步骤S101类似,本发明实施例在此不再一一赘述。
S302,获取所述第一数据库对应的增量二进制日志;
对于第一数据库中数据,由于可以进行处理操作(例如针对数据的增删改查),可以生成二进制日志(即Binlog)。由此可见该Binlog用于记录第一数据库中的数据处理操作(例如针对数据的增删改查),Binlog以二进制的形式存储于磁盘中。
在本发明实施例中,可以获取第一数据库对应的增量二进制日志。其中,对于增量二进制日志,并非是全量二进制日志,属于一段时间内新增的二进制日志。
例如,对于第一数据库对应的二进制日志:Binlog-A、Binlog-B、Binlog-C、Binlog-D……,上次获取至Binlog-A、Binlog-B、Binlog-C、Binlog-D,则可以确定Binlog-D之后的二进制日志为增量二进制日志,可以获取第一数据库对应的Binlog-D之后的二进制日志。
另外,在本发明实施例中,如果第一数据库对应的增量二进制日志数量较多,可以分批次获取第一数据库对应的增量二进制日志,本发明实施例对此不作限定。
例如,对于MySQL对应的Binlog,存在100个Binlog,第50至第100个Binlog即为增量Binlog,意味着增量Binlog的数量较多,对于这部分增量Binlog,可以分成5次,分批次获取,减小MySQL的读压力。当然对于这部分增量Binlog,本发明实施例还可以一次性获取。
S303,按照预设的规则将所述二进制日志写入对应的分区中;
在本发明实施例中,通过Kafka获取第一数据库的增量二进制日志,需要保证日志的顺序性。严格意义上讲,Kafka是无法保证全局有序的,只能局部有序。
但是在Kafka中,每个Partition(分区)是有序的,为了保证日志的顺序性,按照预设的规则将增量二进制日志写入对应的分区中。其中,将增量二进制日志写入对应的分区的可选实施方式如下:
确定增量二进制日志对应的主关键字,利用预设的哈希算法计算主关键字对应的哈希值,将增量二进制日志写入哈希值对应的分区中。
例如,如图4所示,对于任意一条Binlog,存在Primary Key(主关键字,简称PK),针对任一Binlog,基于该Binlog的Primary Key,计算Primary Key对应的哈希值,将该Binlog写入至对应的分区中(Partition0、Partition1)。
需要说明的是,对于哈希算法本发明实施例不作限定,可以是当前任意哈希算法。
S304,按照日志生成时刻,从所述分区中依序获取所述二进制日志;
对于各个分区,按照日志生成时刻,从分区中依序获取增量二进制日志,如此保证日志的顺序性,以及在数据同步过程中的顺序性。
例如,如图5所示,对于Partition0中增量二进制日志以及Partition1中增量二进制日志,可以按照日志生成时刻,从Partition0、Partition1中分别获取增量Binlog,可以形成有序的增量Binlog队列。
S305,提取获取的所述二进制日志中的数据处理记录;
对于从分区中获取的增量二进制日志,可以提取该二进制日志中的数据处理记录。
例如,对于Partition0中增量二进制日志、Partition1中增量二进制日志,从Partition0、Partition1中分别获取增量Binlog,可以形成有序的增量Binlog队列,可以依序提取增量Binlog队列中的Binlog的数据处理记录。
S306,根据所述数据处理记录,执行所述第一数据库与所述第二数据库之间的数据同步。
对于二进制日志中的数据处理记录,可以根据该数据处理记录,执行第一数据库与第二数据库之间的数据同步。
例如,对于MySQL中数据“1”,修改为“2”,相应的MySQL会生成一条Binlog,根据该Binlog中数据处理记录,执行MySQL与ElasticSearch之间的数据同步,可以使ElasticSearch中数据“1”,修改为“2”。
其中,在本发明实施例中,考虑到第一数据库频繁处理数据时对第二数据库的写入压力,可以判断数据处理记录的长度是否超过预设长度阈值,如果数据处理记录的长度超过预设长度阈值,根据数据处理记录,执行第一数据库与第二数据库之间的数据同步。
如果数据处理记录的长度未超过预设长度阈值,则可以缓存数据处理记录。当缓存的数据处理记录的长度超过预设长度阈值时,可以根据缓存的数据处理记录,执行第一数据库与第二数据库之间的数据同步。
例如,如果数据处理记录的长度未超过预设长度阈值,可以将数据处理记录暂时存储至一个slice中,当缓存的数据处理记录的长度超过预设长度阈值时,根据缓存的数据处理记录,执行MySQL与ElasticSearch之间的数据同步。
或者,如果数据处理记录的长度未超过预设长度阈值,则可以缓存数据处理记录。当经过预设时间间隔时,根据缓存的数据处理记录,执行第一数据库与第二数据库之间的数据同步。
例如,如果数据处理记录的长度未超过预设长度阈值,可以将数据处理记录暂时存储至一个slice中,每间隔200ms,根据缓存的数据处理记录,执行MySQL与ElasticSearch之间的数据同步。
另外,为了保证数据同步的完整性,监测当时时刻是否达到预设时刻,若当前时刻达到预设时刻,校验第一数据库的数据是否与第二数据库的数据一致。
例如,监测当前时刻是否达到12:00,如果当前时刻达到12:00,校验MySQL的数据与ElasticSearch之间的数据是否一致,具体可以校验如下几方面:数据量是否一致,数据的主关键字是否一致等。
如果第一数据库的数据与第二数据库的数据一致,则表示第一数据库与第二数据库之间的数据同步完整,并无遗失任何Binlog。如果第一数据库的数据与第二数据库的数据不一致,则表示第一数据库与第二数据库之间的数据同步不完整,遗失了相关Binlog,后续可以通过人工的方式进行处理。
再者,在本发明实施例中引入了Kafka,在基于二进制日志中的数据处理记录,执行第一数据库与第二数据库之间的数据同步的过程中,当根据一条数据处理记录,成功执行第一数据库与第二数据库之间的数据同步之后,利用Kafka的Offset机制,Commit该条数据处理记录的Offset,这样可以进一步保证数据同步的完整性。
例如,在基于二进制日志中的数据处理记录,执行MySQL与ElasticSearch之间的数据同步的过程中,当根据数据处理记录(对于MySQL中数据“1”,修改为“2”),成功执行MySQL与ElasticSearch之间的数据同步之后,利用Kafka的Offset机制,Commit该条数据处理记录的Offset。
与上述方法实施例相对应,本发明实施例还提供了一种数据同步装置,如图6所示,该装置具体可以包括:数据库确定模块610、日志获取模块620、日志提取模块630、同步执行模块640。
数据库确定模块610,用于确定第一数据库以及第二数据库;
日志获取模块620,用于获取所述第一数据库对应的二进制日志;
日志提取模块630,用于提取所述二进制日志中的数据处理记录;
同步执行模块640,用于根据所述数据处理记录,执行所述第一数据库与所述第二数据库之间的数据同步。
本发明实施例还提供了了一种服务器,如图7所示,包括处理器71、通信接口72、存储器73和通信总线74,其中,处理器71,通信接口72,存储器73通过通信总线74完成相互间的通信,
存储器73,用于存放计算机程序;
处理器71,用于执行存储器73上所存放的程序时,实现如下步骤:
确定第一数据库以及第二数据库;
获取所述第一数据库对应的二进制日志;
提取所述二进制日志中的数据处理记录;
根据所述数据处理记录,执行所述第一数据库与所述第二数据库之间的数据同步。
上述服务器提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,简称PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,简称EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述服务器与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种存储介质,该存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的数据同步方法。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的数据同步方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在存储介质中,或者从一个存储介质向另一个存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (10)

1.一种数据同步方法,其特征在于,所述方法包括:
确定第一数据库以及第二数据库;
获取所述第一数据库对应的二进制日志;
提取所述二进制日志中的数据处理记录;
根据所述数据处理记录,执行所述第一数据库与所述第二数据库之间的数据同步。
2.根据权利要求1所述的方法,其特征在于,所述获取所述第一数据库对应的二进制日志,包括:
获取所述第一数据库对应的增量二进制日志。
3.根据权利要求1所述的方法,其特征在于,所述提取所述二进制日志中的数据处理记录,包括:
按照预设的规则将所述二进制日志写入对应的分区中;
按照日志生成时刻,从所述分区中依序获取所述二进制日志;
提取获取的所述二进制日志中的数据处理记录。
4.根据权利要求3所述的方法,其特征在于,所述按照预设的规则将所述二进制日志写入对应的分区中,包括:
确定所述二进制日志对应的主关键字;
利用预设的哈希算法计算所述主关键字对应的哈希值;
将所述二进制日志写入所述哈希值对应的分区中。
5.根据权利要求1所述的方法,其特征在于,所述根据所述数据处理记录,执行所述第一数据库与所述第二数据库之间的数据同步,包括:
判断所述数据处理记录的长度是否超过预设长度阈值;
若所述数据处理记录的长度超过预设长度阈值,根据所述数据处理记录,执行所述第一数据库与所述第二数据库之间的数据同步。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
若所述数据处理记录的长度未超过预设长度阈值,缓存所述数据处理记录;
当缓存的所述数据处理记录的长度超过预设长度阈值时,根据缓存的所述数据处理记录,执行所述第一数据库与所述第二数据库之间的数据同步;
或者,
若所述数据处理记录的长度未超过预设长度阈值,缓存所述数据处理记录;
当经过预设时间间隔时,根据缓存的所述数据处理记录,执行所述第一数据库与所述第二数据库之间的数据同步。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
监测当时时刻是否达到预设时刻;
若当前时刻达到预设时刻,校验所述第一数据库的数据是否与所述第二数据库的数据一致。
8.一种数据同步装置,其特征在于,所述装置包括:
数据库确定模块,用于确定第一数据库以及第二数据库;
日志获取模块,用于获取所述第一数据库对应的二进制日志;
日志提取模块,用于提取所述二进制日志中的数据处理记录;
同步执行模块,用于根据所述数据处理记录,执行所述第一数据库与所述第二数据库之间的数据同步。
9.一种服务器,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-7任一所述的方法步骤。
10.一种存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7中任一所述的方法。
CN201911221138.3A 2019-12-03 2019-12-03 一种数据同步方法、装置、服务器及存储介质 Pending CN110990365A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911221138.3A CN110990365A (zh) 2019-12-03 2019-12-03 一种数据同步方法、装置、服务器及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911221138.3A CN110990365A (zh) 2019-12-03 2019-12-03 一种数据同步方法、装置、服务器及存储介质

Publications (1)

Publication Number Publication Date
CN110990365A true CN110990365A (zh) 2020-04-10

Family

ID=70089757

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911221138.3A Pending CN110990365A (zh) 2019-12-03 2019-12-03 一种数据同步方法、装置、服务器及存储介质

Country Status (1)

Country Link
CN (1) CN110990365A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111831754A (zh) * 2020-07-20 2020-10-27 中国工商银行股份有限公司 数据库中数据的复制方法、装置、系统和介质
CN112507027A (zh) * 2020-12-16 2021-03-16 平安科技(深圳)有限公司 基于Kafka的增量数据同步方法、装置、设备及介质
CN112765276A (zh) * 2021-01-27 2021-05-07 云账户技术(天津)有限公司 一种增量数据同步方法及装置
CN113779048A (zh) * 2020-06-18 2021-12-10 北京沃东天骏信息技术有限公司 一种数据处理方法和装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104951474A (zh) * 2014-03-31 2015-09-30 阿里巴巴集团控股有限公司 一种用于获取MySQL binlog增量日志的方法和装置
KR20180055952A (ko) * 2016-11-16 2018-05-28 주식회사 실크로드소프트 데이터베이스 관리 시스템에서의 데이터 복제 기법
CN108170768A (zh) * 2017-12-25 2018-06-15 腾讯科技(深圳)有限公司 数据库同步方法、装置及可读介质
CN108399256A (zh) * 2018-03-06 2018-08-14 北京慧萌信安软件技术有限公司 异构数据库内容同步方法、装置及中间件
CN109739931A (zh) * 2018-12-21 2019-05-10 浪潮软件股份有限公司 一种基于CMSP的MySQLBinlog日志解析的增量同步方法
CN110275893A (zh) * 2019-06-11 2019-09-24 上海上湖信息技术有限公司 一种数据操作方法及装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104951474A (zh) * 2014-03-31 2015-09-30 阿里巴巴集团控股有限公司 一种用于获取MySQL binlog增量日志的方法和装置
KR20180055952A (ko) * 2016-11-16 2018-05-28 주식회사 실크로드소프트 데이터베이스 관리 시스템에서의 데이터 복제 기법
CN108170768A (zh) * 2017-12-25 2018-06-15 腾讯科技(深圳)有限公司 数据库同步方法、装置及可读介质
CN108399256A (zh) * 2018-03-06 2018-08-14 北京慧萌信安软件技术有限公司 异构数据库内容同步方法、装置及中间件
CN109739931A (zh) * 2018-12-21 2019-05-10 浪潮软件股份有限公司 一种基于CMSP的MySQLBinlog日志解析的增量同步方法
CN110275893A (zh) * 2019-06-11 2019-09-24 上海上湖信息技术有限公司 一种数据操作方法及装置

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113779048A (zh) * 2020-06-18 2021-12-10 北京沃东天骏信息技术有限公司 一种数据处理方法和装置
CN111831754A (zh) * 2020-07-20 2020-10-27 中国工商银行股份有限公司 数据库中数据的复制方法、装置、系统和介质
CN111831754B (zh) * 2020-07-20 2024-02-27 中国工商银行股份有限公司 数据库中数据的复制方法、装置、系统和介质
CN112507027A (zh) * 2020-12-16 2021-03-16 平安科技(深圳)有限公司 基于Kafka的增量数据同步方法、装置、设备及介质
WO2022126974A1 (zh) * 2020-12-16 2022-06-23 平安科技(深圳)有限公司 基于Kafka的增量数据同步方法、装置、设备及介质
CN112507027B (zh) * 2020-12-16 2024-04-16 平安科技(深圳)有限公司 基于Kafka的增量数据同步方法、装置、设备及介质
CN112765276A (zh) * 2021-01-27 2021-05-07 云账户技术(天津)有限公司 一种增量数据同步方法及装置

Similar Documents

Publication Publication Date Title
CN110990365A (zh) 一种数据同步方法、装置、服务器及存储介质
WO2017071189A1 (zh) 网页的访问方法、装置、设备及非易失性计算机存储介质
CN109471851B (zh) 数据处理方法、装置、服务器和存储介质
CN112162965B (zh) 一种日志数据处理的方法、装置、计算机设备及存储介质
US11176110B2 (en) Data updating method and device for a distributed database system
US9355250B2 (en) Method and system for rapidly scanning files
CN111881011A (zh) 日志管理方法、平台、服务器及存储介质
CN110569214A (zh) 用于日志文件的索引构建方法、装置及电子设备
CN109450969B (zh) 从第三方数据源服务器中获取数据的方法、装置和服务器
CN111046036A (zh) 数据同步方法、装置、系统及存储介质
WO2019076014A1 (zh) 网页生成方法、装置、终端设备及介质
CN110618999A (zh) 数据的查询方法及装置、计算机存储介质、电子设备
WO2017107679A1 (zh) 一种历史信息展示方法及装置
CN112347192A (zh) 数据同步方法、装置、平台以及可读介质
CN110781197B (zh) 一种hive离线同步校验方法、装置及电子设备
CN112835885A (zh) 一种分布式表格存储的处理方法、装置及系统
CN114153703A (zh) 微服务的异常定位方法、装置、电子设备和程序产品
CN112463533A (zh) 日志数据解析方法、装置、电子装置和存储介质
CN111078418B (zh) 操作同步方法、装置、电子设备及计算机可读存储介质
CN112988776B (zh) 文本解析规则的更新方法、装置、设备及可读存储介质
CN112416875B (zh) 日志管理方法、装置、计算机设备及存储介质
CN114968725A (zh) 任务依赖关系校正方法、装置、计算机设备及存储介质
CN111782721B (zh) 一种数据同步方法、装置、电子设备及存储介质
CN110515803B (zh) 针对日志消息的处理方法、装置以及电子设备
CN113760568A (zh) 数据处理的方法和装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination