CN110222115A - 基于表初始化分组装载的数据库同步方法及设备 - Google Patents
基于表初始化分组装载的数据库同步方法及设备 Download PDFInfo
- Publication number
- CN110222115A CN110222115A CN201910361323.6A CN201910361323A CN110222115A CN 110222115 A CN110222115 A CN 110222115A CN 201910361323 A CN201910361323 A CN 201910361323A CN 110222115 A CN110222115 A CN 110222115A
- Authority
- CN
- China
- Prior art keywords
- database
- rowid
- log
- lastlsn
- several
- 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
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/24—Querying
- G06F16/245—Query processing
-
- 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)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Computing Systems (AREA)
- Telephonic Communication Services (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明实施例提供了一种基于表初始化分组装载的数据库同步方法及设备。所述方法包括:在源端数据库对待装载表上S锁,获取源端数据库中日志的LastLSN并与待装载表进行关联,获取第一ROWID和第二ROWID,将两者之间的区间,划分为若干份的区间范围;创建若干线程,与源端数据库建立连接,采用若干线程对若干份的区间范围进行查询,查询完毕后释放S锁并提取查询结果,将查询结果发送至目标端数据同步服务,并插入目标端数据库;若从源端日志中分析得到待装载表的操作,且操作对应的日志LSN大于等于LastLSN,则将操作发送至目标端数据同步进行同步。本发明实施例提供的基于表初始化分组装载的数据库同步方法及设备,可以提升数据库同步过程中初始化装载的效率。
Description
技术领域
本发明实施例涉及数据库同步技术领域,尤其涉及一种基于表初始化分组装载的数据库同步方法及设备。
背景技术
在数据库数据实时同步技术中,其中基于数据库日志分析的数据实时同步技术因其具备支持异构操作系统和数据库平台、对源端数据库系统侵入性较小、数据同步延时低等特点,而得到广泛研究和应用。异构数据库系统之间的日志格式及日志内容差异较大,因此数据同步源端数据库的日志内容并不能直接应用到目标数据库中。基于日志分析的数据实时同步技术,一般原理是捕获源端数据库的增量日志内容,然后通过网络发送至目标端,在目标端使用SQL逆向生成技术恢复源端数据库的事务操作SQL语句,再通过通用的数据库访问接口如ODBC、OCI等接口,执行恢复后的SQL语句,实现源和目标端的数据实时同步。
在同步系统源端,实时读取源端数据库日志文件,捕获源端数据库上的事务增量日志内容;然后实时解析增量日志内容,提取日志中的事务ID、操作表ID、事务的操作类型如INSERT、UPDATE、DELETE,事务操作时间戳、日志LSN值、操作数据等,然后将其组装成特定格式的消息,存放在发送队列中;最后发送队列中的消息通过TCP/IP网络发送到同步系统的目标端。
在同步系统目标端,同步软件日志接收模块,接收源端发送的消息,并解析消息内容,根据事务ID将同属于一个事务的操作进行缓存,当接收到事务的COMMIT消息时,则交由日志执行模块进行同步执行;同步软件日志执行模块,根据事务操作内容,构建SQL语句,在目标数据库同步执行。
在现实数据库应用中,源端数据库中可能存在成千上万张数据表,并且表数据量大,特别是存在有大对像数据表,装载时提取大对像数据会更加费时费力,导致整个初始化装载数据的过程耗时较长。因此,找到一种加快整个初始化装载的效率,缩短数据库同步搭建花费时间的方法,就成为业界亟待解决的技术问题。
发明内容
针对现有技术存在的上述问题,本发明实施例提供了一种基于表初始化分组装载的数据库同步方法及设备。
第一方面,本发明的实施例提供了一种基于表初始化分组装载的数据库同步方法,包括:在源端数据库对待装载表上S锁,获取源端数据库中日志的LastLSN,将所述LastLSN与所述待装载表进行关联,并获取所述待装载表第一ROWID和第二ROWID,将所述第一ROWID和第二ROWID之间的区间,划分为若干份的区间范围;创建若干线程,并与所述源端数据库建立连接,采用所述若干线程对所述若干份的区间范围进行查询,查询完毕后释放所述S锁并提取查询结果,将所述查询结果发送至目标端数据同步服务,并插入目标端数据库;若从源端日志中分析得到所述待装载表的操作,且所述操作对应的日志LSN大于等于所述LastLSN,则将所述操作发送至目标端数据同步进行同步;其中,所述LastLSN为处理若干事务后得到的最终日志序列号;所述LSN为日志序列号;所述ROWID为数据库中一行数据的标记行号。
进一步地,在上述方法实施例内容的基础上,本发明实施例中提供的基于表初始化分组装载的数据库同步方法,所述第一ROWID,包括:所述待装载表的起始ROWID。
进一步地,在上述方法实施例内容的基础上,本发明实施例中提供的基于表初始化分组装载的数据库同步方法,所述第二ROWID,包括:所述待装载表的终止ROWID。
进一步地,在上述方法实施例内容的基础上,本发明实施例中提供的基于表初始化分组装载的数据库同步方法,所述将所述第一ROWID和第二ROWID之间的区间,划分为若干份的区间范围,包括:采用相等的比例,将所述第一ROWID和第二ROWID之间的区间,划分为若干等份的区间范围。
进一步地,在上述方法实施例内容的基础上,本发明实施例中提供的基于表初始化分组装载的数据库同步方法,还包括:所述若干线程中的线程,与所述若干等份的区间范围中的范围区间,一一对应。
进一步地,在上述方法实施例内容的基础上,本发明实施例中提供的基于表初始化分组装载的数据库同步方法,所述查询完毕后释放所述S锁并提取查询结果,包括:查询完毕后释放所述S锁,利用数据库的多版本功能,提取查询结果中相应的可见范围。
进一步地,在上述方法实施例内容的基础上,本发明实施例中提供的基于表初始化分组装载的数据库同步方法,还包括:若从源端日志中分析得到所述待装载表的操作,且所述操作对应的日志LSN小于所述LastLSN,则将所述操作丢弃。
第二方面,本发明的实施例提供了一种基于表初始化分组装载的数据库同步装置,包括:
区间范围划分模块,用于在源端数据库对待装载表上S锁,获取源端数据库中日志的LastLSN,将所述LastLSN与所述待装载表进行关联,并获取所述待装载表第一ROWID和第二ROWID,将所述第一ROWID和第二ROWID之间的区间,划分为若干份的区间范围;
目标端数据库插入模块,用于创建若干线程,并与所述源端数据库建立连接,采用所述若干线程对所述若干份的区间范围进行查询,查询完毕后释放所述S锁并提取查询结果,将所述查询结果发送至目标端数据同步服务,并插入目标端数据库;
操作同步模块,用于若从源端日志中分析得到所述待装载表的操作,且所述操作对应的日志LSN大于等于所述LastLSN,则将所述操作发送至目标端数据同步进行同步;
其中,所述LastLSN为处理若干事务后得到的最终日志序列号;所述LSN为日志序列号;所述ROWID为数据库中一行数据的标记行号。
第三方面,本发明的实施例提供了一种电子设备,包括:
至少一个处理器;以及
与处理器通信连接的至少一个存储器,其中:
存储器存储有可被处理器执行的程序指令,处理器调用程序指令能够执行第一方面的各种可能的实现方式中任一种可能的实现方式所提供的基于表初始化分组装载的数据库同步方法。
第四方面,本发明的实施例提供了一种非暂态计算机可读存储介质,非暂态计算机可读存储介质存储计算机指令,计算机指令使计算机执行第一方面的各种可能的实现方式中任一种可能的实现方式所提供的基于表初始化分组装载的数据库同步方法。
本发明实施例提供的基于表初始化分组装载的数据库同步方法及设备,通过对待装载的表上S锁,然后利用多线程的机制,使用多个连接并行的提取待装载表上某一个区间的数据,然后在目标端数据同步服务并行的插入到目标端数据库,最终组装成一个完整的表数据进行同步,可以提升数据库同步过程中初始化装载的效率,缩短数据库同步搭建的时长。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做一简单的介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的基于表初始化分组装载的数据库同步方法流程图;
图2为本发明实施例提供的基于表初始化分组装载的数据库同步装置结构示意图;
图3为本发明实施例提供的电子设备的实体结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。另外,本发明提供的各个实施例或单个实施例中的技术特征可以相互任意结合,以形成可行的技术方案,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时,应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
本专利的目的在于有效的提升同步目的端数据库初始化数据时的装载速度,提供一种数据库同步初始化分组装载的方法,解决现有技术中目的端数据库数据初始化性能不高的技术问题。在此基础上,本发明实施例提供了一种基于表初始化分组装载的数据库同步方法,参见图1,该方法包括:
101、在源端数据库对待装载表上S锁,获取源端数据库中日志的LastLSN,将所述LastLSN与所述待装载表进行关联,并获取所述待装载表第一ROWID和第二ROWID,将所述第一ROWID和第二ROWID之间的区间,划分为若干份的区间范围;
102、创建若干线程,并与所述源端数据库建立连接,采用所述若干线程对所述若干份的区间范围进行查询,查询完毕后释放所述S锁并提取查询结果,将所述查询结果发送至目标端数据同步服务,并插入目标端数据库;
103、若从源端日志中分析得到所述待装载表的操作,且所述操作对应的日志LSN大于等于所述LastLSN,则将所述操作发送至目标端数据同步进行同步。
其中,所述LastLSN为处理若干事务后得到的最终日志序列号;所述LSN为日志序列号;所述ROWID为数据库中一行数据的标记行号。
基于上述方法实施例的内容,作为一种可选的实施例,本发明实施例中提供的基于表初始化分组装载的数据库同步方法,所述第一ROWID,包括:所述待装载表的起始ROWID。
基于上述方法实施例的内容,作为一种可选的实施例,本发明实施例中提供的基于表初始化分组装载的数据库同步方法,所述第二ROWID,包括:所述待装载表的终止ROWID。
基于上述方法实施例的内容,作为一种可选的实施例,本发明实施例中提供的基于表初始化分组装载的数据库同步方法,所述将所述第一ROWID和第二ROWID之间的区间,划分为若干份的区间范围,包括:采用相等的比例,将所述第一ROWID和第二ROWID之间的区间,划分为若干等份的区间范围。
基于上述方法实施例的内容,作为一种可选的实施例,本发明实施例中提供的基于表初始化分组装载的数据库同步方法,还包括:所述若干线程中的线程,与所述若干等份的区间范围中的范围区间,一一对应。
基于上述方法实施例的内容,作为一种可选的实施例,本发明实施例中提供的基于表初始化分组装载的数据库同步方法,所述查询完毕后释放所述S锁并提取查询结果,包括:查询完毕后释放所述S锁,利用数据库的多版本功能,提取查询结果中相应的可见范围。
基于上述方法实施例的内容,作为一种可选的实施例,本发明实施例中提供的基于表初始化分组装载的数据库同步方法,还包括:若从源端日志中分析得到所述待装载表的操作,且所述操作对应的日志LSN小于所述LastLSN,则将所述操作丢弃。
本发明实施例提供的基于表初始化分组装载的数据库同步方法,通过对待装载的表上S锁,然后利用多线程的机制,使用多个连接并行的提取待装载表上某一个区间的数据,然后在目标端数据同步服务并行的插入到目标端数据库,最终组装成一个完整的表数据进行同步,可以提升数据库同步过程中初始化装载的效率,缩短数据库同步搭建的时长。
为了更加清晰的阐述本发明的技术方案的本质,在上述实施例的基础上,拟提出一个细化的实施例,从细节上展现本发明技术方案的全貌。需要说明的是,该细化实施例仅仅是为了将本发明的技术本质进一步体现出来,并不是对本发明保护范围的限制,本领域技术人员在本发明各个实施例的基础上,通过组合技术特征,得到的任何满足本发明技术方案本质的组合型技术方案,只要能够实际实施,均在本专利的保护范围之内。
本发明提供的细节实施例展示了一种数据库同步初始化分组装载的方法,以ORACLE数据库为例,装载T表,包括:
S1、对源端数据库待装载的表上S锁,LOCK TABLE T IN SHARE MODE;
S2、获取源端数据库当前日志的最大LSN,并且保存该LSN和T表关联关系,SELECTDBMS_FLASHBACK.GET_SYSTEM_CHANGE_NUMBER FROM DUAL;
S3、获取源端数据库待装载的表上最小和最大的ROWID,SELECT MIN(ROWID),MAX(ROWID)FROM T,划分2份:1<=ROWID<100和100<=ROWID<=200。
S4、创建2个线程,分别提取上述两个区间的结果集:1号线程执行SELECT*FROM TWHERE ROWID>=1AND ROWID<100;2号线程执行SELECT*FROM T WHERE ROWID>=100ANDROWID<=200。
S5、释放S锁并等待表完成装载工作。
S6、开启源端的日志分析进行数据同步,当从日志中分析得到表的操作,如果该操作对应的日志LSN小于S2步骤得到的LSN,则丢弃该操作;否则发送到目标端数据同步进行同步。
本发明的细节实施例首先在待装载的表上S锁,然后利用多线程的机制,使用多个连接并行的提取待装载表上某一个区间的数据,然后在目标端数据同步服务并行的插入到目标端数据库,最终组装成一个完整的表数据,实现初始化时的装载性能的提升。装载开始上的S锁,在所有区间分片的连接执行完它对应的SQL以后就可以释放,不用等待它对应的结果集提取完成,这点是利用了源端数据库的多版本特性,查询开始以后就固化了数据的可见性范围,防止同步开启以后出现数据重复的问题。
本发明各个实施例的实现基础是通过具有处理器功能的设备进行程序化的处理实现的。因此在工程实际中,可以将本发明各个实施例的技术方案及其功能封装成各种模块。基于这种现实情况,在上述各实施例的基础上,本发明的实施例提供了一种基于表初始化分组装载的数据库同步装置,该装置用于执行上述方法实施例中的基于表初始化分组装载的数据库同步方法。参见图2,该装置包括:
区间范围划分模块201,用于在源端数据库对待装载表上S锁,获取源端数据库中日志的LastLSN,将所述LastLSN与所述待装载表进行关联,并获取所述待装载表第一ROWID和第二ROWID,将所述第一ROWID和第二ROWID之间的区间,划分为若干份的区间范围;
目标端数据库插入模块202,用于创建若干线程,并与所述源端数据库建立连接,采用所述若干线程对所述若干份的区间范围进行查询,查询完毕后释放所述S锁并提取查询结果,将所述查询结果发送至目标端数据同步服务,并插入目标端数据库;
操作同步模块203,用于若从源端日志中分析得到所述待装载表的操作,且所述操作对应的日志LSN大于等于所述LastLSN,则将所述操作发送至目标端数据同步进行同步;
其中,所述LastLSN为处理若干事务后得到的最终日志序列号;所述LSN为日志序列号;所述ROWID为数据库中一行数据的标记行号。
本发明实施例提供的基于表初始化分组装载的数据库同步装置,采用区间范围划分模块、目标端数据库插入模块和操作同步模块,通过对待装载的表上S锁,然后利用多线程的机制,使用多个连接并行的提取待装载表上某一个区间的数据,然后在目标端数据同步服务并行的插入到目标端数据库,最终组装成一个完整的表数据进行同步,可以提升数据库同步过程中初始化装载的效率,缩短数据库同步搭建的时长。
需要说明的是,本发明提供的装置实施例中的装置,除了可以用于实现上述方法实施例中的方法外,还可以用于实现本发明提供的其他方法实施例中的方法,区别仅仅在于设置相应的功能模块,其原理与本发明提供的上述装置实施例的原理基本相同,只要本领域技术人员在上述装置实施例的基础上,参考其他方法实施例中的具体技术方案,通过组合技术特征,在保证技术方案具备实用性的前提下,就可以对上述装置实施例中的装置进行改进,从而得到相应的装置类实施例,用于实现其他方法类实施例中的方法。例如:
基于上述装置实施例的内容,作为一种可选的实施例,本发明实施例中提供的基于表初始化分组装载的数据库同步装置,还包括:等比划分模块,用于采用相等的比例,将所述第一ROWID和第二ROWID之间的区间,划分为若干等份的区间范围。
基于上述装置实施例的内容,作为一种可选的实施例,本发明实施例中提供的基于表初始化分组装载的数据库同步装置,还包括:线程区间对应模块,用于将所述若干线程中的线程,与所述若干等份的区间范围中的范围区间,一一对应。
基于上述装置实施例的内容,作为一种可选的实施例,本发明实施例中提供的基于表初始化分组装载的数据库同步装置,还包括:可见范围提取模块,用于查询完毕后释放所述S锁,利用数据库的多版本功能,提取查询结果中相应的可见范围。
基于上述装置实施例的内容,作为一种可选的实施例,本发明实施例中提供的基于表初始化分组装载的数据库同步装置,还包括:操作丢弃模块,用于若从源端日志中分析得到所述待装载表的操作,且所述操作对应的日志LSN小于所述LastLSN,则将所述操作丢弃。
本发明实施例的方法是依托电子设备实现的,因此对相关的电子设备有必要做一下介绍。基于此目的,本发明的实施例提供了一种电子设备,如图3所示,该电子设备包括:至少一个处理器(processor)301、通信接口(Communications Interface)304、至少一个存储器(memory)302和通信总线303,其中,至少一个处理器301,通信接口304,至少一个存储器302通过通信总线303完成相互间的通信。至少一个处理器301可以调用至少一个存储器302中的逻辑指令,以执行如下方法:在源端数据库对待装载表上S锁,获取源端数据库中日志的LastLSN,将所述LastLSN与所述待装载表进行关联,并获取所述待装载表第一ROWID和第二ROWID,将所述第一ROWID和第二ROWID之间的区间,划分为若干份的区间范围;创建若干线程,并与所述源端数据库建立连接,采用所述若干线程对所述若干份的区间范围进行查询,查询完毕后释放所述S锁并提取查询结果,将所述查询结果发送至目标端数据同步服务,并插入目标端数据库;若从源端日志中分析得到所述待装载表的操作,且所述操作对应的日志LSN大于等于所述LastLSN,则将所述操作发送至目标端数据同步进行同步;其中,所述LastLSN为处理若干事务后得到的最终日志序列号;所述LSN为日志序列号;所述ROWID为数据库中一行数据的标记行号。
此外,上述的至少一个存储器302中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。例如包括:在源端数据库对待装载表上S锁,获取源端数据库中日志的LastLSN,将所述LastLSN与所述待装载表进行关联,并获取所述待装载表第一ROWID和第二ROWID,将所述第一ROWID和第二ROWID之间的区间,划分为若干份的区间范围;创建若干线程,并与所述源端数据库建立连接,采用所述若干线程对所述若干份的区间范围进行查询,查询完毕后释放所述S锁并提取查询结果,将所述查询结果发送至目标端数据同步服务,并插入目标端数据库;若从源端日志中分析得到所述待装载表的操作,且所述操作对应的日志LSN大于等于所述LastLSN,则将所述操作发送至目标端数据同步进行同步;其中,所述LastLSN为处理若干事务后得到的最终日志序列号;所述LSN为日志序列号;所述ROWID为数据库中一行数据的标记行号。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。基于这种认识,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
在本专利中,术语"包括"、"包含"或者其任何其它变体意在涵盖非排它性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句"包括……"限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种基于表初始化分组装载的数据库同步方法,其特征在于,包括:
在源端数据库对待装载表上S锁,获取源端数据库中日志的LastLSN,将所述LastLSN与所述待装载表进行关联,并获取所述待装载表第一ROWID和第二ROWID,将所述第一ROWID和第二ROWID之间的区间,划分为若干份的区间范围;
创建若干线程,并与所述源端数据库建立连接,采用所述若干线程对所述若干份的区间范围进行查询,查询完毕后释放所述S锁并提取查询结果,将所述查询结果发送至目标端数据同步服务,并插入目标端数据库;
若从源端日志中分析得到所述待装载表的操作,且所述操作对应的日志LSN大于等于所述LastLSN,则将所述操作发送至目标端数据同步进行同步;
其中,所述LastLSN为处理若干事务后得到的最终日志序列号;所述LSN为日志序列号;所述ROWID为数据库中一行数据的标记行号。
2.根据权利要求1所述的基于表初始化分组装载的数据库同步方法,其特征在于,所述第一ROWID,包括:
所述待装载表的起始ROWID。
3.根据权利要求1所述的基于表初始化分组装载的数据库同步方法,其特征在于,所述第二ROWID,包括:
所述待装载表的终止ROWID。
4.根据权利要求1所述的基于表初始化分组装载的数据库同步方法,其特征在于,所述将所述第一ROWID和第二ROWID之间的区间,划分为若干份的区间范围,包括:
采用相等的比例,将所述第一ROWID和第二ROWID之间的区间,划分为若干等份的区间范围。
5.根据权利要求4所述的基于表初始化分组装载的数据库同步方法,其特征在于,还包括:
所述若干线程中的线程,与所述若干等份的区间范围中的范围区间,一一对应。
6.根据权利要求1所述的基于表初始化分组装载的数据库同步方法,其特征在于,所述查询完毕后释放所述S锁并提取查询结果,包括:
查询完毕后释放所述S锁,利用数据库的多版本功能,提取查询结果中相应的可见范围。
7.根据权利要求1所述的基于表初始化分组装载的数据库同步方法,其特征在于,还包括:
若从源端日志中分析得到所述待装载表的操作,且所述操作对应的日志LSN小于所述LastLSN,则将所述操作丢弃。
8.一种基于表初始化分组装载的数据库同步装置,其特征在于,包括:
区间范围划分模块,用于在源端数据库对待装载表上S锁,获取源端数据库中日志的LastLSN,将所述LastLSN与所述待装载表进行关联,并获取所述待装载表第一ROWID和第二ROWID,将所述第一ROWID和第二ROWID之间的区间,划分为若干份的区间范围;
目标端数据库插入模块,用于创建若干线程,并与所述源端数据库建立连接,采用所述若干线程对所述若干份的区间范围进行查询,查询完毕后释放所述S锁并提取查询结果,将所述查询结果发送至目标端数据同步服务,并插入目标端数据库;
操作同步模块,用于若从源端日志中分析得到所述待装载表的操作,且所述操作对应的日志LSN大于等于所述LastLSN,则将所述操作发送至目标端数据同步进行同步;
其中,所述LastLSN为处理若干事务后得到的最终日志序列号;所述LSN为日志序列号;所述ROWID为数据库中一行数据的标记行号。
9.一种电子设备,其特征在于,包括:
至少一个处理器、至少一个存储器、通信接口和总线;其中,
所述处理器、存储器、通信接口通过所述总线完成相互间的通信;
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令,以执行如权利要求1至7任一项所述的方法。
10.一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行如权利要求1至7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910361323.6A CN110222115A (zh) | 2019-04-30 | 2019-04-30 | 基于表初始化分组装载的数据库同步方法及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910361323.6A CN110222115A (zh) | 2019-04-30 | 2019-04-30 | 基于表初始化分组装载的数据库同步方法及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110222115A true CN110222115A (zh) | 2019-09-10 |
Family
ID=67820425
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910361323.6A Pending CN110222115A (zh) | 2019-04-30 | 2019-04-30 | 基于表初始化分组装载的数据库同步方法及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110222115A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111259060A (zh) * | 2020-02-18 | 2020-06-09 | 北京百度网讯科技有限公司 | 数据查询的方法及装置 |
CN112015716A (zh) * | 2020-08-04 | 2020-12-01 | 北京人大金仓信息技术股份有限公司 | 数据库数据迁移方法、装置、介质和电子设备 |
CN112231409A (zh) * | 2020-10-23 | 2021-01-15 | 北京人大金仓信息技术股份有限公司 | 数据库同步的初始化装载方法、装置、设备和存储介质 |
CN112307118A (zh) * | 2020-09-30 | 2021-02-02 | 武汉达梦数据库有限公司 | 基于日志解析同步的保障数据一致性的方法和同步系统 |
CN112559629A (zh) * | 2020-12-13 | 2021-03-26 | 武汉达梦数据库股份有限公司 | 一种基于日志解析同步的大对象初始化方法与装置 |
CN112765265A (zh) * | 2020-12-30 | 2021-05-07 | 杭州贝嘟科技有限公司 | 数据同步方法、装置、计算机设备和可读存储介质 |
CN113190281A (zh) * | 2021-04-08 | 2021-07-30 | 武汉达梦数据库股份有限公司 | 一种基于rowid区间的初始化装载方法与装置 |
CN113377780A (zh) * | 2021-07-07 | 2021-09-10 | 杭州网易云音乐科技有限公司 | 一种数据库分片方法、装置、电子设备和可读存储介质 |
CN113407544A (zh) * | 2021-07-13 | 2021-09-17 | 南方电网数字电网研究院有限公司 | 一种多模型数据的同步方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102867071A (zh) * | 2012-10-19 | 2013-01-09 | 烽火通信科技股份有限公司 | 一种网管海量历史数据管理方法 |
CN109189577A (zh) * | 2018-08-31 | 2019-01-11 | 武汉达梦数据库有限公司 | 一种数据同步时防止内存溢出的方法和装置 |
CN109271450A (zh) * | 2018-10-10 | 2019-01-25 | 北京百度网讯科技有限公司 | 数据库同步方法、装置、服务器和存储介质 |
CN109271452A (zh) * | 2018-10-19 | 2019-01-25 | 武汉达梦数据库有限公司 | Db2数据库数据同步更新方法及设备 |
-
2019
- 2019-04-30 CN CN201910361323.6A patent/CN110222115A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102867071A (zh) * | 2012-10-19 | 2013-01-09 | 烽火通信科技股份有限公司 | 一种网管海量历史数据管理方法 |
CN109189577A (zh) * | 2018-08-31 | 2019-01-11 | 武汉达梦数据库有限公司 | 一种数据同步时防止内存溢出的方法和装置 |
CN109271450A (zh) * | 2018-10-10 | 2019-01-25 | 北京百度网讯科技有限公司 | 数据库同步方法、装置、服务器和存储介质 |
CN109271452A (zh) * | 2018-10-19 | 2019-01-25 | 武汉达梦数据库有限公司 | Db2数据库数据同步更新方法及设备 |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111259060B (zh) * | 2020-02-18 | 2023-08-15 | 北京百度网讯科技有限公司 | 数据查询的方法及装置 |
CN111259060A (zh) * | 2020-02-18 | 2020-06-09 | 北京百度网讯科技有限公司 | 数据查询的方法及装置 |
CN112015716A (zh) * | 2020-08-04 | 2020-12-01 | 北京人大金仓信息技术股份有限公司 | 数据库数据迁移方法、装置、介质和电子设备 |
CN112015716B (zh) * | 2020-08-04 | 2024-02-09 | 北京人大金仓信息技术股份有限公司 | 数据库数据迁移方法、装置、介质和电子设备 |
CN112307118A (zh) * | 2020-09-30 | 2021-02-02 | 武汉达梦数据库有限公司 | 基于日志解析同步的保障数据一致性的方法和同步系统 |
CN112307118B (zh) * | 2020-09-30 | 2024-03-22 | 武汉达梦数据库股份有限公司 | 基于日志解析同步的保障数据一致性的方法和同步系统 |
CN112231409A (zh) * | 2020-10-23 | 2021-01-15 | 北京人大金仓信息技术股份有限公司 | 数据库同步的初始化装载方法、装置、设备和存储介质 |
CN112231409B (zh) * | 2020-10-23 | 2024-04-26 | 北京人大金仓信息技术股份有限公司 | 数据库同步的初始化装载方法、装置、设备和存储介质 |
CN112559629A (zh) * | 2020-12-13 | 2021-03-26 | 武汉达梦数据库股份有限公司 | 一种基于日志解析同步的大对象初始化方法与装置 |
CN112559629B (zh) * | 2020-12-13 | 2022-08-26 | 武汉达梦数据库股份有限公司 | 一种基于日志解析同步的大对象初始化方法与装置 |
CN112765265A (zh) * | 2020-12-30 | 2021-05-07 | 杭州贝嘟科技有限公司 | 数据同步方法、装置、计算机设备和可读存储介质 |
CN113190281A (zh) * | 2021-04-08 | 2021-07-30 | 武汉达梦数据库股份有限公司 | 一种基于rowid区间的初始化装载方法与装置 |
CN113190281B (zh) * | 2021-04-08 | 2022-05-17 | 武汉达梦数据库股份有限公司 | 一种基于rowid区间的初始化装载方法与装置 |
CN113377780A (zh) * | 2021-07-07 | 2021-09-10 | 杭州网易云音乐科技有限公司 | 一种数据库分片方法、装置、电子设备和可读存储介质 |
CN113407544A (zh) * | 2021-07-13 | 2021-09-17 | 南方电网数字电网研究院有限公司 | 一种多模型数据的同步方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110222115A (zh) | 基于表初始化分组装载的数据库同步方法及设备 | |
CN109284334B (zh) | 实时数据库同步方法、装置、电子设备及存储介质 | |
CN112000737B (zh) | 基于多云管理的数据同步方法、系统、终端及存储介质 | |
CN109753531A (zh) | 一种大数据统计方法、系统、计算机设备及存储介质 | |
CN109656934A (zh) | 基于日志解析的源端Oracle数据库DDL同步方法及设备 | |
CN109933630A (zh) | 数据库数据实时同步方法及设备 | |
CN112019369A (zh) | 一种微服务框架下动态配置管理方法及系统 | |
CN105447014B (zh) | 基于binlog的元数据管理方法和用于提供元数据的方法及装置 | |
CN109271452A (zh) | Db2数据库数据同步更新方法及设备 | |
CN104516989B (zh) | 增量数据推送系统和方法 | |
CN104731956A (zh) | 同步数据的方法、系统及相关数据库 | |
CN110232093A (zh) | 数据库同步中基于闪回查询的初始化装载方法及设备 | |
CN101640587B (zh) | 数据同步方法及装置 | |
CN104809201A (zh) | 一种数据库同步的方法和装置 | |
CN102279888A (zh) | 一种任务调度方法和系统 | |
CN104270424B (zh) | 一种数据库同步方法、服务器及系统 | |
CN109657007A (zh) | 基于异步提交的数据库数据同步并行执行方法及设备 | |
CN110457059A (zh) | 一种基于redis的序列号生成方法及装置 | |
CN105279045A (zh) | 一种数据库的数据恢复方法及系统 | |
CN109977168A (zh) | 基于数据页预加载的数据库数据同步方法及设备 | |
US9501518B2 (en) | Systems and methods for interval control element chain architecture | |
CN111694798B (zh) | 一种基于日志解析的数据同步方法及数据同步系统 | |
CN104978313A (zh) | 数据库系统的数据同步方法、装置及服务器 | |
CN107894926B (zh) | 一种银行影像录入任务的同步和分配系统及方法 | |
CN110008284A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190910 |
|
RJ01 | Rejection of invention patent application after publication |