CN116069859A - 数据库的增量数据同步方法、存储介质与计算机设备 - Google Patents
数据库的增量数据同步方法、存储介质与计算机设备 Download PDFInfo
- Publication number
- CN116069859A CN116069859A CN202310029549.2A CN202310029549A CN116069859A CN 116069859 A CN116069859 A CN 116069859A CN 202310029549 A CN202310029549 A CN 202310029549A CN 116069859 A CN116069859 A CN 116069859A
- Authority
- CN
- China
- Prior art keywords
- synchronization
- database
- synchronous
- target database
- sentences
- 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
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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/275—Synchronous replication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1865—Transactional file systems
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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
技术领域
本发明涉及数据库技术领域,特别是涉及一种数据库的增量数据同步方法、存储介质与计算机设备。
背景技术
利用数据同步工具进行数据实时同步的过程分为三个阶段:第一阶段进行存量数据的初始化装载,获得数据同步的基础点;第二阶段以上述基础点为基准进行增量数据同步;第三阶段定期对数据同步的源端数据和目标数据进行比对校验,以确认在数据同步过程中没有丢失数据。其中第二阶段和第三阶段会处于长时间并行状态。
第二阶段增量数据同步的现有技术一般为通过分析数据库日志获取增量数据,从而实现数据实时同步。这种技术通过解析源数据库在线重做日志或者归档日志,获得数据的增删改变化,再将这些变化以事务为单位转换为同步软件内部特定的消息格式,通过数据同步软件的私有传输协议发送到目标端数据同步软件,最后目标端数据同步软件将获取到的事务日志恢复成目标数据库支持的SQL语句并在目标端数据库上执行,来实现数据的实时同步,保持源端和目标端数据库的数据一致性。
数据同步软件在进行增量数据同步时,并不会关心源端执行的原始SQL语句(实际上由于数据同步软件仅能访问数据库的重做日志,并无法知道源端数据库执行的原始SQL语句),而是根据源端数据库中执行SQL生成的重做日志内容,分析出数据库的增量数据,进行同步。
在源端数据库的表数据按时间分布的特征并且源端应用定期清理过期数据的应用场景中,源端一条简单的DELETE语句就会生成大量的数据库日志,反映到数据同步软件中时就是一个超大事务,此类超大事务会对数据同步软件的同步性能会产生灾难性的影响。比如针对表1所示的表结构:
表1
如果每天产生100万条记录,而数据库配置为每天删除30天前数据库的情况下,也即数据库每天执行DELETE语句:
DELETE FROM TAB WHERE record_time<(SYSDATE-30);
那么DELETE语句就会在重做日志中生成一个100万条删除记录的大事务,此事务在目标端同步入库时,执行时间会很长。假设每条记录的删除执行10ms,那么100万条删除记录会占用近3个小时的时间,这会阻碍其他事务的执行,造成数据同步的性能下降。
发明内容
本发明的一个目的是要提供一种提升数据性能,缩短同步时间的数据库的增量数据同步方法、存储介质与计算机设备。
本发明一个进一步的目的是减少同步过程的通信次数。
特别地,本发明提供了一种数据库的增量数据同步方法,包括:
在同步目标数据库装载同步初始数据;
获取增量同步数据对应的事务日志;
对事务日志进行解析,得到批量同步语句;
判断批量同步语句是否满足合并条件;
若是,对批量同步语句进行合并处理,得到预备语句;
向同步目标数据库发送预备语句;
由同步目标数据库执行预备语句,以进行增量数据同步。
可选地,判断批量同步语句是否满足合并条件的步骤包括:
获取批量同步语句的操作类型以及操作针对表;
判断批量同步语句的操作类型以及操作针对表是否全部一致;
若全部一致,则判定满足合并条件。
可选地,对批量同步语句进行合并处理的步骤包括:
根据同步语句的操作类型以及操作针对表按照预设语句格式构建预备语句。
可选地,在向同步目标数据库发送预备语句的步骤之后还包括:
逐条提取批量同步语句中的筛选参数;
判断筛选参数是否全部提取完成;
若是,生成执行报文,并在执行报文中加入提取出的全部筛选参数;
向同步目标数据库发送执行报文,以触发同步目标数据库执行预备语句的步骤。
可选地,由同步目标数据库执行预备语句的步骤包括:
从执行报文提取筛选参数;
使用预备语句以及筛选参数还原出批量同步语句;
执行批量同步语句。
可选地,在向同步目标数据库发送执行报文的步骤之前还包括:
向同步目标数据库发送提示报文,提示报文用于指示执行报文的报文类型。
可选地,在同步目标数据库装载同步初始数据的步骤之前还包括:
获取同步目标数据库的代码修订权限;
在代码修订权限指示允许修改的情况下,将处理执行报文的代码加入同步目标数据库的代码库。
可选地,在同步目标数据库装载同步初始数据步骤之前还包括:
建立与同步目标数据库的接口的数据连接。
可选地,同步目标数据库的接口为以下任一种接口类型:OCI、ODBC、JDBC。
根据本发明的另一个方面,还提供了一种机器可读存储介质,其上存储有机器可执行程序,机器可执行程序被处理器执行时实现根据上述任一项数据库的增量数据同步方法。
根据本发明的又一个方面,还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并在处理器上运行的机器可执行程序,并处理器执行机器可执行程序时实现根据上述任一项数据库的增量数据同步方法。
本发明的数据库的增量数据同步方法,在增量同步数据对应的事务日志解析得到的批量同步语句满足合并条件的情况下,对批量同步语句进行合并处理。同步目标数据库根据合并处理后的预备语句进行增量数据同步,避免了同步目标数据库逐条获取并执行同步语句带来的效率降低的问题,提高了增量数据同步的效率。
进一步地,本发明的数据库的增量数据同步方法,优化了准备-绑定-执行(PREPARE、BIND、EXECUTE,简称PBE)的同步流程,对同步目标数据库的同步协议进行了修改,在执行报文中加入筛选参数,减少了与同步目标数据库的通信次数。
更进一步地,本发明的数据库的增量数据同步方法,可以针对允许修改数据库的代码的数据库,如开源数据库等进行升级,使得同步目标数据库具备完成相应增量数据同步过程的能力,满足数据库的通用要求。
根据下文结合附图对本发明具体实施例的详细描述,本领域技术人员将会更加明了本发明的上述以及其他目的、优点和特征。
附图说明
后文将参照附图以示例性而非限制性的方式详细描述本发明的一些具体实施例。附图中相同的附图标记标示了相同或类似的部件或部分。本领域技术人员应该理解,这些附图未必是按比例绘制的。附图中:
图1是应用根据本发明一个实施例的数据库的增量数据同步方法的数据库***的架构图;
图2是根据本发明一个实施例的数据库的增量数据同步方法的示意图;
图3是根据本发明一个实施例的数据库的增量数据同步方法中数据交互过程示意图;
图4是根据本发明另一实施例的数据库的增量数据同步方法中数据交互过程示意图;
图5是根据本发明一个实施例的机器可读存储介质的示意图;以及
图6是根据本发明一个实施例的计算机设备的示意图。
具体实施方式
本领域技术人员应当理解的是,下文所描述的实施例仅仅是本发明的一部分实施例,而不是本发明的全部实施例,该一部分实施例旨在用于解释本发明的技术原理,并非用于限制本发明的保护范围。基于本发明提供的实施例,本领域普通技术人员在没有付出创造性劳动的情况下所获得的其它所有实施例,仍应落入到本发明的保护范围之内。
图1是应用根据本发明一个实施例的数据库的增量数据同步方法的数据库***的架构图。该数据库***包括:源数据库110、数据库同步模块120、同步目标数据库130。源数据库110是同步数据的提供者,同步目标数据库130的同步数据的目标,数据库同步模块120的功能为将源数据库110的数据复制到同步目标数据库130中。增量同步的过程是同步目标数据库130中已经初始化装载了源数据库110的存量数据,一般为源数据库110此前某一时刻的数据,增量同步是在存量数据的基础上,将源数据库相对于存量数据的变化(可以称为备份数据)同步至同步目标数据库130。
对于同步目标数据库130,而言,数据库同步模块120的同步过程相当于向同步目标数据库130提供操作语句,这些操作语句是数据库同步模块120通过对源数据库110的事务日志的恢复得到。源数据库110的一次批量操作,经过事务日志的恢复,得到的同步操作语句就会变成批量语句,从而出现数量极多的同步操作语句。在现有技术中,数据库同步模块120通过接口逐条发送同步操作语句,每次都需要数据库同步模块120与同步目标数据库130进行一次交互,这就是导致同步效率下降的主要原因。针对上述问题,本实施的数据库的增量数据同步方法可由数据库同步模块120执行,通过改进同步操作语句的传送方式以及数据库同步模块120与同步目标数据库130的通信协议,大大减小了交互次数。数据库同步模块120与同步目标数据库130进行同步之前,可以首先建立与同步目标数据库的接口的数据连接。同步目标数据库130的接口为以下任一种接口类型:OCI(Oracle CallInterface,简称OCI)、ODBC(Open Database Connectivity,开放数据库互连)、JDBC(JavaData Base Connectivity,java数据库连接),除此以外,数据库同步模块120也可以通过同步目标数据库130提供的其他类型的接口进行连接。
图2是根据本发明一个实施例的数据库的增量数据同步方法的示意图,该数据库的增量数据同步方法一般性地包括以下步骤:
步骤S201,在同步目标数据库130装载同步初始数据。装载同步初始数据的过程可以包括:同步目标数据库130创建与源数据库相适配的数据结构,然后通过复制等方式得到源数据库110的同步数据。同步初始数据也可以为此前同步得到的数据。同步初始数据可以提供基础点。后续步骤均是在该基础点的基准上进行。
步骤S202,获取增量同步数据对应的事务日志;事务日志可以包括源数据的重做日志或者归档日志,记录了数据的增删改变化。
步骤S203,对事务日志进行解析,得到批量同步语句。对事务日志进行解析过程,是将日志以事务为单位进行转换。
批量同步语句需要满足一定的数量要求,也即本实施例的方法数据库的增量数据同步方法是针对一定数量以上的同步语句进行处理,例如可以对超过设定数量阈值的语句进行后续步骤的执行。数量阈值可以根据需要进行配置,例如设置为1000条。
步骤S204,判断批量同步语句是否满足合并条件。该步骤可以具体包括:获取批量同步语句的操作类型(包括增、删、改)以及操作针对表;判断批量同步语句的操作类型以及操作针对表是否全部一致;若全部一致,则判定满足合并条件。例如对于批量同步语句:
DELETE FROM TAB1 WHERE record_time=1;
DELETE FROM TAB1 WHERE record_time=2;
……
DELETE FROM TAB1 WHERE record_time=n;
操作类型均为删除(DELETE),操作针对表均为TAB1,并且n大于设定数量阈值时,就可以认定这些批量同步语句满足合并条件。
如果不满足合并的条件,可以按照现有的方法,进行逐条语句的同步操作。
步骤S205,在批量同步语句满足合并条件的情况下,对批量同步语句进行合并处理,得到预备语句。合并处理的过程是根据同步语句的操作类型以及操作针对表按照预设语句格式构建预备语句,其可以提取操作类型以及操作针对表,并增加预备语句的标识(PREPARE)。例如对于上述举例的批量操作语句,其构建的预备语句可以为:
PREPARE DELETE FROM TAB1 WHERE record_time=?
步骤S206,向同步目标数据库130发送预备语句。
步骤S207,由同步目标数据库130执行预备语句,以进行增量数据同步。
对批量同步语句进行合并处理的一种替代方式为:数据库同步模块120对批量同步语句直接改写。仍以上述删除(DELETE)的批量同步语句为例进行介绍,其处理方式可以为:
发送DELETE语句之前判断下一条语句的属性,如果下一条语句同样是DELETE,并且DELETE中的WHERE条件一致,则将两条DELETE语句进行合并。比如对于语句
DELETE FROM TAB1 WHERE record_time=1;
DELETE FROM TAB1 WHERE record_time=2;
可以合并为:
DELETE FROM TAB1 WHERE(record_time=1)OR(record_time=2);
基于以上的原理,可以持续对下一条进行合并直至合并后的语句超长或者达到阈值,具体的合并阈值以及超长限制可以灵活调整,自行制定。
由于语句的改写本身对性能也会产生一定的损耗(占用其他事务的资源),因此需要确定合并操作的开启条件。一种可选的开启条件为:只有当前事务中的数据大于X条时(当某个事务的数据大于X条,比如1000时,大概率会是针对同一张表的相同操作)才开启后续的语句改写。
另一种语句改写的开启条件为:数据库同步模块120引入配置参数,由人工来配置哪些表上的操作需要开启后续的语句改写。也即允许人为干预,由了解具体的业务的业务人员来启动相关方案。
图3是根据本发明一个实施例的数据库的增量数据同步方法中数据交互过程示意图。本实施例的方法采用了准备-绑定-执行(PREPARE、BIND、EXECUTE,简称PBE)的同步流程,其工作过程为:
步骤S301,数据库同步模块120向同步目标数据库130发送预备语句(PREPARE语句);
步骤S302,同步目标数据库130使用数据库预备语句(PREPARE语句)来预编译入库操作;
步骤S303,数据库同步模块120向同步目标数据库130发送BIND(绑定参数,或称为筛选参数)。
步骤S304,同步目标数据库130使用预备语句以及筛选参数还原出同步语句,等待下一条筛选参数或者执行语句
步骤S305,数据库同步模块120判断是否完成全部筛选参数的发送;
步骤S306,数据库同步模块120在完成全部筛选参数之后,发送执行语句。
步骤S307,同步目标数据库130执行全部还原出的语句,以进行数据同步。
上述同步的流程中在出现大量的、操作类型一致的、针对同一张表的批量操作是,那么准备-绑定-执行(PREPARE、BIND、EXECUTE,PBE)将大大提升入库速度。
然而上述过程,仍然进一步存在进一步优化空间,其中绑定(BIND)仍然需要数据库同步模块120逐条交互,交互过程仍然需要占用大量的时间,仍然需要占用同步目标数据库130的同步时间。
在本发明的另一个实施例中,在向同步目标数据库130发送预备语句的步骤之后还可以包括:逐条提取批量同步语句中的筛选参数;判断筛选参数是否全部提取完成;若是,生成执行报文,并在执行报文中加入提取出的全部筛选参数;向同步目标数据库130发送执行报文,以触发同步目标数据库执行预备语句的步骤。也就是说,数据库同步模块120修改了上述PBE的通信流程和通信协议,将逐条发送筛选参数的绑定BIND过程与发送EXECUTE执行指令的过程合并,也即提取全部的筛选参数后,生成执行报文并在执行报文中加入提取出的全部筛选参数。
数据库同步模块120修改自身的发送过程的同时,还需要同步目标数据库130配合,也即由同步目标数据库130执行预备语句的步骤相应可以包括:从执行报文提取筛选参数;使用预备语句以及筛选参数还原出批量同步语句;执行批量同步语句。
这就需要同步目标数据库130提供代码修订权限,也即在同步目标数据库130装载同步初始数据的步骤之前还需要获取同步目标数据库130的代码修订权限;在代码修订权限指示允许修改的情况下,将处理执行报文的代码加入同步目标数据库130的代码库。
对于开源数据库,比如MySQL和PostgreSQL,可以允许修订数据库的代码。就为本实施例的优化提供了基础。在实际使用时,本实施例的方法,在应用于对已有数据库的升级时,使用范围为允许定制数据库的场景(比如一些云厂商修订的开源数据库RDS,或者有数据库维护能力的大型互联网公司)。
优化涉及两个方面:同步目标数据库130的报文处理以及通信过程。同步目标数据库130的报文处理允许接收的EXECUTE报文(执行报文),携带BIND的筛选参数。其次需要改进数据库接口,允许在数据库同步模块120调用BIND时,不和数据库交互,而是将BIND的筛选参数暂时保留在本地,等待完成后随EXECUTE报文发送。需要注意的是,修订通信协议并不影响原有的业务逻辑,可以采用增加代码分支或者新报文的形式呈现。比如在执行原有逻辑的EXECUTE操作,数据库同步模块120可能向数据库发送一个E报文。在执行改进后的协议时新修订的协议后,数据库同步模块120可向同步目标数据库120发送EB报文(从而区别E报文),表示EXECUTE中携带了BIND信息。
一种可选的实现方式为:数据库同步模块120在向同步目标数据库130发送执行报文的步骤之前可以向同步目标数据库发送提示报文,提示报文用于指示执行报文的报文类型,也即通知同步目标数据库130按照带有筛选参数的执行报文的处理方式进行处理。
图4是根据本发明另一实施例的数据库的增量数据同步方法中数据交互过程示意图。该交互过程为:
步骤S301,数据库同步模块120向同步目标数据库130发送数据库预备语句(PREPARE语句);
步骤S302,同步目标数据库130使用数据库预备语句(PREPARE语句)来预编译入库操作;
步骤S403,数据库同步模块120提取筛选参数;
步骤S404,数据库同步模块120检查是否提取完成最后一条同步语句的筛选参数;
步骤S405,提取全部筛选参数后,数据库同步模块120向同步目标数据库130发送含有筛选参数的执行报文。
步骤S406,同步目标数据库130使用预备语句以及筛选参数还原出批量同步语句并执行同步。
该交互过程将若干次BIND绑定过程改为一次性发送,从而大大降低了与同步目标数据库的交互次数,从而进一步提高了同步性能。
另外,相比于现有技术的另一种方案,本实施例的方法还可以避免同步过程过程出现的错误。上述的现有方案为:数据库同步模块120遇到批量删除操作时,直接解析出源数据库110的原始DELETE语句。同步时数据库同步模块120不再自行封装DELETE语句,而是由同步目标数据库130执行源数据库110的原始DELETE语句。
这种方案的主要缺点在于:需要保证同步目标数据库130中的表名称和源源数据库110的表名称以及数据完全一致。如果同步目标数据库130人工增加过数据,并且这些数据符合原始DELETE语句的WHERE条件,在执行原始DELETE语句时,同步目标数据库130会误删掉这些数据。
例如源数据库110的源端数据包括1、2、4、5、6的5条数据(列名为ID),而数据库同步模块120的目标端数据修改为1、2、3、4、5、6的6条数据。对于DELETE FROM TAB WHERE ID<10的原始语句,源端数据会删掉5条记录,而目标端数据会删掉6条数据(数据3被误删掉了)。
相比较地,本实施例的方法,无论是批量同步语句直接改写还是改进后的PBE,语句根据事务日志生成,都不会出现误删数据的问题。
本申请还提供了一种机器可读存储介质和计算机设备。图5是根据本发明一个实施例的机器可读存储介质50的示意图。图6是根据本发明一个实施例的计算机设备60的示意图。
机器可读存储介质50其上存储有机器可执行程序51,机器可执行程序51被处理器执行时实现上述任一实施例的数据库的增量数据同步方法。
计算机设备60可以包括存储器620、处理器610及存储在存储器620上并在处理器610上运行的机器可执行程序51,并且处理器610执行机器可执行程序51时实现上述任一实施例的数据库的增量数据同步方法。
需要说明的是,在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何机器可读存储介质中,以供指令执行***、装置或设备(如基于计算机的***、包括处理器的***或其他可以从指令执行***、装置或设备取指令并执行指令的***)使用,或结合这些指令执行***、装置或设备而使用。
就本实施例的描述而言,机器可读存储介质50可以是任何可以包含、存储、通信、传播或传输程序以供指令执行***、装置或设备或结合这些指令执行***、装置或设备而使用的装置。机器可读存储介质50的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,机器可读存储介质50甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行***执行的软件或固件来实现。
计算机设备60可以是例如服务器、台式计算机、笔记本式计算机、平板计算机或智能手机。在一些示例中,计算机设备60可以是云计算节点。计算机设备60可以在由计算机***执行的计算机***可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括执行特定的任务或者实现特定的抽象数据类型的例程、程序、目标程序、组件、逻辑、数据结构等。计算机设备60可以在通过通信网络链接的远程处理设备执行任务的分布式云计算环境中实施。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算***存储介质上。
计算机设备60可以包括适于执行存储的指令的处理器610、在操作期间为所述指令的操作提供临时存储空间的存储器620。处理器610可以是单核处理器、多核处理器、计算集群或任何数量的其他配置。存储器620可以包括随机存取存储器(RAM)、只读存储器、闪存或任何其他合适的存储***。
处理器610可以通过***互连(例如PCI、PCI-Express等)连接到适于将计算机设备60连接到一个或多个I/O设备(输入/输出设备)的I/O接口(输入/输出接口)。I/O设备可以包括例如键盘和指示设备,其中指示设备可以包括触摸板或触摸屏等等。I/O设备可以是计算机设备60的内置组件,或者可以是外部连接到计算设备的设备。
处理器610也可以通过***互连链接到适于将计算机设备60连接到显示设备的显示接口。显示设备可以包括作为计算机设备60的内置组件的显示屏。显示设备还可以包括外部连接到计算机设备60的计算机监视器、电视机或投影仪等。此外,网络接口控制器(network interface controller,NIC)可以适于通过***互连将计算机设备60连接到网络。在一些实施例中,NIC可以使用任何合适的接口或协议(诸如因特网小型计算机***接口等)来传输数据。网络可以是蜂窝网络、无线电网络、广域网(WAN))、局域网(LAN)或因特网等等。远程设备可以通过网络连接到计算设备。
本实施例提供的流程图并不旨在指示方法的操作将以任何特定的顺序执行,或者方法的所有操作都包括在所有的每种情况下。此外,方法可以包括关联操作。在本实施例方法提供的技术思路的范围内,可以对上述方法进行附加的变化。
Claims (10)
1.一种数据库的增量数据同步方法,包括:
在同步目标数据库装载同步初始数据;
获取增量同步数据对应的事务日志;
对所述事务日志进行解析,得到批量同步语句;
判断所述批量同步语句是否满足合并条件;
若是,对所述批量同步语句进行合并处理,得到预备语句;
向所述同步目标数据库发送所述预备语句;
由所述同步目标数据库执行所述预备语句,以进行增量数据同步。
2.根据权利要求1所述的数据库的增量数据同步方法,其中,所述判断所述批量同步语句是否满足合并条件的步骤包括:
获取所述批量同步语句的操作类型以及操作针对表;
判断所述批量同步语句的操作类型以及操作针对表是否全部一致;
若全部一致,则判定满足所述合并条件。
3.根据权利要求2所述的数据库的增量数据同步方法,其中,对所述批量同步语句进行合并处理的步骤包括:
根据所述同步语句的操作类型以及操作针对表按照预设语句格式构建所述预备语句。
4.根据权利要求3所述的数据库的增量数据同步方法,其中,在向所述同步目标数据库发送所述预备语句的步骤之后还包括:
逐条提取所述批量同步语句中的筛选参数;
判断所述筛选参数是否全部提取完成;
若是,生成执行报文,并在所述执行报文中加入提取出的全部所述筛选参数;
向所述同步目标数据库发送所述执行报文,以触发所述同步目标数据库执行所述预备语句的步骤。
5.根据权利要求4所述的数据库的增量数据同步方法,其中,由所述同步目标数据库执行所述预备语句的步骤包括:
从所述执行报文提取所述筛选参数;
使用所述预备语句以及所述筛选参数还原出所述批量同步语句;
执行所述批量同步语句。
6.根据权利要求4所述的数据库的增量数据同步方法,其中,在向所述同步目标数据库发送所述执行报文的步骤之前还包括:
向所述同步目标数据库发送提示报文,所述提示报文用于指示所述执行报文的报文类型。
7.根据权利要求4所述的数据库的增量数据同步方法,所述在同步目标数据库装载同步初始数据的步骤之前还包括:
获取同步目标数据库的代码修订权限;
在所述代码修订权限指示允许修改的情况下,将处理所述执行报文的代码加入所述同步目标数据库的代码库。
8.根据权利要求1所述的数据库的增量数据同步方法,其中,在所述在同步目标数据库装载同步初始数据步骤之前还包括:
建立与所述同步目标数据库的接口的数据连接。
9.一种机器可读存储介质,其上存储有机器可执行程序,所述机器可执行程序被处理器执行时实现根据权利要求1至8任一项所述的数据库的增量数据同步方法。
10.一种计算机设备,包括存储器、处理器及存储在所述存储器上并在所述处理器上运行的机器可执行程序,并且所述处理器执行所述机器可执行程序时实现根据权利要求1至8任一项所述的数据库的增量数据同步方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310029549.2A CN116069859A (zh) | 2023-01-09 | 2023-01-09 | 数据库的增量数据同步方法、存储介质与计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310029549.2A CN116069859A (zh) | 2023-01-09 | 2023-01-09 | 数据库的增量数据同步方法、存储介质与计算机设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116069859A true CN116069859A (zh) | 2023-05-05 |
Family
ID=86174401
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310029549.2A Pending CN116069859A (zh) | 2023-01-09 | 2023-01-09 | 数据库的增量数据同步方法、存储介质与计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116069859A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116578647A (zh) * | 2023-05-29 | 2023-08-11 | 玖章算术(浙江)科技有限公司 | 一种数据同步方法、装置、***、计算机可读存储介质 |
-
2023
- 2023-01-09 CN CN202310029549.2A patent/CN116069859A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116578647A (zh) * | 2023-05-29 | 2023-08-11 | 玖章算术(浙江)科技有限公司 | 一种数据同步方法、装置、***、计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2022126974A1 (zh) | 基于Kafka的增量数据同步方法、装置、设备及介质 | |
US20130103982A1 (en) | Log file compression | |
CN112380180A (zh) | 数据同步处理方法、装置、设备及存储介质 | |
CN112306645B (zh) | 以太坊虚拟机的事务处理方法、装置、设备和介质 | |
CN111782235A (zh) | 一种数据升级、查询方法和装置 | |
CN116069859A (zh) | 数据库的增量数据同步方法、存储介质与计算机设备 | |
CN111737227A (zh) | 数据修改方法及*** | |
CN113641700A (zh) | 一种基于Spring boot框架的数据处理方法及装置 | |
CN111984728A (zh) | 异构数据库数据同步方法、装置、介质和电子设备 | |
CN111181935A (zh) | 在ad域安全组中批量添加与定时删除域用户的方法 | |
CN114020840A (zh) | 一种数据处理方法、装置、服务器、存储介质及产品 | |
CN116775613A (zh) | 一种数据迁移方法、装置、电子设备及计算机可读介质 | |
CN111124370A (zh) | 一种数据处理方法及相关设备 | |
EP3910877B1 (en) | Evm-based transaction processing method and apparatus, device, program and medium | |
CN111008202A (zh) | 分布式事务处理方法和框架 | |
CN112286643B (zh) | 以太坊虚拟机的事务处理方法、装置、设备和介质 | |
CN115599868B (zh) | 数据实时同步处理方法、***、设备及介质 | |
CN113553836B (zh) | 对话词典的更新方法、装置、电子设备及存储介质 | |
CN111651197B (zh) | 一种自动搬库方法和装置 | |
CN113626049B (zh) | 一种适用于医院局域网环境下的程序升级方法及装置 | |
CN114064148B (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN114089976B (zh) | 用于生成数据库操作语句的方法、设备和介质 | |
CN118296021A (zh) | 拉链表的更新方法及装置、存储介质及电子设备 | |
CN115168487A (zh) | 基于kettle的数据同步方法、组件、设备及介质 | |
CN118069745A (zh) | 基于事务日志的SQL Server增量获取方法、存储介质及设备 |
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 |