CN114253944A - 数据库双向同步方法、装置和电子设备 - Google Patents
数据库双向同步方法、装置和电子设备 Download PDFInfo
- Publication number
- CN114253944A CN114253944A CN202111545783.8A CN202111545783A CN114253944A CN 114253944 A CN114253944 A CN 114253944A CN 202111545783 A CN202111545783 A CN 202111545783A CN 114253944 A CN114253944 A CN 114253944A
- Authority
- CN
- China
- Prior art keywords
- modification
- instruction
- database
- coefficient
- determining
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/219—Managing data history or versioning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2474—Sequence data queries, e.g. querying versioned data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, 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)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及数据同步技术领域,具体公开了一种数据库双向同步方法、装置和电子设备,其中,双向同步方法应用于双向同步设备,该设备可以包括触发器和定时器,具体而言,双向同步方法包括:通过触发器获取对第一数据库的修改动作;通过触发器确定修改动作对应的修改位置,并获取修改位置对应的第一版本号;当第一版本号与存储的第二版本号相同时,通过触发器根据修改动作生成修改指令,并将修改指令发送至更新日志表;通过定时器访问更新日志表,以从更新日志表读取定时周期内的所有修改指令;通过定时器以及所有修改指令,对第二数据库进行数据同步处理,并更新数据同步处理在第二数据库中的同步位置对应的版本号。
Description
技术领域
本发明涉及数据同步技术领域,具体涉及一种数据库双向同步方法、装置和电子设备。
背景技术
目前,随着日益多样化的业务需求,对数据处理系统的自定义程度的要求也越来越高。通常而言,为了实现数据处理系统的高度自定义,需要完成数据库的去oracle化,其中,涉及到oracle到mysql的数据同步。同时,还需要对原有系统的数据表进行拆分合并。由此,数据的双向同步在高程度自定义的数据处理系统中显得尤为重要。但是,现有的数据仓库技术(Extract-Transform-Load,ETL)无法满足双向同步的需求,且目前跨数据库的双向同步也多是由分开进行的多个单向同步进行组合进行的,并不是实际意义上的双向同步。并而,多个单向同步之间没有交互,难以保证数据库中数据的最终一致性。因此,目前亟需一种可以实现高度自定义的数据库双向同步方法。
发明内容
为了解决现有技术中存在的上述问题,本申请实施方式提供了一种数据库双向同步方法、装置和电子设备,可以实现高度自定义的跨数据库双向同步。
第一方面,本申请的实施方式提供了一种数据库双向同步方法,该方法应用于双向同步设备,该设备包括触发器和定时器,其中,该方法包括:
通过触发器获取对第一数据库的修改动作;
通过触发器确定修改动作对应的修改位置,并获取修改位置对应的第一版本号;
当第一版本号与存储的第二版本号相同时,通过触发器根据修改动作生成修改指令,并将修改指令发送至更新日志表;
通过定时器访问更新日志表,以从更新日志表读取定时周期内的所有修改指令;
通过定时器以及所有修改指令,对第二数据库进行数据同步处理,并更新数据同步处理在第二数据库中的同步位置对应的版本号。
第二方面,本申请的实施方式提供了一种数据库双向同步装置,该装置包括:触发器和定时器,其中:
触发器,用于获取对第一数据库的修改动作,并确定修改动作对应的修改位置,并获取修改位置对应的第一版本号;
触发器,还用于在第一版本号与存储的第二版本号相同时,根据修改动作生成修改指令,并将修改指令发送至更新日志表;
定时器,用于访问更新日志表,以从更新日志表读取定时周期内的所有修改指令;
定时器,还用于根据所有修改指令,对第二数据库进行数据同步处理,并更新数据同步处理在第二数据库中的同步位置对应的版本号。
第三方面,本申请实施方式提供一种电子设备,包括:处理器,处理器与存储器相连,存储器用于存储计算机程序,处理器用于执行存储器中存储的计算机程序,以使得电子设备执行如第一方面的方法。
第四方面,本申请实施方式提供一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序使得计算机执行如第一方面的方法。
第五方面,本申请实施方式提供一种计算机程序产品,计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,计算机可操作来使计算机执行如第一方面的方法。
实施本申请实施方式,具有如下有益效果:
在本申请实施方式中,通过触发器获取对第一数据库的修改动作,从而确定该修改动作对应的修改位置,并获取修改位置对应的第一版本号。然后,在第一版本号与存储的第二版本号相同时,通过触发器根据该修改动作生成修改指令,并将修改指令发送至更新日志表。继而通过定时器定时访问该更新日志表,以从更新日志表读取定时周期内由触发器发送过来的若干条修改指令。最后,通过定时器执行该若干条修改指令,从而对第二数据库进行数据同步处理,并更新数据同步处理在第二数据库中的同步位置对应的版本号。由此,通过设立版本号,并比对修改动作前后,被修改的位置的版本号的变化,区分该修改动作是由同步设备改动的还是由外部环境中的人或设备改动的,从而针对由外部环境中的人或设备的改动进行后续同步,避免了双向同步中的死循环问题。同时,建立更新日志表,通过定时访问的方式实现双向数据同步,由此,在数据同步的同时,不会影响到原数据的正常使用。且定时的方式也实现了对双向同步处理的高度自定义,适用范围更广。
附图说明
为了更清楚地说明本申请实施方式中的技术方案,下面将对实施方式描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施方式提供的一种数据库双向同步装置的硬件结构示意图;
图2为本申请实施方式提供的一种数据库双向同步方法的交互图;
图3为本申请实施方式提供的一种根据所有修改指令,对第二数据库进行数据同步处理的方法的流程示意图;
图4为本申请实施方式提供的一种数据库双向同步装置的功能模块组成框图;
图5为本申请实施方式提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本申请实施方式中的附图,对本申请实施方式中的技术方案进行清楚、完整地描述,显然,所描述的实施方式是本申请一部分实施方式,而不是全部的实施方式。基于本申请中的实施方式,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施方式,都属于本申请保护的范围。
本申请的说明书和权利要求书及所述附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本文中提及“实施方式”意味着,结合实施方式描述的特定特征、结果或特性可以包含在本申请的至少一个实施方式中。在说明书中的各个位置出现该短语并不一定均是指相同的实施方式,也不是与其它实施方式互斥的独立的或备选的实施方式。本领域技术人员显式地和隐式地理解的是,本文所描述的实施方式可以与其它实施方式相结合。
首先,参阅图1,图1为本申请实施方式提供的一种数据库双向同步装置的硬件结构示意图。该双向同步装置100包括至少一个处理器101,通信线路102,存储器103以及至少一个通信接口104。
在本实施方式中,处理器101,可以是一个通用中央处理器(central processingunit,CPU),微处理器,特定应用集成电路(application-specific integrated circuit,ASIC),或一个或多个用于控制本申请方案程序执行的集成电路。
通信线路102,可以包括一通路,在上述组件之间传送信息。
通信接口104,可以是任何收发器一类的装置(如天线等),用于与其他设备或通信网络通信,例如以太网,RAN,无线局域网(wireless local area networks,WLAN)等。
存储器103,可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically erasable programmable read-only memory,EEPROM)、只读光盘(compactdisc read-only memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
在本实施方式中,存储器103可以独立存在,通过通信线路102与处理器101相连接。存储器103也可以和处理器101集成在一起。本申请实施方式提供的存储器103通常可以具有非易失性。其中,存储器103用于存储执行本申请方案的计算机执行指令,并由处理器101来控制执行。处理器101用于执行存储器103中存储的计算机执行指令,从而实现本申请下述实施方式中提供的方法。
在可选的实施方式中,计算机执行指令也可以称之为应用程序代码,本申请对此不作具体限定。
在可选的实施方式中,处理器101可以包括一个或多个CPU,例如图1中的CPU0和CPU1。
在可选的实施方式中,该双向同步装置100可以包括多个处理器,例如图1中的处理器101和处理器107。这些处理器中的每一个可以是一个单核(single-CPU)处理器,也可以是一个多核(multi-CPU)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。
在可选的实施方式中,若双向同步装置100为服务器,例如,可以是独立的服务器,也可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(ContentDelivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。则双向同步装置100还可以包括输出设备105和输入设备106。输出设备105和处理器101通信,可以以多种方式来显示信息。例如,输出设备105可以是液晶显示器(liquid crystal display,LCD),发光二级管(light emittingdiode,LED)显示设备,阴极射线管(cathode ray tube,CRT)显示设备,或投影仪(projector)等。输入设备106和处理器101通信,可以以多种方式接收用户的输入。例如,输入设备106可以是鼠标、键盘、触摸屏设备或传感设备等。
上述的双向同步装置100可以是一个通用设备或者是一个专用设备。本申请实施方式不限定双向同步装置100的类型。
其次,需要说明的是,本申请所公开的实施方式可以基于人工智能技术对相关的数据进行获取和处理。其中,人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。
人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、机器人技术、生物识别技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
以下,将对本申请所公开的数据库双向同步方法进行说明:
参阅图2,图2为本申请实施方式提供的一种数据库双向同步方法的交互图,如图2所示,该双向同步方法应用于双向同步设备,该双向同步设备可以包括触发器和定时器。具体而言,该双向同步方法包括以下步骤:
201、获取对第一数据库的修改动作。
在本实施方式中,该双向同步设备可以包括多个触发器,该多个触发器可以分别配置于第一数据库和第二数据库中的每个数据表上。换而言之,第一数据库和第二数据库中的每个数据表均配置有一个对应的触发器,两者之间为一一对应的关系。基于此,当第一数据库或第二数据库中的某个数据表被改动时,配置于该数据表的触发器就会被触发,继而记录对该数据表的修改动作。
在本实施方式中,将以对第一数据表进行改动,从而触发双向同步,将改动同步给第二数据库的情况进行说明。基于此,以下所出现的“触发器”若没有明确指向说明,则应当理解为设置于第一数据库中的触发器。
在可选的实施方式中,该触发器还可以分为三种类型,分别为:增加触发器、删除触发器和修改触发器。该三种类型的触发器可以分别对应增加数据、删除数据和修改数据三种修改动作。由此,在可选的实施方式中,可以使第一数据库和第二数据库中的每个数据表分别配置上述三种触发器,从而在每个数据表发生改动后,可以根据改动的类型,触发相应类型的触发器进行后续的处理,继而提高处理效率,使双向同步的实时性进一步上升。
202、确定修改动作对应的修改位置,并获取修改位置对应的第一版本号。
在本实施方式中,修改动作对应的修改位置可以理解为该修改动作所修改的数据的位置。基于此,修改位置对应的第一版本号即为被该修改动作所修改的数据对应的第一版本号。具体而言,在本实施方式中,第一数据库和第二数据库中的每个数据表中的每一行数据均会配置一个专有的版本号。
同时,每个数据表对应的触发器中也会维护一个版本号表格,其中记录了该触发器上一次获取的各个修改位置的版本号。具体而言,在第一数据库和第二数据库中的每个数据表中的每一行数据被修改时,该行数据对应的数据表的触发器会读取一次该行数据对应的版本号,并对版本号表格进行更新维护。
203、当第一版本号与存储的第二版本号相同时,根据修改动作生成修改指令,并将修改指令发送至更新日志表。
在本实施方式中,该第二版本号即为步骤202中所提及的触发器上一次获取的该修改动作对应的修改位置的版本号,换句话说,即触发器中维护的版本号表格中,该修改位置对应的版本号。基于此,在触发器确定了该修改动作对应的修改位置后,即可根据该修改位置查询版本号表格,获取对应修改位置的第二版本号。
在本实施方式中,预先设置在双向同步设备对数据进行同步时,才会在同步完成时,更新被同步的数据的版本号。基于此,当第一版本号与第二版本号相同时,则说明该修改动作不是由双向同步设备进行数据同步所产生的,而是由外部环境中的人或设备对数据库进行数据修改所产生的,这种改动是需要进行数据同步的。因此,在本实施方式中,只有在检测到修改动作,且修改动作对应的修改位置对应的版本号在修改前后一致时,才会触发指令生成操作,记录修改动作的修改位置,修改类型和修改内容,生成相应的修改指令,并发送至更新日志表,即changelog表中进行存储。
在可选的实施方式中,在根据修改动作生成修改指令之后,触发器还可以确定修改动作的修改类型,从而根据修改类型确定修改动作的第一优先级,并将该第一优先级添加入修改指令中。示例性的,可以对新增操作赋予最高等级的优先级,对修改操作赋予中间等级的优先级,对删除操作赋予最低等级的优先级。同时,结合步骤201中触发器可以分为三种类型的实施方式,在此可以直接根据被触发的触发器自身的类别对修改指令赋予第一优先级,从而省去了确定修改动作的修改类型的步骤,提升了数据同步效率。
204、访问更新日志表,以从更新日志表读取定时周期内的所有修改指令。
在本实施方式中,由步骤203所生成的修改指令可以理解为访问更新日志时所读取的所有修改指令中的一条。具体而言,在本实施方式中,定时器通过预设的时间周期访问该changelog表,从而获取在定时周期内,即上一次访问和这一次访问之间的这段时间内,changelog表中新增的若干个修改指令作为该至少一个修改指令。
205、根据所有修改指令,对第二数据库进行数据同步处理,并更新数据同步处理在第二数据库中的同步位置对应的版本号。
在本实施方式中,提供了一种根据所有修改指令,对第二数据库进行数据同步处理的方法,如图3所示,该方法包括:
301:确定所有修改指令中的每条修改指令的运行时间和等待时间。
在本实施方式中,每条修改指令的运行时间指运行完该指令所需要的时间,可以对每条修改指令中包括的修改步骤进行分析来预测。例如,修改指令包括修改步骤A、修改步骤B和修改步骤C。查询运行历史,得到修改步骤A的平均运行时长为x、修改步骤B的平均运行时长为y和修改步骤C的平均运行时长为z,则可以得到该修改指令的运行时间为:x+y+z。
在本实施方式中,每条修改指令的等待时间指该修改指令从生成到被定时器调用之间所间隔的时间。
302:确定数据同步处理的总运行时间。
在本实施方式中,该数据同步处理的总运行时间可以等于定时器访问更新日志表的定时周期。
303:根据总运行时间和每条修改指令的运行时间,确定每条修改指令的第一系数。
在本实施方式中,可以通过确定每条修改指令的运行时间在总运行时间中的占比,继而将占比的倒数,作为该第一系数。具体而言,第一系数可以通过公式①表示:
其中,t1为第一系数,q为每条修改指令的运行时间,p为总运行时间。
304:根据每条修改指令的等待时间和每条修改指令的修改类型,确定每条修改指令的第二系数。
在本实施方式中,根据每条修改指令的修改类型,确定每条第二指令的等待时间阈值。从而,在每条第二指令的等待时间大于或等于每条第二指令的等待时间阈值时,将每条第二指令的等待时间和每条第二指令的等待时间阈值的和作为第二系数;在每条第二指令的等待时间小于每条第二指令的等待时间阈值时,将每条第二指令的等待时间作为第二系数。具体而言,第一系数可以通过公式②表示:
其中,t2为第二系数,k为每条第二指令的等待时间,j为每条第二指令的等待时间阈值。
305:根据每条修改指令的第一系数、每条修改指令的第二系数和每条修改指令的第一优先级,确定每条修改指令的第二优先级。
在本实施方式中,可以根据预设的权重,将第一系数和第二系数加权求和,得到第三系数,再将第三系数和第一优先级的积,作为第二优先级。
306:根据每条修改指令的第二优先级,依次执行所有修改指令,对第二数据库进行数据同步处理。
同时,在本实施方式中,可以通过将第二数据库中的同步位置对应的版本号加一的方式,对第二数据库中的同步位置对应的版本号进行更新。
基于此,即便第二数据库中发生了修改动作,但是由于该修改动作在修改的同时,更新了同步位置对应的版本号。从而使被修改的位置的版本号在修改前后不一致,便不会触发第二数据库中的触发器的指令生成环节,避免了双向同步中的死循环问题。
此外,对于第二数据库中发生的由外部环境中的人或设备执行的改动,其同步方式和第一数据库中的同步方式一致,在此不再赘述。
综上所述,本发明所提供的数据库双向同步方法中,通过触发器获取对第一数据库的修改动作,从而确定该修改动作对应的修改位置,并获取修改位置对应的第一版本号。然后,在第一版本号与存储的第二版本号相同时,通过触发器根据该修改动作生成修改指令,并将修改指令发送至更新日志表。继而通过定时器定时访问该更新日志表,以从更新日志表读取定时周期内由触发器发送过来的若干条修改指令。最后,通过定时器执行该若干条修改指令,从而对第二数据库进行数据同步处理,并更新数据同步处理在第二数据库中的同步位置对应的版本号。由此,通过设立版本号,并比对修改动作前后,被修改的位置的版本号的变化,区分该修改动作是由同步设备改动的还是由外部环境中的人或设备改动的,从而针对由外部环境中的人或设备的改动进行后续同步,避免了双向同步中的死循环问题。同时,建立更新日志表,通过定时访问的方式实现双向数据同步,由此,在数据同步的同时,不会影响到原数据的正常使用。且定时的方式也实现了对双向同步处理的高度自定义,适用范围更广。
参阅图4,图4为本申请实施方式提供的一种数据库双向同步装置的功能模块组成框图。如图4所示,该双向同步装置400包括:触发器401和定时器402,其中:
触发器401,用于获取对第一数据库的修改动作,并确定修改动作对应的修改位置,并获取修改位置对应的第一版本号;
触发器401,还用于在第一版本号与存储的第二版本号相同时,根据修改动作生成修改指令,并将修改指令发送至更新日志表;
定时器402,用于访问更新日志表,以从更新日志表读取定时周期内的所有修改指令;
定时器402,还用于根据所有修改指令,对第二数据库进行数据同步处理,并更新数据同步处理在第二数据库中的同步位置对应的版本号。
在本发明的实施方式中,在根据修改动作生成修改指令之后,触发器401,还用于:
确定修改动作的修改类型;
根据修改类型确定修改动作的第一优先级;
将第一优先级添加入修改指令中。
在本发明的实施方式中,在根据所有修改指令,对第二数据库进行数据同步处理方面,定时器402,具体用于:
确定所有修改指令中的每条修改指令的运行时间和等待时间;
确定数据同步处理的总运行时间;
根据总运行时间和每条修改指令的运行时间,确定每条修改指令的第一系数;
根据每条修改指令的等待时间和每条修改指令的修改类型,确定每条修改指令的第二系数;
根据每条修改指令的第一系数、每条修改指令的第二系数和每条修改指令的第一优先级,确定每条修改指令的第二优先级;
根据每条修改指令的第二优先级,依次执行所有修改指令,对第二数据库进行数据同步处理。
在本发明的实施方式中,在根据总运行时间和每条修改指令的运行时间,确定每条修改指令的第一系数方面,定时器402,具体用于:
确定每条修改指令的运行时间在总运行时间中的占比;
将占比的倒数,作为第一系数。
在本发明的实施方式中,在根据每条修改指令的等待时间和每条修改指令的修改类型,确定每条修改指令的第二系数方面,定时器402,具体用于:
根据每条修改指令的修改类型,确定每条第二指令的等待时间阈值;
当每条第二指令的等待时间大于或等于每条第二指令的等待时间阈值时,将每条第二指令的等待时间和每条第二指令的等待时间阈值的和作为第二系数;
当每条第二指令的等待时间小于每条第二指令的等待时间阈值时,将每条第二指令的等待时间作为第二系数。
在本发明的实施方式中,在根据每条修改指令的第一系数、每条修改指令的第二系数和每条修改指令的第一优先级,确定每条修改指令的第二优先级方面,定时器402,具体用于:
根据预设的权重,将第一系数和第二系数加权求和,得到第三系数;
将第三系数和第一优先级的积,作为第二优先级。
在本发明的实施方式中,数据同步处理的总运行时间可以等于定时器访问更新日志表的定时周期。
参阅图5,图5为本申请实施方式提供的一种电子设备的结构示意图。如图5所示,电子设备500包括收发器501、处理器502和存储器503。它们之间通过总线504连接。存储器503用于存储计算机程序和数据,并可以将存储器503存储的数据传输给处理器502。
处理器502用于读取存储器503中的计算机程序执行以下操作:
通过触发器获取对第一数据库的修改动作;
通过触发器确定修改动作对应的修改位置,并获取修改位置对应的第一版本号;
当第一版本号与存储的第二版本号相同时,通过触发器根据修改动作生成修改指令,并将修改指令发送至更新日志表;
通过定时器访问更新日志表,以从更新日志表读取定时周期内的所有修改指令;
通过定时器以及所有修改指令,对第二数据库进行数据同步处理,并更新数据同步处理在第二数据库中的同步位置对应的版本号。
在本发明的实施方式中,在通过触发器根据修改动作生成修改指令之后,处理器502,还用于执行以下操作:
确定修改动作的修改类型;
根据修改类型确定修改动作的第一优先级;
将第一优先级添加入修改指令中。
在本发明的实施方式中,在通过定时器以及所有修改指令,对第二数据库进行数据同步处理方面,处理器502,具体用于执行以下操作:
确定所有修改指令中的每条修改指令的运行时间和等待时间;
确定数据同步处理的总运行时间;
根据总运行时间和每条修改指令的运行时间,确定每条修改指令的第一系数;
根据每条修改指令的等待时间和每条修改指令的修改类型,确定每条修改指令的第二系数;
根据每条修改指令的第一系数、每条修改指令的第二系数和每条修改指令的第一优先级,确定每条修改指令的第二优先级;
根据每条修改指令的第二优先级,依次执行所有修改指令,对第二数据库进行数据同步处理。
在本发明的实施方式中,在根据总运行时间和每条修改指令的运行时间,确定每条修改指令的第一系数方面,处理器502,具体用于执行以下操作:
确定每条修改指令的运行时间在总运行时间中的占比;
将占比的倒数,作为第一系数。
在本发明的实施方式中,在根据每条修改指令的等待时间和每条修改指令的修改类型,确定每条修改指令的第二系数方面,处理器502,具体用于执行以下操作:
根据每条修改指令的修改类型,确定每条第二指令的等待时间阈值;
当每条第二指令的等待时间大于或等于每条第二指令的等待时间阈值时,将每条第二指令的等待时间和每条第二指令的等待时间阈值的和作为第二系数;
当每条第二指令的等待时间小于每条第二指令的等待时间阈值时,将每条第二指令的等待时间作为第二系数。
在本发明的实施方式中,在根据每条修改指令的第一系数、每条修改指令的第二系数和每条修改指令的第一优先级,确定每条修改指令的第二优先级方面,处理器502,具体用于执行以下操作:
根据预设的权重,将第一系数和第二系数加权求和,得到第三系数;
将第三系数和第一优先级的积,作为第二优先级。
在本发明的实施方式中,数据同步处理的总运行时间可以等于定时器访问更新日志表的定时周期。
应理解,本申请中的数据库双向同步装置可以包括智能手机(如Android手机、iOS手机、Windows Phone手机等)、平板电脑、掌上电脑、笔记本电脑、移动互联网设备MID(Mobile Internet Devices,简称:MID)、机器人或穿戴式设备等。上述数据库双向同步装置仅是举例,而非穷举,包含但不限于上述数据库双向同步装置。在实际应用中,上述数据库双向同步装置还可以包括:智能车载终端、计算机设备等等。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件结合硬件平台的方式来实现。基于这样的理解,本发明的技术方案对背景技术做出贡献的全部或者部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施方式或者实施方式的某些部分所述的方法。
因此,本申请实施方式还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行以实现如上述方法实施方式中记载的任何一种数据库双向同步方法的部分或全部步骤。例如,所述存储介质可以包括硬盘、软盘、光盘、磁带、磁盘、优盘、闪存等。
本申请实施方式还提供一种计算机程序产品,所述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,所述计算机程序可操作来使计算机执行如上述方法实施方式中记载的任何一种数据库双向同步方法的部分或全部步骤。
需要说明的是,对于前述的各方法实施方式,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施方式均属于可选的实施方式,所涉及的动作和模块并不一定是本申请所必须的。
在上述实施方式中,对各个实施方式的描述都各有侧重,某个实施方式中没有详述的部分,可以参见其他实施方式的相关描述。
在本申请所提供的几个实施方式中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施方式仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。
另外,在本申请各个实施方式中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件程序模块的形式实现。
所述集成的单元如果以软件程序模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施方式所述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本领域普通技术人员可以理解上述实施方式的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取器(英文:Random Access Memory,简称:RAM)、磁盘或光盘等。
以上对本申请实施方式进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施方式的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种数据库双向同步方法,其特征在于,所述方法应用于双向同步设备,所述设备包括触发器和定时器,所述方法包括:
通过所述触发器获取对第一数据库的修改动作;
通过所述触发器确定所述修改动作对应的修改位置,并获取所述修改位置对应的第一版本号;
当所述第一版本号与存储的第二版本号相同时,通过所述触发器根据所述修改动作生成修改指令,并将所述修改指令发送至更新日志表;
通过所述定时器访问所述更新日志表,以从所述更新日志表读取定时周期内的所有修改指令;
通过所述定时器以及所述所有修改指令,对第二数据库进行数据同步处理,并更新所述数据同步处理在所述第二数据库中的同步位置对应的版本号。
2.根据权利要求1所述的方法,其特征在于,在所述通过所述触发器根据所述修改动作生成修改指令之后,所述方法还包括:
确定所述修改动作的修改类型;
根据所述修改类型确定所述修改动作的第一优先级;
将所述第一优先级添加入所述修改指令中。
3.根据权利要求2所述的方法,其特征在于,所述通过所述定时器以及所述所有修改指令,对第二数据库进行数据同步处理,包括:
确定所述所有修改指令中的每条修改指令的运行时间和等待时间;
确定所述数据同步处理的总运行时间;
根据所述总运行时间和所述每条修改指令的运行时间,确定所述每条修改指令的第一系数;
根据所述每条修改指令的等待时间和所述每条修改指令的修改类型,确定所述每条修改指令的第二系数;
根据所述每条修改指令的第一系数、所述每条修改指令的第二系数和所述每条修改指令的第一优先级,确定所述每条修改指令的第二优先级;
根据所述每条修改指令的第二优先级,依次执行所述所有修改指令,对所述第二数据库进行数据同步处理。
4.根据权利要求3所述的方法,其特征在于,所述根据所述总运行时间和所述每条修改指令的运行时间,确定所述每条修改指令的第一系数,包括:
确定所述每条修改指令的运行时间在所述总运行时间中的占比;
将所述占比的倒数,作为所述第一系数。
5.根据权利要求3所述的方法,其特征在于,所述根据所述每条修改指令的等待时间和所述每条修改指令的修改类型,确定所述每条修改指令的第二系数,包括:
根据所述每条修改指令的修改类型,确定所述每条第二指令的等待时间阈值;
当所述每条第二指令的等待时间大于或等于所述每条第二指令的等待时间阈值时,将所述每条第二指令的等待时间和所述每条第二指令的等待时间阈值的和作为所述第二系数;
当所述每条第二指令的等待时间小于所述每条第二指令的等待时间阈值时,将所述每条第二指令的等待时间作为所述第二系数。
6.根据权利要求3所述的方法,其特征在于,所述根据所述每条修改指令的第一系数、所述每条修改指令的第二系数和所述每条修改指令的第一优先级,确定所述每条修改指令的第二优先级,包括:
根据预设的权重,将所述第一系数和所述第二系数加权求和,得到第三系数;
将所述第三系数和所述第一优先级的积,作为所述第二优先级。
7.根据权利要求3-6中任意一项所述的方法,其特征在于,
所述数据同步处理的总运行时间等于所述定时器访问所述更新日志表的定时周期。
8.一种数据库双向同步装置,其特征在于,所述装置包括:
触发器和定时器,其中:
所述触发器,用于获取对第一数据库的修改动作,并确定所述修改动作对应的修改位置,并获取所述修改位置对应的第一版本号;
所述触发器,还用于在所述第一版本号与存储的第二版本号相同时,根据所述修改动作生成修改指令,并将所述修改指令发送至更新日志表;
所述定时器,用于访问所述更新日志表,以从所述更新日志表读取定时周期内新增的所有修改指令;
所述定时器,还用于根据所述所有修改指令,对第二数据库进行数据同步处理,并更新所述数据同步处理在所述第二数据库中的同步位置对应的版本号。
9.一种电子设备,其特征在于,包括处理器、存储器、通信接口以及一个或多个程序,其中,所述一个或多个程序被存储在所述存储器中,并且被配置由所述处理器执行,所述一个或多个程序包括用于执行权利要求1-7任一项方法中的步骤的指令。
10.一种可读计算机存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行以实现如权利要求1-7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111545783.8A CN114253944B (zh) | 2021-12-16 | 2021-12-16 | 数据库双向同步方法、装置和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111545783.8A CN114253944B (zh) | 2021-12-16 | 2021-12-16 | 数据库双向同步方法、装置和电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114253944A true CN114253944A (zh) | 2022-03-29 |
CN114253944B CN114253944B (zh) | 2022-10-04 |
Family
ID=80792697
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111545783.8A Active CN114253944B (zh) | 2021-12-16 | 2021-12-16 | 数据库双向同步方法、装置和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114253944B (zh) |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104699712A (zh) * | 2013-12-09 | 2015-06-10 | 阿里巴巴集团控股有限公司 | 对数据库中的库存记录信息进行更新的方法及装置 |
CN106713392A (zh) * | 2015-11-13 | 2017-05-24 | 阿里巴巴集团控股有限公司 | 数据同步方法、装置和系统 |
CN107102894A (zh) * | 2017-04-07 | 2017-08-29 | 百度在线网络技术(北京)有限公司 | 任务调度方法、装置和系统 |
CN108347480A (zh) * | 2018-01-30 | 2018-07-31 | 深圳阿凡达智控有限公司 | 数据同步方法、装置及电子烟 |
CN109413127A (zh) * | 2017-08-18 | 2019-03-01 | 北京京东尚科信息技术有限公司 | 一种数据同步方法和装置 |
CN109471851A (zh) * | 2018-10-17 | 2019-03-15 | 上海达梦数据库有限公司 | 数据处理方法、装置、服务器和存储介质 |
CN110769061A (zh) * | 2019-10-24 | 2020-02-07 | 华为技术有限公司 | 一种数据同步的方法及设备 |
CN111708841A (zh) * | 2020-06-08 | 2020-09-25 | 中国工商银行股份有限公司 | 数据库数据同步方法及装置 |
CN112579695A (zh) * | 2019-09-29 | 2021-03-30 | 北京京东拓先科技有限公司 | 一种数据同步方法和装置 |
CN112839067A (zh) * | 2019-11-22 | 2021-05-25 | 腾讯科技(深圳)有限公司 | 一种数据同步方法及装置 |
CN113220669A (zh) * | 2021-06-09 | 2021-08-06 | 京东科技控股股份有限公司 | 业务数据的处理方法、装置及电子设备 |
US20210365410A1 (en) * | 2019-09-17 | 2021-11-25 | Syncari, Inc. | Multidirectional synchronization of cloud application data |
CN113761052A (zh) * | 2020-11-27 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 数据库同步方法和装置 |
CN113779143A (zh) * | 2021-08-20 | 2021-12-10 | 中国邮政储蓄银行股份有限公司 | 双活数据中心和业务系统 |
-
2021
- 2021-12-16 CN CN202111545783.8A patent/CN114253944B/zh active Active
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104699712A (zh) * | 2013-12-09 | 2015-06-10 | 阿里巴巴集团控股有限公司 | 对数据库中的库存记录信息进行更新的方法及装置 |
CN106713392A (zh) * | 2015-11-13 | 2017-05-24 | 阿里巴巴集团控股有限公司 | 数据同步方法、装置和系统 |
CN107102894A (zh) * | 2017-04-07 | 2017-08-29 | 百度在线网络技术(北京)有限公司 | 任务调度方法、装置和系统 |
CN109413127A (zh) * | 2017-08-18 | 2019-03-01 | 北京京东尚科信息技术有限公司 | 一种数据同步方法和装置 |
CN108347480A (zh) * | 2018-01-30 | 2018-07-31 | 深圳阿凡达智控有限公司 | 数据同步方法、装置及电子烟 |
CN109471851A (zh) * | 2018-10-17 | 2019-03-15 | 上海达梦数据库有限公司 | 数据处理方法、装置、服务器和存储介质 |
US20210365410A1 (en) * | 2019-09-17 | 2021-11-25 | Syncari, Inc. | Multidirectional synchronization of cloud application data |
CN112579695A (zh) * | 2019-09-29 | 2021-03-30 | 北京京东拓先科技有限公司 | 一种数据同步方法和装置 |
CN110769061A (zh) * | 2019-10-24 | 2020-02-07 | 华为技术有限公司 | 一种数据同步的方法及设备 |
CN112839067A (zh) * | 2019-11-22 | 2021-05-25 | 腾讯科技(深圳)有限公司 | 一种数据同步方法及装置 |
CN111708841A (zh) * | 2020-06-08 | 2020-09-25 | 中国工商银行股份有限公司 | 数据库数据同步方法及装置 |
CN113761052A (zh) * | 2020-11-27 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 数据库同步方法和装置 |
CN113220669A (zh) * | 2021-06-09 | 2021-08-06 | 京东科技控股股份有限公司 | 业务数据的处理方法、装置及电子设备 |
CN113779143A (zh) * | 2021-08-20 | 2021-12-10 | 中国邮政储蓄银行股份有限公司 | 双活数据中心和业务系统 |
Non-Patent Citations (5)
Title |
---|
FKVISION: "同步数据_多终端数据同步机制设计https://blog.csdn.net/weixin_33308579/article/details/112660285", 《CSDN》 * |
JUE WANG,DONG-SONG ZHANG: "Research and Design of Distributed Database Synchronization System Based on Middleware", 《2015 8TH INTERNATIONAL CONFERENCE ON INTELLIGENT COMPUTATION TECHNOLOGY AND AUTOMATION (ICICTA)》 * |
MERLINSZ: "利用触发器实现两个数据库的数据同步https://blog.csdn.net/weixin_41972401/article/details/103825056", 《CSDN》 * |
冼啟铭: "大数据量下异构数据库的数据同步系统的设计与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
董朋志: "云环境下数据库同步服务的研究与实现", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
Also Published As
Publication number | Publication date |
---|---|
CN114253944B (zh) | 2022-10-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2021042515A1 (zh) | 图数据存储和查询方法、装置及计算机可读存储介质 | |
CN106462561B (zh) | 优化浏览器渲染过程 | |
CN108874924A (zh) | 搜索服务的创建方法、装置及计算机可读存储介质 | |
US20160246837A1 (en) | Methods, apparatuses and computer program products for enabling intelligent merging of modified data | |
CN105138649A (zh) | 数据的搜索方法、装置及终端 | |
US20230012642A1 (en) | Method and device for snapshotting metadata, and storage medium | |
JP7366664B2 (ja) | オフラインブリーフケース同期 | |
CN111858612B (zh) | 基于图数据库的数据加速访问方法、装置及存储介质 | |
US20180375788A1 (en) | Cloud Extensibility Framework | |
CN115795521B (zh) | 访问控制方法、装置、电子设备及存储介质 | |
CN114253944B (zh) | 数据库双向同步方法、装置和电子设备 | |
CN115455006A (zh) | 数据处理方法、数据处理装置、电子设备及存储介质 | |
CN115809304A (zh) | 字段级血缘解析方法、装置、计算机设备、存储介质 | |
CN115454971A (zh) | 数据迁移方法、装置、电子设备及存储介质 | |
CN115168358A (zh) | 数据库访问方法、装置、电子设备及存储介质 | |
US11232172B2 (en) | Collaborative web application and data system | |
CN111858652A (zh) | 基于消息队列的跨数据源查询方法、系统及服务器节点 | |
CN113127496A (zh) | 数据库中变更数据的确定方法及装置、介质和设备 | |
CN112232027A (zh) | 一种符号翻译方法、装置、设备和计算机可读存储介质 | |
CN111582480A (zh) | 用于对模型剪枝的方法和装置 | |
EP4131017A2 (en) | Distributed data storage | |
CN110851192A (zh) | 一种响应降级开关配置的方法和装置 | |
CN107633027A (zh) | 数据处理方法及装置 | |
CN113434595A (zh) | 数据库同步方法、装置、电子设备和存储介质 | |
CN113641697B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |