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

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

Info

Publication number
CN113626399A
CN113626399A CN202110943001.XA CN202110943001A CN113626399A CN 113626399 A CN113626399 A CN 113626399A CN 202110943001 A CN202110943001 A CN 202110943001A CN 113626399 A CN113626399 A CN 113626399A
Authority
CN
China
Prior art keywords
log
cache
data
event
language event
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.)
Granted
Application number
CN202110943001.XA
Other languages
English (en)
Other versions
CN113626399B (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.)
Shenzhen Hengyuanhao Information Technology Co ltd
Shenzhen Lian Intellectual Property Service Center
Original Assignee
Ping An Puhui Enterprise Management 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 Ping An Puhui Enterprise Management Co Ltd filed Critical Ping An Puhui Enterprise Management Co Ltd
Priority to CN202110943001.XA priority Critical patent/CN113626399B/zh
Publication of CN113626399A publication Critical patent/CN113626399A/zh
Application granted granted Critical
Publication of CN113626399B publication Critical patent/CN113626399B/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/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/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/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)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请适用于大数据技术领域,提供了一种数据同步方法、装置、服务器及存储介质,该方法包括:响应于检测到数据定义语言事件,在主数据库上执行数据定义语言事件所指示的操作,以及生成用于记录数据定义语言事件的操作的第一日志,将第一日志缓存至预先建立的第一缓存中;若预先建立的第二缓存中缓存有用于记录数据操纵语言事件的操作的第二日志,则将第一缓存中的第一日志和第二缓存中的第二日志,以预设的分隔标识区分写入日志文件中;根据分隔标识,将日志文件中的第一日志和第二日志分发至从数据库中的对应工作线程中处理,以便在从数据库上并行执行数据定义语言事件和数据操纵语言事件。此外,本申请还涉及区块链技术。

Description

数据同步方法、装置、服务器及存储介质
技术领域
本申请涉及大数据技术领域,尤其涉及一种数据同步方法、装置、服务器及存储介质。
背景技术
MySQL是一种关系型数据库管理系统。MySQL通常具有主从复制功能,即,主数据库中的数据定义语言(Data Definition Language,DDL)事件和数据操纵语言(DataManipulation Language,DML)事件可以通过二进制日志传输到从数据库上,然后将二进制日志记载的事件中的操作在从数据库中执行(重做),实现将主数据库中的数据同步至从数据库中。
相关技术中,在DDL事件在主数据库上提交之后,从数据库上能明显地观测到时延长度的上升,一段时间之后,时延长度才会回落到原始的稳定状态。因此,相关技术中,需要降低对DDL事件处理时的时延长度,以提高将主数据库中的数据同步至从数据库的数据同步效率。
发明内容
有鉴于此,本申请实施例提供了一种数据同步方法、装置、服务器及存储介质,以解决相关技术中对DDL事件处理时的时延长度较长,导致将主数据库中的数据同步至从数据库的效率不够高的问题。
本申请实施例的第一方面提供了一种数据同步方法,包括:
响应于检测到数据定义语言事件,在主数据库上执行数据定义语言事件所指示的操作,以及生成用于记录数据定义语言事件的操作的第一日志,将第一日志缓存至预先建立的第一缓存中;
若预先建立的第二缓存中缓存有用于记录数据操纵语言事件的操作的第二日志,则将第一缓存中的第一日志和第二缓存中的第二日志,以预设的分隔标识区分写入日志文件中;
根据分隔标识,将日志文件中的第一日志和第二日志分发至从数据库中的对应工作线程中处理,以便在从数据库上并行执行数据定义语言事件和数据操纵语言事件。
进一步地,方法还包括:
向操作系统请求分配两个内存空间,以及将所分配的两个内存空间建立为第一缓存和第二缓存,其中,第一缓存用于存储记录数据定义语言事件的操作的第一日志,第二缓存用于存储记录数据操纵语言事件的操作的第二日志。
进一步地,方法还包括:
响应于检测到数据操纵语言事件,在主数据库上执行数据操纵语言事件所指示的操作,以及生成用于记录数据操纵语言事件的操作的第二日志,将第二日志缓存至预先建立的第二缓存中。
进一步地,根据分隔标识,将日志文件中的第一日志和第二日志分发至从数据库中的对应工作线程中处理,包括:
将日志文件传递至从数据库的协作线程,使得协作线程在检测到日志文件中包括分隔标识时,将分隔标识两侧的第一日志和第二日志分配至处于空闲状态的对应工作线程中分别进行处理。
进一步地,若日志文件中的第二日志有多个,则将分隔标识两侧的第一日志和第二日志分配至处于空闲状态的对应工作线程中分别进行处理,包括:
将分隔标识一侧的第一日志分配至处于空闲状态的第一工作线程中处理,以及将分隔标识另一侧的多个第二日志分别分配至处于空闲状态的多个第二工作线程中处理。
进一步地,方法还包括:
针对每个工作线程,若工作线程对目标日志处理完成,则执行预设资源释放函数以释放分配给对目标日志处理完成的工作线程的处理资源,以及将对目标日志处理完成的工作线程的状态确定为空闲状态,其中,目标日志为第一日志或/及第二日志。
进一步地,方法还包括:
若未检测到数据定义语言事件且第二缓存满足预设转写条件,将第二缓存中的第二日志写入日志文件;
其中,预设转写条件包括以下至少一项:第二缓存的当前使用率大于预设使用率阈值、达到预设转存周期。
本申请实施例的第二方面提供了一种数据同步装置,包括:
第一执行单元,用于响应于检测到DDL事件,在主数据库上执行DDL事件所指示的操作,以及生成用于记录DDL事件的操作的第一日志,将第一日志缓存至预先建立的第一缓存中;
数据写入单元,用于若预先建立的第二缓存中缓存有用于记录数据操纵语言事件的操作的第二日志,则将第一缓存中的第一日志和第二缓存中的第二日志,以预设的分隔标识区分写入日志文件中;
第二执行单元,用于根据分隔标识,将日志文件中的第一日志和第二日志分发至从数据库中的对应工作线程中处理,以便在从数据库上并行执行DDL事件和DML事件。
本申请实施例的第三方面提供了一种服务器,包括存储器、处理器以及存储在存储器中并可在服务器上运行的计算机程序,处理器执行计算机程序时实现第一方面提供的数据同步方法的各步骤。
本申请实施例的第四方面提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时实现第一方面提供的数据同步方法的各步骤。
实施本申请实施例提供的一种数据同步方法、装置、服务器及存储介质具有以下有益效果:将DDL事件的日志和DML事件的日志缓存在不同的存储空间,将日志写入日志文件时,采用分隔标识将DDL事件的日志和DML事件的日志区分写入日志文件,便于对两种不同事件的日志进行准确区分,从而实现在从数据库上并行执行DDL事件和DML事件,有助于提高主数据库与从数据库之间进行数据同步的效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种数据同步方法的实现流程图;
图2是本申请实施例提供的另一种数据同步方法的实现流程图;
图3是本申请实施例提供的一种数据同步装置的结构框图;
图4是本申请实施例提供的一种服务器的结构框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例所涉及的数据同步方法,可以由控制服务器(以下称“服务器”)执行。数据同步方法由服务器执行时,执行主体为服务器。
请参阅图1,图1示出了本申请实施例提供的一种数据同步方法的实现流程图,包括:
步骤101,响应于检测到DDL事件,在主数据库上执行DDL事件所指示的操作,以及生成用于记录DDL事件的操作的第一日志,将第一日志缓存至预先建立的第一缓存中。
其中,DDL事件中可以包括一个操作,也可以包括多个操作,DDL事件中所包括的操作为DDL操作。上述第一日志通常是用于记录DDL事件的操作的日志。上述第一缓存通常是预先建立的内存空间。
这里,用户可以通过用户终端向服务器提交DDL事件。这样,服务器可以检测到该DDL事件,然后在服务器所管理的主数据库上执行该DDL事件所包括的DDL操作。在服务器执行DDL操作时,可以生成用于记录所执行的操作的第一日志。
步骤102,若预先建立的第二缓存中缓存有用于记录数据操纵语言事件的操作的第二日志,则将第一缓存中的第一日志和第二缓存中的第二日志,以预设的分隔标识区分写入日志文件中。
其中,第二缓存通常用于存储用于记录DML事件的操作的第二日志。第二缓存通常是预先建立的内存空间。需要指出的是,第一缓存与第二缓存为不相同的两个内存空间。第二日志通常是用于记录DML事件的操作的日志。DML事件所包括的操作通常为DML操作。DML事件中可以包括一个操作,也可以包括多个操作。
其中,上述分隔标识通常是预先设定的标识。作为示例,上述分隔标识可以为“Seperator_log_event”,也可以为其它标识。
这里,上述执行主体可以将第一日志和第二日志以分隔标识作为分隔,同时写入日志文件中。
实践中,第一日志中通常具有很多的日志数据,第二日志中也通常具有很多的日志数据。为了保障同一个事件的日志连续,上述执行主体可以将第一日志中的同一DDL事件下的所有日志数据一次性全部写入日志文件,以及将第二日志中的、同一DML事件下的所有日志数据一次性全部写入日志文件。
步骤103,根据分隔标识,将日志文件中的第一日志和第二日志分发至从数据库中的对应工作线程中处理,以便在从数据库上并行执行DDL事件和DML事件。
这里,上述执行主体可以将日志文件中的第一日志和第二日志分发至不同的工作线程进行处理。这样,多个线程同时对第一日志和第二日志进行处理,可以实现对第一日志和第二日志的并行处理,从而实现在从数据库上并行执行DDL事件和DML事件。
本实施例提供的数据同步方法,将DDL事件的日志和DML事件的日志缓存在不同的存储空间,将日志写入日志文件时,采用分隔标识将DDL事件的日志和DML事件的日志区分写入日志文件,便于对两种不同事件的日志进行准确区分,从而实现在从数据库上并行执行DDL事件和DML事件,有助于提高主数据库与从数据库之间进行数据同步的效率。
在本申请的各个实施例的可选的实现方式中,上述数据同步方法还可以包括:响应于检测到DML事件,在主数据库上执行DML事件所指示的操作,以及生成用于记录DML事件的操作的第二日志,将第二日志缓存至预先建立的第二缓存中。
这里,用户可以通过用户终端向服务器提交DML事件。这样,服务器可以检测到该DML事件,然后在服务器所管理的主数据库上执行该DML事件所包括的DML操作。在服务器执行DML操作时,可以生成用于记录所执行的操作的第二日志。以及,将所生成的第二日志缓存至预先建立的第二缓存中。
需要指出的是,针对一个DML事件可以有一个第二日志。第二缓存中可以存储有针对一个DML事件的一个第二日志,也可以同时存储有针对多个DML事件的多个第二日志。这样,所得到的日志文件中可以有一个第二日志,也可以有多个第二日志。在日志文件中有多个第二日志时,可以将多个第二日志分发至多个不同的工作线程中处理,以便在从数据库上并行执行多个DML事件。
举例来说,若第二缓存中存储有针对3个DML事件的3个第二日志,则所得到的日志文件中存在3个第二日志。此时,上述执行主体可以将该3个第二日志分发至3个不同的工作线程进行处理。这样,可以以便在从数据库上并行执行3个DML事件。
在本申请的各个实施例的可选的实现方式中,若未检测到DDL事件且第二缓存满足预设转写条件,将第二缓存中的第二日志写入日志文件。
其中,预设转写条件通常是预先设定的条件。实践中,预设转写条件可以包括但不限于以下至少一项:第二缓存的当前使用率大于预设使用率阈值,达到预设转存周期。实践中,预设转写条件还可以包括第二缓存中的第二日志的数目大于预设数值等。
上述预设使用率阈值通常是预先设定的数值,如,0.8。实践中,上述预设使用率阈值通常大于0且小于1。上述预设转存周期通常是预先设定的周期值,如,1秒。
这里,在没有检测到DDL事件的情况下,若第二缓存满足预设转写条件,则直接将第二缓存中的第二日志写入日志文件中,可以实现对整个数据库进行良好管理。
在本实施例的一些可选的实现方式中,根据分隔标识,将日志文件中的第一日志和第二日志分发至从数据库中的对应工作线程中处理,包括:
将日志文件传递至从数据库的协作线程,使得协作线程在检测到日志文件中包括分隔标识时,将分隔标识两侧的第一日志和第二日志分配至处于空闲状态的对应工作线程中分别进行处理。
其中,协作线程通常是用于对工作线程进行任务分配的线程。从数据库中可以具有一个用于分配任务的协作线程和多个用于执行任务的工作线程。
这里,上述执行主体可以通过从数据库的协作线程,将日志文件中的第一日志和第二日志分给处于空闲状态的不同的工作线程中处理。
实践中,上述执行主体可以将日志文件传递至从数据库的协作线程中。这样,协作线程可以将日志文件中的各日志分发至工作线程中进行处理。具体地,协作线程可以先检测日志文件中的分隔标识,若检测到,则可以以分隔标识作为分隔,将分隔标识一侧的第一日志分配至处于空闲状态的若干工作线程处理,以及将分隔标识另一侧的第二日志分配至处于空闲状态的另一些的若干工作线程处理。
需要指出的是,具体的日志分发任务由从数据库的协作线程执行,可以节约服务器的数据处理资源。
在一些可选的实现方式中,上述根据分隔标识,将日志文件中的第一日志和第二日志分发至从数据库中的对应工作线程中处理,也可以包括:
首先,将分隔标识一侧的第一日志分配至处于空闲状态的第一工作线程中解析,得到第一日志记录的DDL事件的操作的语句并执行。
然后,将分隔标识另一侧的第二日志分配至处于空闲状态的第二工作线程中解析,得到第二日志记录的DML事件的操作的语句并执行。
其中,第一工作线程和第二工作线程是不相同的两个工作线程。
这里,上述执行主体可以将分隔标识一侧的第一日志分发至第一工作线程中进行解析,以得到第一日志所记录的DDL事件的操作的语句。然后,第一工作线程执行该语句,实现第一工作线程执行该第一日志对应的DDL事件。同时,上述执行主体也将分隔标识另一侧的第二日志分发至第二工作线程中进行解析,以得到第二日志所记录的DML事件的操作的语句。然后,第二工作线程执行该语句,实现第二工作线程执行该第二日志对应的DML事件。
这里,上述执行主体可以将日志文件中的第一日志和第二日志分发至不同的工作线程进行处理。多个线程同时对第一日志和第二日志进行处理,可以实现对第一日志和第二日志的并行处理,从而实现在从数据库上并行执行DDL事件和DML事件。
在上述实现方式中,若日志文件中的第二日志有多个,则将分隔标识两侧的第一日志和第二日志分配至处于空闲状态的对应工作线程中分别进行处理,包括:
将分隔标识一侧的第一日志分配至处于空闲状态的第一工作线程中处理,以及将分隔标识另一侧的多个第二日志分别分配至处于空闲状态的多个第二工作线程中处理。
这里,在日志文件中存在多个第二日志时,可以将多个第二日志分发至不相同的多个第二工作线程中解析。可以实现在从数据库上并行执行多个DML事件,有助于进一步提高主数据库与从数据库之间进行数据同步的效率。
在本申请的各个实施例的一些可选的实现方式中,上述数据同步方法还可以包括如下步骤:
针对每个工作线程,若工作线程对目标日志处理完成,则执行预设资源释放函数以释放分配给对目标日志处理完成的工作线程的处理资源,以及将对目标日志处理完成的工作线程的状态确定为空闲状态。
其中,目标日志为第一日志或/及第二日志。
其中,上述预设资源释放函数通常是预先设定的用于释放处理资源的函数。
这里,在工作线程处理完整个DDL事件相关的日志时,才释放该工作线程的处理资源,也即是,处理完一个事件才释放一次处理资源。比及每处理完事件中的一个操作释放一次处理资源,用于执行资源释放的时间和次数明显要少很多,可以提高数据处理效率。
另外,在执行预设资源释放函数以释放分配给工作线程的处理资源之后,将工作线程的状态确定为空闲状态,可以便于后续对该工作线程分配任务,提高工作线程的可用性。
进一步参考图2,图2为本申请实施例提供的另一种数据同步方法的实现流程图。如图2所示地,数据同步方法可以包括以下步骤:
步骤201,向操作系统请求分配两个内存空间,以及将所分配的两个内存空间建立为第一缓存和第二缓存。
其中,第一缓存用于存储记录DDL事件的操作的第一日志,第二缓存用于存储记录DML事件的操作的第二日志。
实践中,通常是在用户终端与服务器建立通信连接时,请求分配两个内存空间,以得到第一缓存和第二缓存。
这里,上述执行主体可以向操作系统请求分配两个内存空间,然后将其中一个内存空间确定为第一缓存,以及将另一个内存空间确定为第二缓存。所建立的第一缓存用于存储记录DDL事件的操作的第一日志,以及所建立的第二缓存用于存储记录DML事件的操作的第二日志。
步骤202,响应于检测到DDL事件,在主数据库上执行DDL事件所指示的操作,以及生成用于记录DDL事件的操作的第一日志,将第一日志缓存至预先建立的第一缓存中。
步骤203,若预先建立的第二缓存中缓存有用于记录数据操纵语言事件的操作的第二日志,则将第一缓存中的第一日志和第二缓存中的第二日志,以预设的分隔标识区分写入日志文件中。
步骤204,根据分隔标识,将日志文件中的第一日志和第二日志分发至从数据库中的对应工作线程中处理,以便在从数据库上并行执行DDL事件和DML事件。
在本实施例中,步骤202-204的具体操作与图1所示的实施例中步骤101-103的操作基本相同,在此不再赘述。
需要指出的是,针对两种不同的事件分配不同的缓存,可以实现将DDL事件的日志和DML事件的日志缓存在不同的存储空间。
在本申请的所有实施例中,服务器可以在检测到DDL事件时,在主数据库上执行DDL事件所指示的操作,以及生成用于记录DDL事件的操作的第一日志,将第一日志缓存至预先建立的第一缓存中。然后,将第一缓存中的第一日志和第二缓存中的第二日志,以预设的分隔标识区分写入日志文件中,其中,第二缓存中存储有用于记录DML事件的操作的第二日志。最后,根据分隔标识,将日志文件中的第一日志和第二日志分发至从数据库中的对应工作线程中处理,以便在从数据库上并行执行DDL事件和DML事件。服务器可以将日志文件、日志文件中的第一日志及第一日志对应的工作线程的标识、日志文件中的第二日志及第二日志对应的工作线程的标识、分隔标识上传至区块链可保证其安全性和对用户的公正透明性。用户设备可以从区块链中下载得到该数据信息,以便查证数据信息是否被篡改。本示例所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的存储服务器,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
请参阅图3,图3是本申请实施例提供的一种数据同步装置300的结构框图。本实施例中该数据同步装置包括的各单元用于执行图1至图2对应的实施例中的各步骤。具体请参阅图1至图2以及图1至图2所对应的实施例中的相关描述。为了便于说明,仅示出了与本实施例相关的部分。参见图3,数据同步装置300包括:
第一执行单元301,用于响应于检测到DDL事件,在主数据库上执行DDL事件所指示的操作,以及生成用于记录DDL事件的操作的第一日志,将第一日志缓存至预先建立的第一缓存中;
数据写入单元302,用于若预先建立的第二缓存中缓存有用于记录数据操纵语言事件的操作的第二日志,则将第一缓存中的第一日志和第二缓存中的第二日志,以预设的分隔标识区分写入日志文件中;
第二执行单元303,用于根据分隔标识,将日志文件中的第一日志和第二日志分发至从数据库中的对应工作线程中处理,以便在从数据库上并行执行DDL事件和DML事件。
作为本申请一实施例,装置还可以包括缓存建立单元(图中未示出)。其中,缓存建立单元用于:向操作系统请求分配两个内存空间,以及将所分配的两个内存空间建立为第一缓存和第二缓存,其中,第一缓存用于存储记录DDL事件的操作的第一日志,第二缓存用于存储记录DML事件的操作的第二日志。
作为本申请一实施例,装置还可以包括数据缓存单元(图中未示出)。其中,数据缓存单元用于:响应于检测到数据操纵语言事件,在主数据库上执行数据操纵语言事件所指示的操作,以及生成用于记录数据操纵语言事件的操作的第二日志,将第二日志缓存至预先建立的第二缓存中。
作为本申请一实施例,第二执行单元303具体用于:将日志文件传递至从数据库的协作线程,使得协作线程在检测到日志文件中包括分隔标识时,将分隔标识两侧的第一日志和第二日志分配至处于空闲状态的对应工作线程中分别进行处理。
作为本申请一实施例,若日志文件中的第二日志有多个,则第二执行单元303具体还用于:将分隔标识一侧的第一日志分配至处于空闲状态的第一工作线程中处理,以及将分隔标识另一侧的多个第二日志分别分配至处于空闲状态的多个第二工作线程中处理。
作为本申请一实施例,装置还可以包括资源释放单元(图中未示出)。其中,资源释放单元可以用于:针对每个工作线程,若工作线程对目标日志处理完成,则执行预设资源释放函数以释放分配给对目标日志处理完成的工作线程的处理资源,以及将对目标日志处理完成的工作线程的状态确定为空闲状态,其中,目标日志为第一日志或/及第二日志。
作为本申请一实施例,装置还可以包括转写判断单元(图中未示出)。其中,转写判断单元可以用于:若未检测到数据定义语言事件且第二缓存满足预设转写条件,将第二缓存中的第二日志写入日志文件;
其中,预设转写条件包括以下至少一项:第二缓存的当前使用率大于预设使用率阈值、达到预设转存周期。
本实施例提供的装置,将DDL事件的日志和DML事件的日志缓存在不同的存储空间,将日志写入日志文件时,采用分隔标识将DDL事件的日志和DML事件的日志区分写入日志文件,便于对两种不同事件的日志进行准确区分,从而实现在从数据库上并行执行DDL事件和DML事件,有助于提高主数据库与从数据库之间进行数据同步的效率。
应当理解的是,图3示出的数据同步装置的结构框图中,各单元用于执行图1至图2对应的实施例中的各步骤,而对于图1至图2对应的实施例中的各步骤已在上述实施例中进行详细解释,具体请参阅图1至图2以及图1至图2所对应的实施例中的相关描述,此处不再赘述。
图4是本申请另一实施例提供的一种服务器的结构框图。如图4所示,该实施例的服务器400包括:处理器401、存储器402以及存储在存储器402中并可在处理器401上运行的计算机程序403,例如数据同步方法的程序。处理器401执行计算机程序403时实现上述各个数据同步方法各实施例中的步骤,例如图1所示的步骤101至步骤103,或图2所示的步骤201-步骤204。或者,处理器401执行计算机程序403时实现上述图3对应的实施例中各单元的功能,例如,图3所示的单元301至303的功能,具体请参阅图3对应的实施例中的相关描述,此处不赘述。
示例性的,计算机程序403可以被分割成一个或多个单元,一个或者多个单元被存储在存储器402中,并由处理器401执行,以完成本申请。一个或多个单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序403在服务器400中的执行过程。例如,计算机程序403可以被分割成第一执行单元,数据写入单元,第二执行单元,各单元具体功能如上。
服务器可包括,但不仅限于,处理器401、存储器402。本领域技术人员可以理解,图4仅仅是服务器400的示例,并不构成对服务器400的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如转台设备还可以包括输入输出设备、网络接入设备、总线等。
所称处理器401可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器402可以是服务器400的内部存储单元,例如服务器400的硬盘或内存。存储器402也可以是服务器400的外部存储设备,例如服务器400上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器402还可以既包括服务器400的内部存储单元也包括外部存储设备。存储器402用于存储计算机程序以及转台设备所需的其他程序和数据。存储器402还可以用于暂时地存储已经输出或者将要输出的数据。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的模块如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。其中,计算机可读存储介质可以是非易失性的,也可以是易失性的。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,计算机程序包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计算机可读存储介质可以包括:能够携带计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,计算机可读存储介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读存储介质不包括电载波信号和电信信号。
以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。

Claims (10)

1.一种数据同步方法,其特征在于,所述方法包括:
响应于检测到数据定义语言事件,在主数据库上执行所述数据定义语言事件所指示的操作,以及生成用于记录所述数据定义语言事件的操作的第一日志,将所述第一日志缓存至预先建立的第一缓存中;
若预先建立的第二缓存中缓存有用于记录数据操纵语言事件的操作的第二日志,则将所述第一缓存中的第一日志和所述第二缓存中的第二日志,以预设的分隔标识区分写入日志文件中;
根据所述分隔标识,将所述日志文件中的第一日志和第二日志分发至从数据库中的对应工作线程中处理,以便在从数据库上并行执行所述数据定义语言事件和所述数据操纵语言事件。
2.根据权利要求1所述的数据同步方法,其特征在于,所述方法还包括:
向操作系统请求分配两个内存空间,以及将所分配的两个内存空间建立为所述第一缓存和所述第二缓存,其中,所述第一缓存用于存储记录数据定义语言事件的操作的第一日志,所述第二缓存用于存储记录数据操纵语言事件的操作的第二日志。
3.根据权利要求1所述的数据同步方法,其特征在于,所述方法还包括:
响应于检测到所述数据操纵语言事件,在所述主数据库上执行所述数据操纵语言事件所指示的操作,以及生成用于记录所述数据操纵语言事件的操作的所述第二日志,将所述第二日志缓存至预先建立的所述第二缓存中。
4.根据权利要求1所述的数据同步方法,其特征在于,所述根据所述分隔标识,将所述日志文件中的第一日志和第二日志分发至从数据库中的对应工作线程中处理,包括:
将所述日志文件传递至所述从数据库的协作线程,使得所述协作线程在检测到所述日志文件中包括所述分隔标识时,将所述分隔标识两侧的第一日志和第二日志分配至处于空闲状态的对应工作线程中处理。
5.根据权利要求4所述的数据同步方法,其特征在于,若所述日志文件中的第二日志有多个,则所述将所述分隔标识两侧的第一日志和第二日志分配至处于空闲状态的对应工作线程中处理,包括:
将所述分隔标识一侧的第一日志分配至处于空闲状态的第一工作线程中处理,以及将所述分隔标识另一侧的多个第二日志分别分配至处于空闲状态的多个第二工作线程中处理。
6.根据权利要求1所述的数据同步方法,其特征在于,所述方法还包括:
针对每个工作线程,若所述工作线程对目标日志处理完成,则执行预设资源释放函数以释放分配给对目标日志处理完成的所述工作线程的处理资源,以及将对目标日志处理完成的所述工作线程的状态确定为空闲状态,其中,所述目标日志为第一日志或/及第二日志。
7.根据权利要求1-6中任一项所述的数据同步方法,其特征在于,所述方法还包括:
若未检测到数据定义语言事件且所述第二缓存满足预设转写条件,将所述第二缓存中的第二日志写入所述日志文件;
其中,所述预设转写条件包括以下至少一项:所述第二缓存的当前使用率大于预设使用率阈值、达到预设转存周期。
8.一种数据同步装置,其特征在于,所述装置包括:
第一执行单元,用于响应于检测到数据定义语言事件,在主数据库上执行所述数据定义语言事件所指示的操作,以及生成用于记录所述数据定义语言事件的操作的第一日志,将所述第一日志缓存至预先建立的第一缓存中;
数据写入单元,用于若预先建立的第二缓存中缓存有用于记录数据操纵语言事件的操作的第二日志,则将所述第一缓存中的第一日志和所述第二缓存中的第二日志,以预设的分隔标识区分写入日志文件中;
第二执行单元,用于根据所述分隔标识,将所述日志文件中的第一日志和第二日志分发至从数据库中的对应工作线程中处理,以便在从数据库上并行执行所述数据定义语言事件和所述数据操纵语言事件。
9.一种服务器,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述方法的步骤。
CN202110943001.XA 2021-08-17 2021-08-17 数据同步方法、装置、服务器及存储介质 Active CN113626399B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110943001.XA CN113626399B (zh) 2021-08-17 2021-08-17 数据同步方法、装置、服务器及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110943001.XA CN113626399B (zh) 2021-08-17 2021-08-17 数据同步方法、装置、服务器及存储介质

Publications (2)

Publication Number Publication Date
CN113626399A true CN113626399A (zh) 2021-11-09
CN113626399B CN113626399B (zh) 2023-10-20

Family

ID=78386005

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110943001.XA Active CN113626399B (zh) 2021-08-17 2021-08-17 数据同步方法、装置、服务器及存储介质

Country Status (1)

Country Link
CN (1) CN113626399B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114363162A (zh) * 2021-12-31 2022-04-15 支付宝(杭州)信息技术有限公司 区块链日志的生成方法及装置、电子设备、存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6480848B1 (en) * 1999-07-19 2002-11-12 International Business Machines Corporation Extension of data definition language (DDL) capabilities for relational databases for applications issuing DML and DDL statements
CN103729442A (zh) * 2013-12-30 2014-04-16 华为技术有限公司 记录事务日志的方法和数据库引擎
US9734190B1 (en) * 2015-12-07 2017-08-15 Gravic, Inc. Method of ensuring real-time transaction integrity
CN110222114A (zh) * 2019-04-30 2019-09-10 武汉达梦数据库有限公司 数据库中数据双向同步的方法及设备
CN111488243A (zh) * 2020-03-19 2020-08-04 北京金山云网络技术有限公司 MongoDB数据库的备份、恢复方法、装置、电子设备及存储介质
CN112867999A (zh) * 2019-09-27 2021-05-28 易享信息技术有限公司 基于版本的表锁定
CN112860636A (zh) * 2021-01-18 2021-05-28 北京金山云网络技术有限公司 操作数据的存储方法和装置、电子设备和存储介质

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6480848B1 (en) * 1999-07-19 2002-11-12 International Business Machines Corporation Extension of data definition language (DDL) capabilities for relational databases for applications issuing DML and DDL statements
CN103729442A (zh) * 2013-12-30 2014-04-16 华为技术有限公司 记录事务日志的方法和数据库引擎
US9734190B1 (en) * 2015-12-07 2017-08-15 Gravic, Inc. Method of ensuring real-time transaction integrity
CN110222114A (zh) * 2019-04-30 2019-09-10 武汉达梦数据库有限公司 数据库中数据双向同步的方法及设备
CN112867999A (zh) * 2019-09-27 2021-05-28 易享信息技术有限公司 基于版本的表锁定
CN111488243A (zh) * 2020-03-19 2020-08-04 北京金山云网络技术有限公司 MongoDB数据库的备份、恢复方法、装置、电子设备及存储介质
CN112860636A (zh) * 2021-01-18 2021-05-28 北京金山云网络技术有限公司 操作数据的存储方法和装置、电子设备和存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114363162A (zh) * 2021-12-31 2022-04-15 支付宝(杭州)信息技术有限公司 区块链日志的生成方法及装置、电子设备、存储介质
CN114363162B (zh) * 2021-12-31 2024-05-03 支付宝(杭州)信息技术有限公司 区块链日志的生成方法及装置、电子设备、存储介质

Also Published As

Publication number Publication date
CN113626399B (zh) 2023-10-20

Similar Documents

Publication Publication Date Title
CN108052615B (zh) 访问请求的处理方法、装置、介质及电子设备
US10635736B2 (en) System, method and computer program product for data transfer management
CN111615716B (zh) 在客户端机器之间分配着色器来进行预缓存
JP2019029019A (ja) 複数のシステムからのデータのブロックチェーンロギング
CN109766349B (zh) 任务防重方法、装置、计算机设备及存储介质
CN112153085A (zh) 一种数据处理方法、节点及区块链系统
US20120102003A1 (en) Parallel data redundancy removal
US11914565B1 (en) System and method for identifying matching portions of two sets of data in a multiprocessor system
US9619635B2 (en) Biometric authentication apparatus and method
US10102098B2 (en) Method and system for recommending application parameter setting and system specification setting in distributed computation
US20170085653A1 (en) Method, device and system for message distribution
CN112632163B (zh) 大数据报表导出方法及相关设备
CN110618974A (zh) 一种数据存储方法、装置、设备及存储介质
CN111984729A (zh) 异构数据库数据同步方法、装置、介质和电子设备
CN113626399A (zh) 数据同步方法、装置、服务器及存储介质
US10048991B2 (en) System and method for parallel processing data blocks containing sequential label ranges of series data
US11048557B2 (en) Methods and modules relating to allocation of host machines
CN109657167B (zh) 数据采集方法、装置、服务器及存储介质
KR20190017222A (ko) 로그 데이터 분석을 이용한 데이터베이스 복구 속도 향상 기법 및 장치
CN116467085A (zh) 任务处理方法、系统、电子设备及存储介质
CN112823338A (zh) 使用分布式分段处理借用的资源分配
CN109947613B (zh) 文件读取测试方法和装置
CN112256436B (zh) 资源分配方法、装置、设备及计算机存储介质
CN111857548B (zh) 数据读取方法、装置及系统
CN110175036B (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
TA01 Transfer of patent application right

Effective date of registration: 20230913

Address after: 518000 Two 9EF Financial Bases, No. 8 Kefa Road, Nanshan Science Park, Shenzhen City, Guangdong Province

Applicant after: Shenzhen Hengyuanhao Information Technology Co.,Ltd.

Address before: 518000 Room 202, block B, aerospace micromotor building, No.7, Langshan No.2 Road, Xili street, Nanshan District, Shenzhen City, Guangdong Province

Applicant before: Shenzhen LIAN intellectual property service center

Effective date of registration: 20230913

Address after: 518000 Room 202, block B, aerospace micromotor building, No.7, Langshan No.2 Road, Xili street, Nanshan District, Shenzhen City, Guangdong Province

Applicant after: Shenzhen LIAN intellectual property service center

Address before: 518000 Room 201, building A, No. 1, Qian Wan Road, Qianhai Shenzhen Hong Kong cooperation zone, Shenzhen, Guangdong (Shenzhen Qianhai business secretary Co., Ltd.)

Applicant before: PING AN PUHUI ENTERPRISE MANAGEMENT Co.,Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant