CN111694800B - 一种提升数据同步性能的方法和数据同步系统 - Google Patents

一种提升数据同步性能的方法和数据同步系统 Download PDF

Info

Publication number
CN111694800B
CN111694800B CN202010361317.3A CN202010361317A CN111694800B CN 111694800 B CN111694800 B CN 111694800B CN 202010361317 A CN202010361317 A CN 202010361317A CN 111694800 B CN111694800 B CN 111694800B
Authority
CN
China
Prior art keywords
log
incremental
data
synchronized
data message
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.)
Active
Application number
CN202010361317.3A
Other languages
English (en)
Other versions
CN111694800A (zh
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.)
Wuhan Dream Database Co ltd
Original Assignee
Wuhan Dream Database 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 Wuhan Dream Database Co ltd filed Critical Wuhan Dream Database Co ltd
Priority to CN202010361317.3A priority Critical patent/CN111694800B/zh
Publication of CN111694800A publication Critical patent/CN111694800A/zh
Application granted granted Critical
Publication of CN111694800B publication Critical patent/CN111694800B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/17Details of further file system functions
    • G06F16/1734Details of monitoring file system events, e.g. by the use of hooks, filter drivers, logs
    • 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/17Details of further file system functions
    • G06F16/172Caching, prefetching or hoarding of files
    • 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/17Details of further file system functions
    • G06F16/178Techniques for file synchronisation in file systems
    • 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

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

本发明公开了一种提升数据同步性能的方法和数据同步系统,该方法包括:从源端数据库获取多条增量日志,并对第一条增量日志进行解析得到第一日志序列号;将多条增量日志和第一日志序列号按照第一处理方式进行处理,得到预设格式的数据消息,将数据消息发送至中间缓存库;根据最小日志序列号LSN0从中间缓存库获取待同步的数据消息,其中,待同步的数据消息的第一日志序列号不小于最小日志序列号LSN0;将待同步的数据消息按照第二处理方式进行处理,得到多条待同步的增量日志,将待同步的增量日志转发至各个目标端数据库。本发明的方法可以保证源端数据库和目标端数据库在同一时刻数据是一致的,同时对资源损耗缩减至最小。

Description

一种提升数据同步性能的方法和数据同步系统
技术领域
本发明属于数据同步技术领域,更具体地,涉及一种提升数据同步性能的方法和数据同步系统。
背景技术
随着当今企业的业务迅速发展,数据访问需求量增长迅速,单一的数据库越来越无法适应跨区域的业务协作,数据在各区域的互通已成为一种常态。为确保企业业务的正常运转,某一区域数据库与其他各区域的目标数据库之间就需要实现数据同步,保证数据的完整性、一致性及实时性。由此,这种一区域到多区域的数据同步,往往会被部署成一对多的方式,来进行一区域到多区域的数据实时互通。
传统的一对多数据同步方案有两种,第一种:在某一区域数据库服务器安装多个捕获进程或线程,利用通讯方式传输给其他多个区域数据库服务器,然而由于多个捕获进程或线程的安装,会自然的抢占大量的数据库服务器的读取IO资源;第二种:基于中间缓存文件的方式,来进行1对多的数据同步。该方法能够解决上述第一种方法的多个捕获代理的IO消耗,但这种方法由于需要一个IO性能强大的缓存服务器,同时,目标区域会下载缓存数据,从而占用目标端数据库的磁盘IO资源,更重要的是,该种落地文件方式对数据的实时性无法保证,性能甚至不如第一种。
如何提高同步的实时性,大幅度减少一对多同步时,对源端数据库及目标数据库性能的影响就成为业界亟待解决的技术问题。
鉴于此,克服该现有技术产品所存在的不足是本技术领域亟待解决的问题。
发明内容
针对现有技术的以上缺陷或改进需求,本发明提供了一种提升数据同步性能的方法和数据同步系统,该方法基于数据库的重做日志仅进行初步解析及简单分析,就发往中间缓存库,由于仅仅做了简单的数据头解析,对源端数据库的计算能力和IO资源,影响极小。而且,对增量日志进行了处理,将多条增量日志整合为一条数据消息,可以节省带宽和存储空间。
为实现上述目的,按照本发明的一个方面,提供了一种提升数据同步性能的方法,所述方法包括:
从源端数据库获取多条增量日志,并对第一条增量日志进行解析得到第一日志序列号,其中,所述第一条增量日志指的是多条所述增量日志中最先发生的增量日志;
将多条所述增量日志和所述第一日志序列号按照第一处理方式进行处理,得到预设格式的数据消息,将所述数据消息发送至中间缓存库;
根据最小日志序列号LSN0从所述中间缓存库获取待同步的数据消息,其中,所述待同步的数据消息的第一日志序列号不小于所述最小日志序列号LSN0;
将所述待同步的数据消息按照第二处理方式进行处理,得到多条待同步的增量日志,将所述待同步的增量日志转发至各个目标端数据库。
优选地,所述将多条所述增量日志和所述第一日志序列号按照第一处理方式进行处理,得到预设格式的数据消息包括:
获取每条所述增量日志的长度,依次将每条所述增量日志以及每条所述增量日志的长度共同存储于预设的内存中,得到合并后的数据;
将所述合并后的数据进行压缩,得到压缩后的数据;
将所述第一日志序列号追加至所述压缩后的数据中,得到预设格式的数据消息。
优选地,将所述待同步的数据消息按照第二处理方式进行处理,得到多条待同步的增量日志包括:
对所述待同步的数据消息进行解压缩,得到合并后的数据;
获取每条增量日志的长度,根据每条增量日志的长度将合并后的数据分割为单条的增量日志,从而得到多条待同步的增量日志。
优选地,将所述合并后的数据进行压缩,得到压缩后的数据包括:
采用MD5压缩算法对所述合并后的数据进行压缩,得到压缩后的数据。
优选地,所述方法还包括:
当增量日志为提交日志时,获取所述提交日志的提交日志序列号,将所述提交日志序列号添加至所述数据消息中;
向所述中间缓存库发送提交消息,以使所述中间缓存库根据所述提交日志序列号,提交相应的增量日志。
优选地,所述中间缓存库创建有缓存表,所述方法还包括:
将所述数据消息存储至所述中间缓存库的缓存表中;
获取所述数据消息所占用空间的片号,根据所述数据消息的第一日志序列号和相应的片号构建索引标识。
优选地,根据所述最小日志序列号LSN0从所述中间缓存库获取待同步的数据消息包括:
查询所述缓存表的索引标识,确定第一日志序列号不小于所述最小日志序列号LSN0的待同步的数据消息;
根据所述索引标识中的片号进行数据提取,获取所述待同步的数据消息。
优选地,所述方法还包括:
获取已经同步于各个目标端数据库的增量日志的最小日志序列号LSN1;
根据所述最小日志序列号LSN1清理所述中间缓存库。
优选地,所述获取已经同步于各个目标端数据库的增量日志的最小日志序列号LSN1包括:
获取各个目标端数据库所反馈的执行完成的最小日志序列号;
比较各个最小日志序列号,将取值最小的日志序列号标记为最小日志序列号LSN1;
清理所述中间缓存库中第一日志序列号小于所述最小日志序列号LSN1的数据消息。
为实现上述目的,按照本发明的另一个方面,提供了一种数据同步系统,所述数据同步系统包括至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被程序设置为执行本发明所述的方法。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有如下有益效果:本发明提供一种提升数据同步性能的方法和数据同步系统,该方法包括:从源端数据库获取多条增量日志,并对第一条增量日志进行解析得到第一日志序列号,其中,第一条增量日志指的是多条增量日志中最先发生的增量日志;将多条增量日志和第一日志序列号按照第一处理方式进行处理,得到预设格式的数据消息,将数据消息发送至中间缓存库;根据最小日志序列号LSN0从中间缓存库获取待同步的数据消息,其中,待同步的数据消息的第一日志序列号不小于最小日志序列号LSN0;将待同步的数据消息按照第二处理方式进行处理,得到多条待同步的增量日志,将待同步的增量日志转发至各个目标端数据库。
在本发明中,基于数据库的重做日志仅进行初步解析及简单分析,就发往中间缓存库,由于仅仅做了简单的数据头解析,对源端数据库的计算能力和IO资源,影响极小。而且,对增量日志进行了处理,将多条增量日志整合为一条数据消息,可以节省带宽和存储空间。本发明的方法可以保证源端数据库和目标端数据库在同一时刻数据是一致的,同时对源端和目标端服务器的资源损耗缩减至最小。
附图说明
图1是本发明实施例提供的一种数据系统的结构示意图;
图2是本发明实施例提供的一种提升数据同步性能的方法的流程示意图;
图3是本发明实施例提供的另一种数据同步系统的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在本发明的描述中,术语“内”、“外”、“纵向”、“横向”、“上”、“下”、“顶”、“底”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明而不是要求本发明必须以特定的方位构造和操作,因此不应当理解为对本发明的限制。
此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
实施例1:
在本实施例中,通过基于一对多数据同步时数据库服务器端、网络端、磁盘读写IO资源以及执行的效率进行跟踪及优化,分析出一对多数据同步各个部分的性能瓶颈,推演提出了综合性优化方法,有针对性的对一对多数据同步中的性能损耗进行了优化,从而缩短了一对多同步的时间延迟。参阅图1,本实施例提供了一种数据同步系统,该数据同步系统适用于本发明所提出的提升数据同步性能的方法,该数据同步系统包括:源端数据库、中间缓存库和多个目标端数据库,在所述源端数据库和所述中间缓存库之间部署有源端数据同步服务,在所述中间缓存库和各个所述目标端数据库之间部署有目标端数据同步服务。
其中,源端数据同步服务包括日志捕获发送模块和日志接收写入模块,所述日志捕获发送模块与源端数据库连接,所述日志接收写入模块与中间缓存库连接。目标端数据同步服务包括缓存日志读取发送模块和缓存日志接收执行模块,所述缓存日志读取发送模块与中间缓存库连接,所述缓存日志接收执行模块与目标端数据库连接。
所述日志捕获发送模块用于从源端数据库获取多条增量日志,并对第一条增量日志进行解析得到第一日志序列号,将多条所述增量日志和所述第一日志序列号按照第一处理方式进行处理,得到预设格式的数据消息。所述日志接收写入模块用于接收预设格式的数据消息,并将所述数据消息发送至中间缓存库。
缓存日志读取发送模块用于根据最小日志序列号LSN0从所述中间缓存库获取待同步的数据消息。缓存日志接收执行模块用于将所述待同步的数据消息按照第二处理方式进行处理,得到多条待同步的增量日志,将所述待同步的增量日志转发至各个目标端数据库。
在本实施例中,对于缓存日志读取发送模块,仅仅需要申请对中间缓存库的一个连接资源,来进行顺序的索引查询操作。这样既可以以较快的速度进行查询,又不影响源端和目标端服务器的任何资源。再者,对于缓存日志接收执行模块,仅仅需要申请对目标端数据库的一个连接资源,用于将接收并解析后消息,在内存中进行分析处理,并执行至目标端数据库即可,无需对缓存日志进行额外下载保存,对于目标端数据库几乎无额外IO消耗。
前述主要从硬件配置上,简要说明了本实施例方法所适用的场景,下面结合图2,具体说明提升数据同步性能的方法的执行过程,该方法包括如下步骤:
步骤101:从源端数据库获取多条增量日志,并对第一条增量日志进行解析得到第一日志序列号,其中,所述第一条增量日志指的是多条所述增量日志中最先发生的增量日志。
在本实施例中,日志读取发送模块顺序读取源端数据库的重做或者归档日志,依次获取多条增量日志,并对第一条增量日志进行解析得到第一日志序列号,其中,所述第一条增量日志指的是多条所述增量日志中最先发生的增量日志。
在具体应用场景下,以多条增量日志为单位,进行批量处理,针对每一次批量处理,仅仅做了简单的日志头分析,无需对所有的增量日志均进行解析,不需要浪费较多的资源,数据处理的效率较高。
步骤102:将多条所述增量日志和所述第一日志序列号按照第一处理方式进行处理,得到预设格式的数据消息,将所述数据消息发送至中间缓存库。
在本实施例中,将多条所述增量日志合并为一行记录,得到合并后的数据,然后对合并后的数据进行压缩,得到压缩后的数据,将较长的数据打包压缩为较短的数据,可以节省带宽和存储空间。最后,再将压缩后的数据与步骤101中获取到的第一日志序列号整合为预设格式的数据消息。
为了便于目标端将数据消息还原为多条增量日志,在本实施例中,日志接收写入模块获取每条所述增量日志的长度,依次将每条所述增量日志以及每条所述增量日志的长度共同存储于预设的内存中,得到合并后的数据,将所述合并后的数据进行压缩,得到压缩后的数据,完成多行记录到一行记录的合并和压缩。最后,将所述第一日志序列号追加至所述压缩后的数据中,得到预设格式的数据消息。
其中,可以采用MD5压缩算法对合并后的数据进行压缩,得到压缩后的数据,或者采用其他压缩算法,在此,不做具体限定。
在本实施例中,每一次处理是将多条增量日志进行批量处理,每一批量数据中所包含的增量日志的条数依据预设的内存大小而定,具体地,顺序获取增量日志,并按照顺序将增量日志存储在预设的内存中,直至预设的内存空间被占满。针对每一次批量处理,对第一条增量日志进行解析,获取第一条增量日志的第一日志序列号(为了区分,在本实施例中,描述为第一日志序列号,其本质还是该增量日志对应的日志序列号),将所述第一日志序列号设置为多条增量日志形成的数据消息的编号,以根据所述第一日志序列号确定不同的数据消息顺序。
步骤103:根据最小日志序列号LSN0从所述中间缓存库获取待同步的数据消息,其中,所述待同步的数据消息的第一日志序列号不小于所述最小日志序列号LSN0。
其中,第一日志序列号不仅用于标定每个数据消息的顺序,同时还用于根据第一日志序列号确定相应的数据消息是否已经被同步。针对同一数据消息,其他增量日志的日志序列号均大于第一条增量日志的日志序列号,因此可以通过第一日志序列号与最小日志序列号LSN0的大小关系确定该数据消息是否已经被同步。
步骤104:将所述待同步的数据消息按照第二处理方式进行处理,得到多条待同步的增量日志,将所述待同步的增量日志转发至各个目标端数据库。
在本实施例中,对所述待同步的数据消息进行解压缩,得到合并后的数据;获取每条增量日志的长度,根据每条增量日志的长度将合并后的数据分割为单行的增量日志,从而得到多条待同步的增量日志,将待同步的增量日志发送至目标端数据库进行数据同步。
具体地,缓存日志读取发送模块连接上中间缓存库,从最小日志序列号开始,例如,最小日志序列号首次为0,在后续过程中,根据实际同步情况,更新最小日志序列号,从日志缓存表中进行高效的索引查询方式对存储的源端增量日志进行查询,将LSN大于等于最小日志序列号的缓存日志数据块从缓存数据库中读取出来。例如:SELECT ABSOLUTE*FROM RLOG1.REDO_REC WHERE LSN=xxx,将获取到的数据消息进行解压缩,然后按长度将多行分割为单行的增量日志,然后以消息方式逐一转发至多个目标端。
在实际应用场景下,目标端进行数据同步时,针对待同步的数据消息,根据待同步的数据消息携带的第一日志序列号,确定各个待同步的数据消息的同步顺序;针对同一个待同步的数据消息中的各个待同步的增量日志,根据每一个增量日志的日志序列号确定各个增量日志的同步顺序,在最后发生的增量日志被执行完成后,目标端将最后发生的增量日志的日志序列号反馈至目标端数据同步服务,根据该最后发生的增量日志的日志序列号更新最小日志序列号LSN0。
即,更新最小日志序列号LSN0的方式如下:在多条所述待同步的增量日志被目标端同步后,在多条所述待同步的增量日志中,获取最后发生的增量日志的日志序列号LSN0',将最小日志序列号LSN0的取值更新为LSN0'。
在实际应用场景下,在同一批次的多条增量日志中,有可能会存在提交日志,当存在提交日志时,需要将该提交日志在中间缓存库中进行提交,进一步地,所述方法还包括:
判断增量日志的类型,当增量日志为提交日志时,获取所述提交日志的提交日志序列号,将所述提交日志序列号添加至所述数据消息中,即将提交日志序列号一起打包至数据消息中;并向所述中间缓存库发送提交消息,以使所述中间缓存库根据所述提交日志序列号,提交相应的增量日志。
此外,所述中间缓存库创建有缓存表,所述日志接收写入模块采用顺序写入数据库的方式,将数据消息存于中间缓存库的缓存表中。其中,在缓存表中设置索引标识,可以通过索引标识获取待同步的数据消息。
以oracle数据库为例,举例说明缓存表的结构:create table RLOG1.REDO_REC(LSN BIGINT,SUBLSN SMALLINT,PART TINYINT,RACID TINYINT,EPOCH BIGINT,LOG_MASKINT,LOG VARBINARY(8188),CLUSTER PRIMARY KEY(LSN,SUBLSN,PART)),其中LSN(步骤101中,所获取到的第一日志序列号)和PART(片号)构建索引唯一标识,以便对增量数据进行查询时,能够达到最快的速度。在数据库中,每一页所能存储的数据大小有限,如果数据块较大时,可能需要占用多个数据页,通过片号指示数据块的存储位置。
其中,LOG_MASK字段为日志合并、压缩类的掩码,当多条增量日志配置上合并压缩选项后,写入中间缓存库的数据量相对于未进行合并压缩时,会大幅度的减少。具体的压缩的比例取决于采用的压缩算法和合并的日志记录行数;LOG字段为增量日志内容。
结合中间缓存库中的缓存表,所述方法还包括:将所述数据消息存储至所述中间缓存库的缓存表中,在存储的过程中,不仅将数据消息存储至内存空间中,还获取所述数据消息所占用空间的片号,根据所述数据消息对应的第一日志序列号和相应的片号构建索引标识。
进一步地,在步骤104中,根据所述最小日志序列号LSN0从所述中间缓存库获取待同步的数据消息包括:
查询所述缓存表的索引标识,确定第一日志序列号不小于所述最小日志序列号LSN0的待同步的数据消息;根据所述索引标识中的片号进行数据提取,获取所述待同步的数据消息。
为了缓解中间缓存库的内存压力,在具体应用场景下,还需要实时清理已经完成同步的数据消息。不过,多个目标端数据库的同步进度可能存在差异,只能将所有目标端数据库均已经同步的消息进行清理。在优选的实施例中,获取已经同步于各个目标端数据库的增量日志的最小日志序列号LSN1;根据所述最小日志序列号LSN1清理所述中间缓存库。其中,前述最小的日志序列号LSN1指的是,在未同步的增量日志中,取值最小的日志序列号。
具体地,获取各个目标端数据库所反馈的执行完成的最小日志序列号,针对同一个待同步的数据消息中的各个待同步的增量日志,根据每一个增量日志的日志序列号确定各个增量日志的同步顺序,在最后发生的增量日志被执行完成后,目标端将最后发生的增量日志的日志序列号反馈至目标端数据同步服务,该最后发生的增量日志的日志序列号对应于前述最小的日志序列号。比较各个目标端反馈的最小日志序列号,将取值最小的日志序列号标记为最小日志序列号LSN1;清理所述中间缓存库中第一日志序列号小于所述最小日志序列号LSN1的数据消息。
结合图1,缓存日志接收执行模块接收并解析从缓存日志读取发送模块所获取到的数据消息,对数据消息进行第二数据处理得到待同步的增量日志,并将增量日志执行到至目标端数据库,同时反馈执行成功的LSN给缓存日志读取发送模块,由缓存日志读取发送模块,写入中间缓存库的最小LSN统计表中。例如:create table RLOG1.SITE_MIN_LSN(SITEID int not null primary key,LSN bigint);SITEID字段用于保存缓存日志读取标识号,LSN为源端数据库日志的序列号LSN。
中间缓存库配套设置有清理模块,清理模块读取中间缓存库的最小LSN统计表,综合各个节点反馈的已经执行的最小LSN,判断出中间缓存数据库可清理的已被全部区域同步最小日志序列号,对缓存数据库进行定时的清理。
结合前述描述,本实施例的方法至少具有如下优势:
(1)首先基于数据库的重做日志仅进行初步解析及简单分析,就发往中间缓存库。由于仅仅做了简单的数据头解析,对源端数据库的计算能力和IO资源,影响极小。同时日志记录的合并也全部在内存中进行,不仅有很高的性能,同时日志增量数据,也成比例的减少,具体比例根据采用的压缩算法而定。
(2)采用中间缓存库的方式,结构化的存储加上数据库索引的方式,使增量日志的存储性能和查询性能,远远高于一般的文件存储,基于LSN等字段为组合索引的日志定位,更是在乱序查询时远远的超过其他的文件类型的存储方式。
(3)对于缓存日志读取发送模块,仅仅需要申请对中间缓存库的一个连接资源,来进行顺序的索引查询操作。这样既可以以较快的速度进行查询,又不影响源端和目标端服务器的任何资源。
(4)对于缓存日志接收执行模块,仅仅需要申请对目标端数据库的一个连接资源,用于将接收并解析后消息,在内存中进行分析处理,并执行至目标数据库即可,无需对缓存日志进行额外下载保存,对于目标数据库服务器几乎无额外IO消耗。
(5)缓存日志清理模块,将对中间缓存库中已经同步的增量日志,进行定时清理工作。这样保证中间缓存库的日志量相对较少,各个区域的查询,也相对更快捷。
实施例2:
请参阅图3,图3是本发明实施例提供的一种数据同步系统的结构示意图。本实施例的数据同步系统包括一个或多个处理器21以及存储器22。其中,图3中以一个处理器21为例。
处理器21和存储器22可以通过总线或者其他方式连接,图3中以通过总线连接为例。
存储器22作为一种基于数据同步的非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,上述实施例的方法以及对应的程序指令。处理器21通过运行存储在存储器22中的非易失性软件程序、指令以及模块,从而执行各种功能应用以及数据处理,实现前述实施例的方法。
其中,存储器22可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器22可选包括相对于处理器21远程设置的存储器,这些远程存储器可以通过网络连接至处理器21。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
值得说明的是,上述装置和系统内的模块、单元之间的信息交互、执行过程等内容,由于与本发明的处理方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
本领域普通技术人员可以理解实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(Read Only Memory,简写为ROM)、随机存取存储器(Random AccessMemory,简写为RAM)、磁盘或光盘等。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种提升数据同步性能的方法,其特征在于,所述方法包括:
从源端数据库获取多条增量日志,并对第一条增量日志进行解析得到第一日志序列号,其中,所述第一条增量日志指的是多条所述增量日志中最先发生的增量日志;
将多条所述增量日志和所述第一日志序列号按照第一处理方式进行处理,得到预设格式的数据消息,将所述数据消息发送至中间缓存库;
根据最小日志序列号LSN0从所述中间缓存库获取待同步的数据消息,其中,所述待同步的数据消息的第一日志序列号不小于所述最小日志序列号LSN0;
将所述待同步的数据消息按照第二处理方式进行处理,得到多条待同步的增量日志,将所述待同步的增量日志转发至各个目标端数据库。
2.根据权利要求1所述的方法,其特征在于,所述将多条所述增量日志和所述第一日志序列号按照第一处理方式进行处理,得到预设格式的数据消息包括:
获取每条所述增量日志的长度,依次将每条所述增量日志以及每条所述增量日志的长度共同存储于预设的内存中,得到合并后的数据;
将所述合并后的数据进行压缩,得到压缩后的数据;
将所述第一日志序列号追加至所述压缩后的数据中,得到预设格式的数据消息。
3.根据权利要求2所述的方法,其特征在于,将所述待同步的数据消息按照第二处理方式进行处理,得到多条待同步的增量日志包括:
对所述待同步的数据消息进行解压缩,得到合并后的数据;
获取每条增量日志的长度,根据每条增量日志的长度将合并后的数据分割为单条的增量日志,从而得到多条待同步的增量日志。
4.根据权利要求2所述的方法,其特征在于,将所述合并后的数据进行压缩,得到压缩后的数据包括:
采用MD5压缩算法对所述合并后的数据进行压缩,得到压缩后的数据。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当增量日志为提交日志时,获取所述提交日志的提交日志序列号,将所述提交日志序列号添加至所述数据消息中;
向所述中间缓存库发送提交消息,以使所述中间缓存库根据所述提交日志序列号,提交相应的增量日志。
6.根据权利要求1所述的方法,其特征在于,所述中间缓存库创建有缓存表,所述方法还包括:
将所述数据消息存储至所述中间缓存库的缓存表中;
获取所述数据消息所占用空间的片号,根据所述数据消息的第一日志序列号和相应的片号构建索引标识。
7.根据权利要求6所述的方法,其特征在于,根据所述最小日志序列号LSN0从所述中间缓存库获取待同步的数据消息包括:
查询所述缓存表的索引标识,确定第一日志序列号不小于所述最小日志序列号LSN0的待同步的数据消息;
根据所述索引标识中的片号进行数据提取,获取所述待同步的数据消息。
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取已经同步于各个目标端数据库的增量日志的最小日志序列号LSN1;
根据所述最小日志序列号LSN1清理所述中间缓存库。
9.根据权利要求8所述的方法,其特征在于,所述获取已经同步于各个目标端数据库的增量日志的最小日志序列号LSN1包括:
获取各个目标端数据库所反馈的执行完成的最小日志序列号;
比较各个最小日志序列号,将取值最小的日志序列号标记为最小日志序列号LSN1;
清理所述中间缓存库中第一日志序列号小于所述最小日志序列号LSN1的数据消息。
10.一种数据同步系统,其特征在于,所述数据同步系统包括至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被程序设置为执行如权利要求1~9任一项所述的方法。
CN202010361317.3A 2020-04-30 2020-04-30 一种提升数据同步性能的方法和数据同步系统 Active CN111694800B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010361317.3A CN111694800B (zh) 2020-04-30 2020-04-30 一种提升数据同步性能的方法和数据同步系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010361317.3A CN111694800B (zh) 2020-04-30 2020-04-30 一种提升数据同步性能的方法和数据同步系统

Publications (2)

Publication Number Publication Date
CN111694800A CN111694800A (zh) 2020-09-22
CN111694800B true CN111694800B (zh) 2023-03-24

Family

ID=72476862

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010361317.3A Active CN111694800B (zh) 2020-04-30 2020-04-30 一种提升数据同步性能的方法和数据同步系统

Country Status (1)

Country Link
CN (1) CN111694800B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106886528A (zh) * 2015-12-16 2017-06-23 天脉聚源(北京)科技有限公司 一种文件增量同步方法及系统
CN112612799B (zh) * 2020-12-08 2022-10-18 福建天泉教育科技有限公司 一种数据同步方法及终端
CN112765276A (zh) * 2021-01-27 2021-05-07 云账户技术(天津)有限公司 一种增量数据同步方法及装置
CN113051247A (zh) * 2021-03-18 2021-06-29 福建星瑞格软件有限公司 一种基于日志同步的数据库迁移方法及系统
CN114095876A (zh) * 2021-11-08 2022-02-25 青岛海尔科技有限公司 广播数据的处理方法和装置、存储介质及电子装置
CN114817190A (zh) * 2022-04-29 2022-07-29 阿里云计算有限公司 日志同步的方法、装置、系统、设备及存储介质
CN114741367B (zh) * 2022-06-13 2023-02-24 腾讯科技(深圳)有限公司 数据同步方法、装置、电子设备、存储介质和程序产品

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103326730A (zh) * 2013-06-06 2013-09-25 清华大学 数据并行压缩方法
CN105574187A (zh) * 2015-12-23 2016-05-11 武汉达梦数据库有限公司 一种异构数据库复制事务一致性保障方法及系统
CN107038162A (zh) * 2016-02-03 2017-08-11 滴滴(中国)科技有限公司 基于数据库日志的实时数据查询方法和系统
CN109241185A (zh) * 2018-08-27 2019-01-18 武汉达梦数据库有限公司 一种数据同步的方法以及数据同步装置
CN110262929A (zh) * 2018-08-13 2019-09-20 武汉达梦数据库有限公司 一种保证复制事务一致性的方法以及相应的复制装置
CA3099104A1 (en) * 2018-05-02 2019-11-07 Commvault Systems, Inc. Client managed data backup process within an enterprise information management system
CN110609813A (zh) * 2019-08-14 2019-12-24 北京华电天仁电力控制技术有限公司 一种数据存储系统及方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103326730A (zh) * 2013-06-06 2013-09-25 清华大学 数据并行压缩方法
CN105574187A (zh) * 2015-12-23 2016-05-11 武汉达梦数据库有限公司 一种异构数据库复制事务一致性保障方法及系统
CN107038162A (zh) * 2016-02-03 2017-08-11 滴滴(中国)科技有限公司 基于数据库日志的实时数据查询方法和系统
CA3099104A1 (en) * 2018-05-02 2019-11-07 Commvault Systems, Inc. Client managed data backup process within an enterprise information management system
CN110262929A (zh) * 2018-08-13 2019-09-20 武汉达梦数据库有限公司 一种保证复制事务一致性的方法以及相应的复制装置
CN109241185A (zh) * 2018-08-27 2019-01-18 武汉达梦数据库有限公司 一种数据同步的方法以及数据同步装置
CN110609813A (zh) * 2019-08-14 2019-12-24 北京华电天仁电力控制技术有限公司 一种数据存储系统及方法

Also Published As

Publication number Publication date
CN111694800A (zh) 2020-09-22

Similar Documents

Publication Publication Date Title
CN111694800B (zh) 一种提升数据同步性能的方法和数据同步系统
CN107729366B (zh) 一种普适多源异构大规模数据同步系统
CN110262929B (zh) 一种保证复制事务一致性的方法以及相应的复制装置
CN112286941B (zh) 一种基于Binlog+HBase+Hive的大数据同步方法和装置
CN111694798B (zh) 一种基于日志解析的数据同步方法及数据同步系统
CN111177254B (zh) 一种异构关系型数据库之间数据同步的方法和装置
CN111125013B (zh) 一种数据入库方法、装置、设备及介质
CN112035463B (zh) 基于日志解析的异构数据库的双向同步方法和同步装置
CN111694799B (zh) 基于日志解析同步的并行日志解析方法和数据同步系统
CN114422807B (zh) 一种基于Spice协议的传输优化方法
CN113779094B (zh) 基于批流一体的数据处理方法、装置、计算机设备和介质
CN112000649A (zh) 一种基于map reduce的增量数据同步的方法和装置
CN112559629B (zh) 一种基于日志解析同步的大对象初始化方法与装置
CN114817190A (zh) 日志同步的方法、装置、系统、设备及存储介质
CN112182031B (zh) 数据查询方法及装置、存储介质、电子装置
CN109669988B (zh) 一种查询建表事务的拆分同步方法及系统
CN111858504B (zh) 基于日志解析同步的操作合并执行方法和数据同步系统
US20230252029A1 (en) On-board data storage method and system
US20220014483A1 (en) Data processing method and apparatus
CN112307117B (zh) 一种基于日志解析的同步方法和同步系统
CN114528049A (zh) 一种基于InfluxDB实现API调用信息统计的方法及系统
CN112307118B (zh) 基于日志解析同步的保障数据一致性的方法和同步系统
CN111143280B (zh) 一种数据调度方法、系统、装置及存储介质
CN111737341B (zh) 基于日志解析的插入操作同步优化方法和数据同步系统
CN117390040B (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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 430000 16-19 / F, building C3, future technology building, 999 Gaoxin Avenue, Donghu New Technology Development Zone, Wuhan, Hubei Province

Applicant after: Wuhan dream database Co.,Ltd.

Address before: 430000 16-19 / F, building C3, future technology building, 999 Gaoxin Avenue, Donghu New Technology Development Zone, Wuhan, Hubei Province

Applicant before: WUHAN DAMENG DATABASE Co.,Ltd.

CB03 Change of inventor or designer information
CB03 Change of inventor or designer information

Inventor after: Chen Qi

Inventor after: Sun Feng

Inventor after: Yu Yuanlan

Inventor before: Fu Quan

Inventor before: Chen Qi

Inventor before: Sun Feng

Inventor before: Yu Yuanlan

GR01 Patent grant
GR01 Patent grant