CN110196786A - 数据库回滚同步中内存的控制方法及设备 - Google Patents

数据库回滚同步中内存的控制方法及设备 Download PDF

Info

Publication number
CN110196786A
CN110196786A CN201910361351.8A CN201910361351A CN110196786A CN 110196786 A CN110196786 A CN 110196786A CN 201910361351 A CN201910361351 A CN 201910361351A CN 110196786 A CN110196786 A CN 110196786A
Authority
CN
China
Prior art keywords
dba
array structure
information
transaction
array
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
CN201910361351.8A
Other languages
English (en)
Other versions
CN110196786B (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 Dameng Database Co Ltd
Original Assignee
Wuhan Dameng 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 Dameng Database Co Ltd filed Critical Wuhan Dameng Database Co Ltd
Priority to CN201910361351.8A priority Critical patent/CN110196786B/zh
Publication of CN110196786A publication Critical patent/CN110196786A/zh
Application granted granted Critical
Publication of CN110196786B publication Critical patent/CN110196786B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1471Saving, restoring, recovering or retrying involving logging of persistent data for recovery

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例提供了一种数据库回滚同步中内存的控制方法及设备。所述方法包括:若日志分析线程解析到数据库的DML操作事务,则根据DML操作事务的ID在哈希表中定位相应事务结构,若定位到DML操作事务隶属的事务结构,且DML操作事务的第一dba_array结构中存储的dba信息的值,超过第一dba_array结构的存储阈值,则对DML操作事务分配第二dba_array结构,并将dba信息同时存储在第一dba_array结构和第二dba_array结构中;若dba信息的值,超过第一dba_array结构的存储阈值与第二dba_array结构的存储阈值之和,则将dba信息存入存储磁盘,并释放dba信息占据的内存空间,将第一dba_array结构添加至dba_array链表末尾。本发明实施例提供的数据库回滚同步中内存的控制方法及设备,在执行部分回滚同步时,缓解内存资源紧张的状况。

Description

数据库回滚同步中内存的控制方法及设备
技术领域
本发明实施例涉及数据库同步技术领域,尤其涉及一种数据库回滚同步中内存的控制方法及设备。
背景技术
基于日志解析来进行数据库到其他异构数据库的数据同步,即是通过实时读取数据库的REDO日志文件或归档日志文件,捕获出增量的REDO记录,然后分析REDO记录中改变向量(Change vector)的内容解析出数据库的DML(Data Manipulation Language)操作以及相应的数据,将这些信息转换后发送到目标数据库进行SQL逆向恢复,然后执行同步。为了进行事务级的同步,支持事务部分回滚同步,捕获分析同步线程在解析数据库的REDO记录时,需要按照SCN(System Change Number)的顺序将同一事务的所有REDO操作进行归集,并且按照事务内部操作的顺序,对DML操作进行内部编号。在解析出数据库的部分回滚操作后,首先根据回滚操作的DBA找到所属回滚事务,然后根据DBA定位回滚事务中的操作行编号,同步过程中删除大于回滚行编号之后的DML操作,即可完成部分回滚的同步。
为此,对于源端数据库上的所有未提交的待同步事务,需要在内存中申请空间用于缓存该事务各操作的所有DBA信息以及相对应的操作编号。这样,当捕获到事务的部分回滚操作后,就能从缓存DBA信息中定位到需删除的回滚操作。但是,当源端数据库执行大量事务操作后,内存中需要缓存大量事务DML操作的DBA信息,造成源端系统内存资源紧张。因此,找到一种对这种部分回滚方式进行优化,减少源端日志分析的内存空间占用的方法,就成为业界亟待解决的技术问题。
发明内容
针对现有技术存在的上述问题,本发明实施例提供了一种数据库回滚同步中内存的控制方法及设备。
第一方面,本发明的实施例提供了一种数据库回滚同步中内存的控制方法,包括:若日志分析线程解析到数据库的DML操作事务,则根据所述DML操作事务的ID在哈希表中定位相应事务结构,若定位到所述DML操作事务隶属的事务结构,且所述DML操作事务的第一dba_array结构中存储的dba信息的值,超过第一dba_array结构的存储阈值,则对所述DML操作事务分配第二dba_array结构,并将所述dba信息同时存储在所述第一dba_array结构和第二dba_array结构中;若所述dba信息的值,超过所述第一dba_array结构的存储阈值与第二dba_array结构的存储阈值之和,则将所述dba信息存入存储磁盘,并释放所述dba信息占据的内存空间,将所述第一dba_array结构添加至dba_array链表末尾;其中,所述DML为数据操作语言;所述dba信息为数据块地址信息。
进一步地,所述的数据库回滚同步中内存的控制方法,还包括:若所述DML操作事务的第一dba_array结构中存储的dba信息的值,小于等于第一dba_array结构的存储阈值,则将所述dba信息插入所述第一dba_array结构的dba_lst链表中。
进一步地,所述的数据库回滚同步中内存的控制方法,还包括:将所述第二dba_array结构添加至所述第一dba_array结构的末尾。
进一步地,所述的数据库回滚同步中内存的控制方法,在所述则将所述dba信息存入存储磁盘之前,还包括:启动所述存储磁盘。
进一步地,所述的数据库回滚同步中内存的控制方法,在所述将所述第一dba_array结构添加至dba_array链表末尾之后,还包括:更新所述第一dba_array结构的文件写入偏移。
第二方面,本发明的实施例提供了一种数据库回滚同步中内存的控制装置,包括:
dba信息存储模块,用于若日志分析线程解析到数据库的DML操作事务,则根据所述DML操作事务的ID在哈希表中定位相应事务结构,若定位到所述DML操作事务隶属的事务结构,且所述DML操作事务的第一dba_array结构中存储的dba信息的值,超过第一dba_array结构的存储阈值,则对所述DML操作事务分配第二dba_array结构,并将所述dba信息同时存储在所述第一dba_array结构和第二dba_array结构中;
内存空间释放模块,用于若所述dba信息的值,超过所述第一dba_array结构的存储阈值与第二dba_array结构的存储阈值之和,则将所述dba信息存入存储磁盘,并释放所述dba信息占据的内存空间,将所述第一dba_array结构添加至dba_array链表末尾;
其中,所述DML为数据操作语言;所述dba信息为数据块地址信息。
第三方面,本发明的实施例提供了一种电子设备,包括:
至少一个处理器;以及
与处理器通信连接的至少一个存储器,其中:
存储器存储有可被处理器执行的程序指令,处理器调用程序指令能够执行第一方面的各种可能的实现方式中任一种可能的实现方式所提供的数据库回滚同步中内存的控制方法。
第四方面,本发明的实施例提供了一种非暂态计算机可读存储介质,非暂态计算机可读存储介质存储计算机指令,计算机指令使计算机执行第一方面的各种可能的实现方式中任一种可能的实现方式所提供的数据库回滚同步中内存的控制方法。
本发明实施例提供的数据库回滚同步中内存的控制方法及设备,通过dba_array结构的存储阈值判断需要存储的dba信息,是否可以存储在两个dba_array结构中,在不能存储的情况下将dba信息存入存储磁盘,并将dba信息占据的内存空间释放,可以在数据库回滚同步执行大量DML操作事务时,有效缓解内存资源紧张的情况。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做一简单的介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的数据库回滚同步中内存的控制方法流程图;
图2为本发明实施例提供的事物结构示意图;
图3为本发明实施例提供的dba_array结构示意图;
图4为本发明实施例提供的内存空间使用及释放原理示意图;
图5为本发明实施例提供的数据库回滚同步中内存的控制装置结构示意图;
图6为本发明实施例提供的电子设备的实体结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。另外,本发明提供的各个实施例或单个实施例中的技术特征可以相互任意结合,以形成可行的技术方案,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时,应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
本发明实施例提供了一种数据库回滚同步中内存的控制方法,参见图1,该方法包括:
101、若日志分析线程解析到数据库的DML操作事务,则根据所述DML操作事务的ID在哈希表中定位相应事务结构,若定位到所述DML操作事务隶属的事务结构,且所述DML操作事务的第一dba_array结构中存储的dba信息的值,超过第一dba_array结构的存储阈值,则对所述DML操作事务分配第二dba_array结构,并将所述dba信息同时存储在所述第一dba_array结构和第二dba_array结构中;
102、若所述dba信息的值,超过所述第一dba_array结构的存储阈值与第二dba_array结构的存储阈值之和,则将所述dba信息存入存储磁盘,并释放所述dba信息占据的内存空间,将所述第一dba_array结构添加至dba_array链表末尾;
其中,所述DML为数据操作语言;所述dba信息为数据块地址信息。
基于上述方法实施例的内容,作为一种可选的实施例,本发明实施例中提供的数据库回滚同步中内存的控制方法,还包括:若所述DML操作事务的第一dba_array结构中存储的dba信息的值,小于等于第一dba_array结构的存储阈值,则将所述dba信息插入所述第一dba_array结构的dba_lst链表中。
基于上述方法实施例的内容,作为一种可选的实施例,本发明实施例中提供的数据库回滚同步中内存的控制方法,还包括:将所述第二dba_array结构添加至所述第一dba_array结构的末尾。
基于上述方法实施例的内容,作为一种可选的实施例,本发明实施例中提供的数据库回滚同步中内存的控制方法,在所述则将所述dba信息存入存储磁盘之前,还包括:启动所述存储磁盘。
基于上述方法实施例的内容,作为一种可选的实施例,本发明实施例中提供的数据库回滚同步中内存的控制方法,在所述将所述第一dba_array结构添加至dba_array链表末尾之后,还包括:更新所述第一dba_array结构的文件写入偏移。
本发明实施例提供的数据库回滚同步中内存的控制方法,通过dba_array结构的存储阈值判断需要存储的dba信息,是否可以存储在两个dba_array结构中,在不能存储的情况下将dba信息存入存储磁盘,并将dba信息占据的内存空间释放,可以在数据库回滚同步执行大量DML操作事务时,有效缓解内存资源紧张的情况。
为了更加清晰的阐述本发明的技术方案的本质,在上述实施例的基础上,拟提出一个整体的实施例,从整体上展现本发明技术方案的全貌。需要说明的是,该整体实施例仅仅是为了将本发明的技术本质进一步体现出来,并不是对本发明保护范围的限制,本领域技术人员在本发明各个实施例的基础上,通过组合技术特征,得到的任何满足本发明技术方案本质的组合型技术方案,只要能够实际实施,均在本专利的保护范围之内。
若日志分析线程解析到数据库的INSERT、UPDATE、DELETE操作,根据事务ID在步骤S1所述事务哈希表中定位相应事务结构;具体地,所述事务的结构可以参见图2,事务的结构中包括事务ID,事务起始SCN(System Change Number),SCN,dba_array链表link。其中,link是用于将多个事务串联成链表。
若定位到DML操作所属事务结构,判断当前事务的第一个dba_array结构存储的dba信息是否超过阈值;具体地,所述dba_array结构可以参见图3。图3中是两个dba_array结构通过link2进行连接的模式。其中,dba_array结构包括哈希表指针,dba_lst,文件写入偏移和link1;dba_lst的结构包括dba,op_id,link2。由图3中可见,两个dba_array结构最终通过link2进行连接,组成事物链表。
若没有超过阈值,则将当前分析的DML操作的dba信息继续插入到当前dba_array结构的dba_lst中;
若超过所设定的阈值,则继续分配该事务的第二个dba_array结构,并将其添加到第一个dba_array结构的末尾,同时将dba信息开始插入至第二个dba_array结构中;
若当前事务已分配了两个dba_array存储结构,并且第二个结构也已达到存储阈值,则首先启动dba信息磁盘存储单元,将事务的第一个dba_array结构所存储的dba信息写入磁盘文件,并释放内存存储空间;然后将该结构重新加入至dba_array链表末尾,同时更新第一个dba_array结构的文件写入偏移的值,以供下次存储使用;
具体地,上述内存存储空间控制原理的详细内容可以参见图4。由图4可见,初始时,事务分配一个dba_array结构(dba_array[0]),新的dba信息直接插入至dba_array[0]结构(未满)中;当事务初始分配的dba_array[0]结构空间已满,即达到存储阈值,则继续分配第二个dba_array结构(dba_array[1],未满),并将新的dba信息插入至dba_array[1]结构中;当事务的两个dba_array结构空间均满,则将链表dba_array[0]结构记录的dba信息写入文件存储,并释放dba信息占用的内存空间(重置为空),同时将其重新加入至链表末尾,更新dba_array[0]结构的文件偏移。其中,dba_array[0]的初始文件偏移仅仅是文件头大小的512字节;dba_array[1]的偏移为512字节(文件头大小)加存储阈值;dba_array[0]重置后的文件偏移为512字(文件头大小)节加两倍存储阈值。如若事务还有dba信息需要插入,则首先获取链表末尾的dba_array结构(dba_array[0])进行插入,如果该结构已满,则将链表的dba_array[0]结构进行写文件操作,并循环重复上述重置过程。
对于存储大量事务的dba信息,使用上述方法,循环使用两个dba_array结构,即可满足大量事务的存储要求,同时在内存使用方面,最多仅需保留两个dba_array管理空间。
本发明各个实施例的实现基础是通过具有处理器功能的设备进行程序化的处理实现的。因此在工程实际中,可以将本发明各个实施例的技术方案及其功能封装成各种模块。基于这种现实情况,在上述各实施例的基础上,本发明的实施例提供了一种数据库回滚同步中内存的控制装置,该装置用于执行上述方法实施例中的数据库回滚同步中内存的控制方法。参见图5,该装置包括:
dba信息存储模块501,用于若日志分析线程解析到数据库的DML操作事务,则根据所述DML操作事务的ID在哈希表中定位相应事务结构,若定位到所述DML操作事务隶属的事务结构,且所述DML操作事务的第一dba_array结构中存储的dba信息的值,超过第一dba_array结构的存储阈值,则对所述DML操作事务分配第二dba_array结构,并将所述dba信息同时存储在所述第一dba_array结构和第二dba_array结构中;
内存空间释放模块502,用于若所述dba信息的值,超过所述第一dba_array结构的存储阈值与第二dba_array结构的存储阈值之和,则将所述dba信息存入存储磁盘,并释放所述dba信息占据的内存空间,将所述第一dba_array结构添加至dba_array链表末尾;
其中,所述DML为数据操作语言;所述dba信息为数据块地址信息。
本发明实施例提供的数据库回滚同步中内存的控制装置,采用dba信息存储模块和内存空间释放模块,通过dba_array结构的存储阈值判断需要存储的dba信息,是否可以存储在两个dba_array结构中,在不能存储的情况下将dba信息存入存储磁盘,并将dba信息占据的内存空间释放,可以在数据库回滚同步执行大量DML操作事务时,有效缓解内存资源紧张的情况。
需要说明的是,本发明提供的装置实施例中的装置,除了可以用于实现上述方法实施例中的方法外,还可以用于实现本发明提供的其他方法实施例中的方法,区别仅仅在于设置相应的功能模块,其原理与本发明提供的上述装置实施例的原理基本相同,只要本领域技术人员在上述装置实施例的基础上,参考其他方法实施例中的具体技术方案,通过组合技术特征,在保证技术方案具备实用性的前提下,就可以对上述装置实施例中的装置进行改进,从而得到相应的装置类实施例,用于实现其他方法类实施例中的方法。例如:
基于上述装置实施例的内容,作为一种可选的实施例,本发明实施例中提供的数据库回滚同步中内存的控制装置,还包括:判断插入模块,用于若所述DML操作事务的第一dba_array结构中存储的dba信息的值,小于等于第一dba_array结构的存储阈值,则将所述dba信息插入所述第一dba_array结构的dba_lst链表中。
基于上述装置实施例的内容,作为一种可选的实施例,本发明实施例中提供的数据库回滚同步中内存的控制装置,还包括:dba_array结构定位模块,用于将所述第二dba_array结构添加至所述第一dba_array结构的末尾。
基于上述装置实施例的内容,作为一种可选的实施例,本发明实施例中提供的数据库回滚同步中内存的控制装置,还包括:存储磁盘启动模块,用于在所述则将所述dba信息存入存储磁盘之前,启动所述存储磁盘。
基于上述装置实施例的内容,作为一种可选的实施例,本发明实施例中提供的数据库回滚同步中内存的控制装置,还包括:文件写入偏移更新模块,用于在所述将所述第一dba_array结构添加至dba_array链表末尾之后,更新所述第一dba_array结构的文件写入偏移。
本发明实施例的方法是依托电子设备实现的,因此对相关的电子设备有必要做一下介绍。基于此目的,本发明的实施例提供了一种电子设备,如图6所示,该电子设备包括:至少一个处理器(processor)601、通信接口(Communications Interface)604、至少一个存储器(memory)602和通信总线603,其中,至少一个处理器601,通信接口604,至少一个存储器602通过通信总线603完成相互间的通信。至少一个处理器601可以调用至少一个存储器602中的逻辑指令,以执行如下方法:若日志分析线程解析到数据库的DML操作事务,则根据所述DML操作事务的ID在哈希表中定位相应事务结构,若定位到所述DML操作事务隶属的事务结构,且所述DML操作事务的第一dba_array结构中存储的dba信息的值,超过第一dba_array结构的存储阈值,则对所述DML操作事务分配第二dba_array结构,并将所述dba信息同时存储在所述第一dba_array结构和第二dba_array结构中;若所述dba信息的值,超过所述第一dba_array结构的存储阈值与第二dba_array结构的存储阈值之和,则将所述dba信息存入存储磁盘,并释放所述dba信息占据的内存空间,将所述第一dba_array结构添加至dba_array链表末尾;其中,所述DML为数据操作语言;所述dba信息为数据块地址信息。
此外,上述的至少一个存储器602中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。例如包括:若日志分析线程解析到数据库的DML操作事务,则根据所述DML操作事务的ID在哈希表中定位相应事务结构,若定位到所述DML操作事务隶属的事务结构,且所述DML操作事务的第一dba_array结构中存储的dba信息的值,超过第一dba_array结构的存储阈值,则对所述DML操作事务分配第二dba_array结构,并将所述dba信息同时存储在所述第一dba_array结构和第二dba_array结构中;若所述dba信息的值,超过所述第一dba_array结构的存储阈值与第二dba_array结构的存储阈值之和,则将所述dba信息存入存储磁盘,并释放所述dba信息占据的内存空间,将所述第一dba_array结构添加至dba_array链表末尾;其中,所述DML为数据操作语言;所述dba信息为数据块地址信息。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。基于这种认识,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
在本专利中,术语"包括"、"包含"或者其任何其它变体意在涵盖非排它性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句"包括……"限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (8)

1.一种数据库回滚同步中内存的控制方法,其特征在于,包括:
若日志分析线程解析到数据库的DML操作事务,则根据所述DML操作事务的ID在哈希表中定位相应事务结构,若定位到所述DML操作事务隶属的事务结构,且所述DML操作事务的第一dba_array结构中存储的dba信息的值,超过第一dba_array结构的存储阈值,则对所述DML操作事务分配第二dba_array结构,并将所述dba信息同时存储在所述第一dba_array结构和第二dba_array结构中;
若所述dba信息的值,超过所述第一dba_array结构的存储阈值与第二dba_array结构的存储阈值之和,则将所述dba信息存入存储磁盘,并释放所述dba信息占据的内存空间,将所述第一dba_array结构添加至dba_array链表末尾;
其中,所述DML为数据操作语言;所述dba信息为数据块地址信息。
2.根据权利要求1所述的数据库回滚同步中内存的控制方法,其特征在于,还包括:
若所述DML操作事务的第一dba_array结构中存储的dba信息的值,小于等于第一dba_array结构的存储阈值,则将所述dba信息插入所述第一dba_array结构的dba_lst链表中。
3.根据权利要求1所述的数据库回滚同步中内存的控制方法,其特征在于,还包括:
将所述第二dba_array结构添加至所述第一dba_array结构的末尾。
4.根据权利要求1所述的数据库回滚同步中内存的控制方法,其特征在于,在所述则将所述dba信息存入存储磁盘之前,还包括:
启动所述存储磁盘。
5.根据权利要求1所述的数据库回滚同步中内存的控制方法,其特征在于,在所述将所述第一dba_array结构添加至dba_array链表末尾之后,还包括:
更新所述第一dba_array结构的文件写入偏移。
6.一种数据库回滚同步中内存的控制装置,其特征在于,包括:
dba信息存储模块,用于若日志分析线程解析到数据库的DML操作事务,则根据所述DML操作事务的ID在哈希表中定位相应事务结构,若定位到所述DML操作事务隶属的事务结构,且所述DML操作事务的第一dba_array结构中存储的dba信息的值,超过第一dba_array结构的存储阈值,则对所述DML操作事务分配第二dba_array结构,并将所述dba信息同时存储在所述第一dba_array结构和第二dba_array结构中;
内存空间释放模块,用于若所述dba信息的值,超过所述第一dba_array结构的存储阈值与第二dba_array结构的存储阈值之和,则将所述dba信息存入存储磁盘,并释放所述dba信息占据的内存空间,将所述第一dba_array结构添加至dba_array链表末尾;
其中,所述DML为数据操作语言;所述dba信息为数据块地址信息。
7.一种电子设备,其特征在于,包括:
至少一个处理器、至少一个存储器、通信接口和总线;其中,
所述处理器、存储器、通信接口通过所述总线完成相互间的通信;
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令,以执行如权利要求1至5任一项所述的方法。
8.一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行如权利要求1至5中任一项所述的方法。
CN201910361351.8A 2019-04-30 2019-04-30 数据库回滚同步中内存的控制方法及设备 Active CN110196786B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910361351.8A CN110196786B (zh) 2019-04-30 2019-04-30 数据库回滚同步中内存的控制方法及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910361351.8A CN110196786B (zh) 2019-04-30 2019-04-30 数据库回滚同步中内存的控制方法及设备

Publications (2)

Publication Number Publication Date
CN110196786A true CN110196786A (zh) 2019-09-03
CN110196786B CN110196786B (zh) 2021-10-08

Family

ID=67752285

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910361351.8A Active CN110196786B (zh) 2019-04-30 2019-04-30 数据库回滚同步中内存的控制方法及设备

Country Status (1)

Country Link
CN (1) CN110196786B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111176907A (zh) * 2020-01-06 2020-05-19 中科驭数(北京)科技有限公司 硬件数据库回滚方法、软件数据库回滚方法及装置
CN111694893A (zh) * 2020-04-23 2020-09-22 武汉达梦数据库有限公司 一种基于日志解析的部分回滚解析方法和数据同步系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101419616A (zh) * 2008-12-10 2009-04-29 阿里巴巴集团控股有限公司 一种数据同步方法及装置
CN103198159A (zh) * 2013-04-27 2013-07-10 国家计算机网络与信息安全管理中心 一种基于事务重做的异构集群多副本一致性维护方法
CN104881418A (zh) * 2014-02-28 2015-09-02 阿里巴巴集团控股有限公司 用于MySQL的快速回收回滚空间的方法和装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101419616A (zh) * 2008-12-10 2009-04-29 阿里巴巴集团控股有限公司 一种数据同步方法及装置
CN103198159A (zh) * 2013-04-27 2013-07-10 国家计算机网络与信息安全管理中心 一种基于事务重做的异构集群多副本一致性维护方法
CN104881418A (zh) * 2014-02-28 2015-09-02 阿里巴巴集团控股有限公司 用于MySQL的快速回收回滚空间的方法和装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
骏马金龙: "详细分析MySQL事务日志(redo log和undo log)", 《"详细分析MYSQL事务日志(REDO LOG和UNDO LOG)",骏马金龙,博客园,HTTPS://WWW.CNBLOGS.COM/F-CK-NEED-U/P/9010872.HTML》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111176907A (zh) * 2020-01-06 2020-05-19 中科驭数(北京)科技有限公司 硬件数据库回滚方法、软件数据库回滚方法及装置
CN111694893A (zh) * 2020-04-23 2020-09-22 武汉达梦数据库有限公司 一种基于日志解析的部分回滚解析方法和数据同步系统
CN111694893B (zh) * 2020-04-23 2023-04-25 武汉达梦数据库股份有限公司 一种基于日志解析的部分回滚解析方法和数据同步系统

Also Published As

Publication number Publication date
CN110196786B (zh) 2021-10-08

Similar Documents

Publication Publication Date Title
CN109656934B (zh) 基于日志解析的源端Oracle数据库DDL同步方法及设备
US9953051B2 (en) Multi-version concurrency control method in database and database system
CN109684333B (zh) 一种数据存储及裁剪方法、设备和存储介质
CN108509462B (zh) 一种同步活动事务表的方法及装置
CN111177277B (zh) 数据存储方法、交易存储方法及装置
CN109271452B (zh) Db2数据库数据同步更新方法及设备
CN109298835B (zh) 区块链的数据归档处理方法、装置、设备及存储介质
CN108121827B (zh) 一种全量数据的同步方法及装置
CN103593257B (zh) 一种数据备份方法及装置
CN106874281B (zh) 实现数据库读写分离的方法和装置
CN110727724B (zh) 数据抽取方法、装置、计算机设备和存储介质
CN110196786B (zh) 数据库回滚同步中内存的控制方法及设备
US20080320494A1 (en) Data processing method, data processing apparatus, and data processing program
CN112965939A (zh) 一种文件合并方法、装置和设备
JP6440773B2 (ja) データ複製方法及びその装置
US20140379644A1 (en) Database management method
CN111061719B (zh) 数据收集方法、装置、设备和存储介质
CN114297193A (zh) 一种基于hash的数据比对方法及装置
CN112231105A (zh) 基于区块链的区块写入方法及系统
CN111857707A (zh) 名单数据处理方法、装置、设备及存储介质
CN112699177A (zh) 一种流量话单数据同步方法、系统、计算设备和存储介质
CN111737341B (zh) 基于日志解析的插入操作同步优化方法和数据同步系统
CN113704283A (zh) 一种数据更新方法及相关设备
CN116301597A (zh) 数据存储方法、装置、设备和存储介质
CN117194337A (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

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.

CB02 Change of applicant information
CB03 Change of inventor or designer information

Inventor after: Sun Feng

Inventor after: Yu Yuanlan

Inventor after: Zhao Jiawei

Inventor before: Fu Quan

Inventor before: Sun Feng

Inventor before: Yu Yuanlan

Inventor before: Zhao Jiawei

CB03 Change of inventor or designer information
GR01 Patent grant
GR01 Patent grant