CN109358817B - 用于复制数据的方法、装置和系统 - Google Patents

用于复制数据的方法、装置和系统 Download PDF

Info

Publication number
CN109358817B
CN109358817B CN201811255355.XA CN201811255355A CN109358817B CN 109358817 B CN109358817 B CN 109358817B CN 201811255355 A CN201811255355 A CN 201811255355A CN 109358817 B CN109358817 B CN 109358817B
Authority
CN
China
Prior art keywords
change information
physical change
physical
database server
log file
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.)
Active
Application number
CN201811255355.XA
Other languages
English (en)
Other versions
CN109358817A (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.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology 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 Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN201811255355.XA priority Critical patent/CN109358817B/zh
Publication of CN109358817A publication Critical patent/CN109358817A/zh
Application granted granted Critical
Publication of CN109358817B publication Critical patent/CN109358817B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms

Landscapes

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

Abstract

本申请实施例公开了用于复制数据的方法、装置和系统。该方法的一具体实施方式包括接收写请求,其中,写请求包括待写数据;将待写数据对应的物理变更信息写入主物理日志文件中;读取主物理日志文件中的物理变更信息;将物理变更信息发送至从数据库服务器。该实施方式直接将物理变更信息写入物理日志文件中,而不再将逻辑变更信息写入二进制日志文件中,降低了数据复制的延时,提高了数据复制的实时性。

Description

用于复制数据的方法、装置和系统
技术领域
本申请实施例涉及计算机技术领域,具体涉及用于复制数据的方法、装置和系统。
背景技术
随着互联网数据的爆炸性增长,数据库作为互联网数据的存储介质,承担了越来越多的数据和对数据的访问请求。由于数据拆片会引入分布式事务、SQL(StructuredQuery Language,结构化查询语言)兼容性等带来的开销,存在较大成本。因此单实例MySQL(关系型数据库管理系统)的写吞吐和高写吞吐压力场景下的主从延时成为一个重要指标。
传统MySQL采用基于二进制日志的数据复制方式,在主数据库事务过程中涉及到多次IO(Input/Output,输入/输出)开销,以及主从复制给主数据库带来的互斥开销,导致写吞吐受到一定的影响。如何给MySQL写逻辑和IO解耦,以及在高写请求压力场景下保证主从延时成为一个难题。
发明内容
本申请实施例提出了用于复制数据的方法、装置和系统。
第一方面,本申请实施例提供了一种用于复制数据的方法,应用于主数据库服务器,包括:接收写请求,其中,写请求包括待写数据;将待写数据对应的物理变更信息写入主物理日志文件中;读取主物理日志文件中的物理变更信息;将物理变更信息发送至从数据库服务器。
在一些实施例中,将待写数据对应的物理变更信息写入主物理日志文件中,包括:在写请求对应的事务的提交阶段将物理变更信息写入主物理日志文件中。
在一些实施例中,将待写数据对应的物理变更信息写入主物理日志文件中,包括:以四千字节对齐方式将物理变更信息写入主物理日志文件中。
在一些实施例中,将待写数据对应的物理变更信息写入主物理日志文件中,包括:以文件偏移的原子操作方式将物理变更信息写入主物理日志文件中。
在一些实施例中,读取主物理日志文件中的物理变更信息,包括:从写请求对应的事务的开启阶段开始读取主物理日志文件中的物理变更信息。
在一些实施例中,该方法还包括:响应于接收到全部从数据库服务器定时发送的可清除最大历史版本,基于接收到的可清除最大历史版本向从数据库服务器发送清除请求,其中,清除请求包括清除历史版本,清除历史版本是接收到的可清除最大历史版本中的最小历史版本。
在一些实施例中,该方法还包括:响应于超过预定时间未接收到至少部分从数据库服务器发送的可清除最大历史版本,基于接收到的可清除最大历史版本向从数据库服务器发送强制清除请求,其中,强制清除请求包括强制清除历史版本,强制清除历史版本是接收到的可清除最大历史版本中的最小历史版本。
第二方面,本申请实施例提供了一种用于复制数据的方法,应用于从数据库服务器,包括:接收主数据库服务器发送的物理变更信息;将物理变更信息写入从物理日志文件中;读取从物理日志文件中的物理变更信息;执行物理变更信息对应的物理变更操作。
在一些实施例中,该方法还包括:向主数据库服务器定时发送可清除最大历史版本;响应于接收到主数据库服务器发送的清除请求,基于清除请求中的清除历史版本执行清除操作。
在一些实施例中,该方法还包括:响应于接收到主数据库服务器发送的强制清除请求,比较强制清除请求中的强制清除历史版本与当前可见最小历史版本;若强制清除历史版本小于当前可见最小历史版本,记录强制清除历史版本,以及基于强制清除历史版本执行强制清除操作。
在一些实施例中,该方法还包括:响应于接收到非事务读请求,比较非事务读请求中的可见最小历史版本与强制清除历史版本;若可见最小历史版本不大于强制清除历史版本,返回内部错误提示;若可见最小历史版本大于强制清除历史版本,执行非事务读取请求对应的读取操作。
在一些实施例中,该方法还包括:响应于接收到事务读请求,比较事务读请求中的可见最小历史版本与强制清除历史版本;若可见最小历史版本不大于强制清除历史版本,断开事务读取请求对应的请求连接;若可见最小历史版本大于强制清除历史版本,执行事务读取请求对应的读取操作。
第三方面,本申请实施例提供了一种用于复制数据的装置,设置于主数据库服务器,包括:写请求接收单元,被配置成接收写请求,其中,写请求包括待写数据;物理变更信息写入单元,被配置成将待写数据对应的物理变更信息写入主物理日志文件中;物理变更信息读取单元,被配置成读取主物理日志文件中的物理变更信息;物理变更信息发送单元,被配置成将物理变更信息发送至从数据库服务器。
在一些实施例中,物理变更信息写入单元进一步被配置成:在写请求对应的事务的提交阶段将物理变更信息写入主物理日志文件中。
在一些实施例中,物理变更信息写入单元进一步被配置成:以四千字节对齐方式将物理变更信息写入主物理日志文件中。
在一些实施例中,物理变更信息写入单元进一步被配置成:以文件偏移的原子操作方式将物理变更信息写入主物理日志文件中。
在一些实施例中,物理变更信息读取单元进一步被配置成:从写请求对应的事务的开启阶段开始读取主物理日志文件中的物理变更信息。
在一些实施例中,该装置还包括:清除请求发送单元,被配置成响应于接收到全部从数据库服务器定时发送的可清除最大历史版本,基于接收到的可清除最大历史版本向从数据库服务器发送清除请求,其中,清除请求包括清除历史版本,清除历史版本是接收到的可清除最大历史版本中的最小历史版本。
在一些实施例中,该装置还包括:强制清除请求发送单元,被配置成响应于超过预定时间未接收到至少部分从数据库服务器发送的可清除最大历史版本,基于接收到的可清除最大历史版本向从数据库服务器发送强制清除请求,其中,强制清除请求包括强制清除历史版本,强制清除历史版本是接收到的可清除最大历史版本中的最小历史版本。
第四方面,本申请实施例提供了一种用于复制数据的装置,设置于从数据库服务器,包括:物理变更信息接收单元,被配置成接收主数据库服务器发送的物理变更信息;物理变更信息写入单元,被配置成将物理变更信息写入从物理日志文件中;物理变更信息读取单元,被配置成读取从物理日志文件中的物理变更信息;物理变更信息执行单元,被配置成执行物理变更信息对应的物理变更操作。
在一些实施例中,该装置还包括:可清除最大历史版本发送单元,被配置成向主数据库服务器定时发送可清除最大历史版本;清除操作执行单元,被配置成响应于接收到主数据库服务器发送的清除请求,基于清除请求中的清除历史版本执行清除操作。
在一些实施例中,该装置还包括:强制清除历史版本比较单元,被配置成响应于接收到主数据库服务器发送的强制清除请求,比较强制清除请求中的强制清除历史版本与当前可见最小历史版本;强制清除操作执行单元,被配置成若强制清除历史版本小于当前可见最小历史版本,记录强制清除历史版本,以及基于强制清除历史版本执行强制清除操作。
在一些实施例中,该装置还包括:非事务读请求处理单元,被配置成响应于接收到非事务读请求,比较非事务读请求中的可见最小历史版本与强制清除历史版本,若可见最小历史版本不大于强制清除历史版本,返回内部错误提示,若可见最小历史版本大于强制清除历史版本,执行非事务读取请求对应的读取操作。
在一些实施例中,该装置还包括:事务读请求处理单元,被配置成响应于接收到事务读请求,比较事务读请求中的可见最小历史版本与强制清除历史版本,若可见最小历史版本不大于强制清除历史版本,断开事务读取请求对应的请求连接,若可见最小历史版本大于强制清除历史版本,执行事务读取请求对应的读取操作。
第五方面,本申请实施例提供了一种用于复制数据的系统,包括主数据库服务器和从数据库服务器:主数据库服务器,用于接收写请求,将写请求中的待写数据对应的物理变更信息写入主物理日志文件中,读取主物理日志文件中的物理变更信息,以及将物理变更信息发送至从数据库服务器;从数据库服务器,用于将从主数据库服务器接收到的物理变更信息写入从物理日志文件中,读取从物理日志文件中的物理变更信息,以及执行物理变更信息对应的物理变更操作。
在一些实施例中,主数据库服务器还用于:在写请求对应的事务的提交阶段将物理变更信息写入主物理日志文件中。
在一些实施例中,主数据库服务器还用于:以四千字节对齐方式将物理变更信息写入主物理日志文件中。
在一些实施例中,主数据库服务器还用于:以文件偏移的原子操作方式将物理变更信息写入主物理日志文件中。
在一些实施例中,主数据库服务器还用于:从写请求对应的事务的开启阶段开始读取主物理日志文件中的物理变更信息。
在一些实施例中,主数据库服务器还用于:响应于接收到全部从数据库服务器定时发送的可清除最大历史版本,基于接收到的可清除最大历史版本向从数据库服务器发送清除请求,其中,清除请求包括清除历史版本,清除历史版本是接收到的可清除最大历史版本中的最小历史版本。
在一些实施例中,主数据库服务器还用于:响应于超过预定时间未接收到至少部分从数据库服务器发送的可清除最大历史版本,基于接收到的可清除最大历史版本向从数据库服务器发送强制清除请求,其中,强制清除请求包括强制清除历史版本,强制清除历史版本是接收到的可清除最大历史版本中的最小历史版本。
在一些实施例中,从数据库服务器还用于:向主数据库服务器定时发送可清除最大历史版本;响应于接收到主数据库服务器发送的清除请求,基于清除请求中的清除历史版本执行清除操作。
在一些实施例中,从数据库服务器还用于:响应于接收到主数据库服务器发送的强制清除请求,比较强制清除请求中的强制清除历史版本与当前可见最小历史版本;若强制清除历史版本小于当前可见最小历史版本,记录强制清除历史版本,以及基于强制清除历史版本执行强制清除操作。
在一些实施例中,从数据库服务器还用于:响应于接收到非事务读请求,比较非事务读请求中的可见最小历史版本与强制清除历史版本;若可见最小历史版本不大于强制清除历史版本,返回内部错误提示;若可见最小历史版本大于强制清除历史版本,执行非事务读取请求对应的读取操作。
在一些实施例中,从数据库服务器还用于:响应于接收到事务读请求,比较事务读请求中的可见最小历史版本与强制清除历史版本;若可见最小历史版本不大于强制清除历史版本,断开事务读取请求对应的请求连接;若可见最小历史版本大于强制清除历史版本,执行事务读取请求对应的读取操作。
第六方面,本申请实施例提供了一种电子设备,该电子设备包括:一个或多个处理器;存储装置,其上存储有一个或多个程序;当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现如第一方面中任一实现方式描述的方法或者实现如第二方面中任一实现方式描述的方法。
第七方面,本申请实施例提供了一种计算机可读介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面中任一实现方式描述的方法或者实现如第二方面中任一实现方式描述的方法。
本申请实施例提供的用于复制数据的方法、装置和系统,首先将接收到的写请求中的待写数据对应的物理变更信息写入主物理日志文件中;然后读取主物理日志文件中的物理变更信息;最后将物理变更信息发送至从数据库服务器。直接将物理变更信息写入物理日志文件中,而不再将逻辑变更信息写入二进制日志文件中,降低了数据复制的延时,提高了数据复制的实时性。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1是本申请可以应用于其中的示例性系统架构;
图2是根据本申请的用于复制数据的方法的一个实施例的流程图;
图3是根据本申请的用于复制数据的方法的又一个实施例的流程图;
图4是根据本申请的用于复制数据的装置的一个实施例的结构示意图;
图5是根据本申请的用于复制数据的装置的又一个实施例的结构示意图;
图6是根据本申请的用于复制数据的系统的一个实施例的时序图;
图7是适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
图1示出了可以应用本申请的用于复制数据的方法或用于复制数据的装置的实施例的示例性系统架构100。
如图1所示,系统架构100中可以包括主数据库服务器101,网络102和从数据库服务器103、104、105。网络102用以在主数据库服务器101和从数据库服务器103、104、105之间提供通信链路的介质。网络102可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
主数据库服务器101可以通过网络102与从数据库服务器103、104、105交互,以接收或发送消息等。主数据库服务器101和从数据库服务器103、104、105可以提供各种服务,例如主数据库服务器101可以接收写请求,将写请求中的待写数据对应的物理变更信息写入主物理日志文件中,读取主物理日志文件中的物理变更信息,以及将物理变更信息发送至从数据库服务器103、104、105;从数据库服务器103、104、105可以将从主数据库服务器101接收到的物理变更信息写入从物理日志文件中,读取从物理日志文件中的物理变更信息,以及执行物理变更信息对应的物理变更操作。
需要说明的是,主数据库服务器101和从数据库服务器103、104、105可以是硬件,也可以是软件。当主数据库服务器101和从数据库服务器103、104、105为硬件时,可以实现成多个服务器组成的分布式服务器集群,也可以实现成单个服务器。当主数据库服务器101和从数据库服务器103、104、105为软件时,可以实现成多个软件或软件模块(例如用来提供分布式服务),也可以实现成单个软件或软件模块。在此不做具体限定。
需要说明的是,本申请实施例所提供的用于复制数据的方法可以由主数据库服务器101或从数据库服务器103、104、105执行,相应地,用于复制数据的装置一般设置于主数据库服务器101或从数据库服务器103、104、105中。
应该理解,图1中的主数据库服务器和从数据库服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的主数据库服务器和从数据库服务器。
继续参考图2,其示出了根据本申请的用于复制数据的方法的一个实施例的流程200。该用于复制数据的方法,应用于主数据库服务器,包括以下步骤:
步骤201,接收写请求。
在本实施例中,用于复制数据的方法的执行主体(例如图1所示的主数据库服务器101)可以通过有线连接方式或者无线连接方式接收写请求。其中,写请求可以包括待写数据。
步骤202,将待写数据对应的物理变更信息写入主物理日志文件中。
在本实施例中,上述执行主体可以将待写数据对应的物理变更信息写入主物理日志文件(RedoLog)中。通常,上述执行主体可以首先将物理变更信息写入物理日志的缓存中,然后再写入物理日志文件中。其中,物理变更信息可以是待写数据的数据偏移。主物理日志文件是主数据库服务器中的物理日志文件。
在本实施例的一些可选的实现方式中,在写请求对应的事务的提交阶段将物理变更信息写入主物理日志文件中。这里,将物理变更信息直接写入物理日志文件,不再写入二进制日志文件(BinLog)。并且,对于属于一个组的若干个事务,其IO开销次数为一次物理日志文件写入。与现有技术中基于二进制日志的数据复制方式相比,基于二进制日志的数据复制方式在MySQL提交事务时,会在事务提交的两阶段中的准备阶段(Prepare阶段)先写入物理日志文件,然后在事务提交的两阶段中的提交阶段(Commit)再写入二进制日志文件。对于属于一个组的若干个事务,其IO开销次数为若干次物理日志文件写入和一次二进制日志文件写入,从而降低了数据复制的延时。
在本实施例的一些可选的实现方式中,以四千字节(4KB)对齐方式将物理变更信息写入主物理日志文件中。与现有技术中基于二进制日志的数据复制方式中512对齐方式相比,更加匹配固态硬盘(SSD)的写入读取机制。
在本实施例的一些可选的实现方式中,以文件偏移的原子操作方式将物理变更信息写入主物理日志文件中,以实现读写文件互斥。与现有技术中基于二进制日志的数据复制方式中文件锁实现读写文件互斥相比,实现在一写多读场景的线程间的文件互斥,大幅降低数据复制对主数据库服务器写逻辑的影响,从而降低了互斥开销。
步骤203,读取主物理日志文件中的物理变更信息。
在本实施例中,上述执行主体可以读取主物理日志文件中的物理变更信息。通常,上述执行主体可以通过Dump(备份文件系统)线程以四千字节对齐方式读取主物理日志文件中的物理变更信息,最大不超过十六千字节(16KB),一次性把所有读取到的物理变更信息以四千字节对齐方式发送到从数据库服务。
在本实施例的一些可选的实现方式中,从写请求对应的事务的开启阶段开始读取主物理日志文件中的物理变更信息。通常,当一条物理变更信息写入物理日志文件时,物理日志文件会存在文件偏移,当检测到文件偏移时,即可开始读取物理变更信息。
步骤204,将物理变更信息发送至从数据库服务器。
在本实施例中,上述执行主体可以将物理变更信息发送至从数据库服务器。通常,上述执行主体以四千字节对齐方式将物理变更信息发送至从数据库服务器。
由于物理复制基于物理日志文件,MySQL所有的数据页变更都需要先写入物理日志文件,这就导致了只能主数据库服务器发起清除操作。
在本实施例的一些可选的实现方式中,响应于接收到全部从数据库服务器定时发送的可清除最大历史版本,基于接收到的可清除最大历史版本向从数据库服务器发送清除请求。其中,清除请求包括清除历史版本,清除历史版本是接收到的可清除最大历史版本中的最小历史版本。通常,清除请求通过物理日志文件复制到从数据库服务器。
在本实施例的一些可选的实现方式中,响应于超过预定时间未接收到至少部分从数据库服务器发送的可清除最大历史版本,基于接收到的可清除最大历史版本向从数据库服务器发送强制清除请求。其中,强制清除请求包括强制清除历史版本,强制清除历史版本是接收到的可清除最大历史版本中的最小历史版本。通常,主数据库服务器可以在清除数据之前,先将一条强制清除(force_purge)类型的物理日志写入物理日志文件中,以记录强制清除历史版本。
本申请实施例提供的用于复制数据的方法,首先将接收到的写请求中的待写数据对应的物理变更信息写入主物理日志文件中;然后读取主物理日志文件中的物理变更信息;最后将物理变更信息发送至从数据库服务器。直接将物理变更信息写入物理日志文件中,而不再将逻辑变更信息写入二进制日志文件中,降低了数据复制的延时,提高了数据复制的实时性。
进一步参考图3其示出了根据本申请的用于复制数据的方法的又一个实施例的流程300。该用于复制数据的方法,应用于从数据库服务器,包括以下步骤:
步骤301,接收主数据库服务器发送的物理变更信息。
在本实施例中,用于复制数据的方法的执行主体(例如图1所示的从数据库服务器103、104、105)可以通过有线连接方式或者无线连接方式接收主数据库服务器发送的物理变更信息。通常,上述执行主体可以通过IO线程接收主数据库服务器发送的物理变更信息。
步骤302,将物理变更信息写入从物理日志文件中。
在本实施例中,上述执行主体可以将物理变更信息写入从物理日志文件中。其中,从物理日志文件可以是从数据库服务器中的物理日志文件。
步骤303,读取从物理日志文件中的物理变更信息。
在本实施例中,上述执行主体可以读取从物理日志文件中的物理变更信息。
步骤304,执行物理变更信息对应的物理变更操作。
在本实施例中,上述执行主体可以执行物理变更信息对应的物理变更操作。通常,上述执行主体可以SQL线程(执行线程)执行物理变更信息对应的物理变更操作。与现有技术中基于二进制日志的数据复制方式相比,省去了逻辑变更数据到物理变更数据的转化。将从数据库服务器的日志IO开销从之前的中继日志加物理日志优化成物理日志,执行线程在执行物理变更操作过程中不需要再记录物理日志。
在本实施例的一些可选的实现方式中,上述执行主体可以向主数据库服务器定时发送可清除最大历史版本;响应于接收到主数据库服务器发送的清除请求,基于清除请求中的清除历史版本执行清除操作。即将不大于清除历史版本的数据清除。
在本实施例的一些可选的实现方式中,响应于接收到主数据库服务器发送的强制清除请求,上述执行主体可以比较强制清除请求中的强制清除历史版本与当前可见最小历史版本。若强制清除历史版本小于当前可见最小历史版本,记录强制清除历史版本,以及基于强制清除历史版本执行强制清除操作。若强制清除历史版本不小于当前可见最小历史版本,则忽略强制清除请求。
在本实施例的一些可选的实现方式中,响应于接收到非事务读请求,比较非事务读请求中的可见最小历史版本与强制清除历史版本;若可见最小历史版本不大于强制清除历史版本,返回内部错误提示;若可见最小历史版本大于强制清除历史版本,执行非事务读取请求对应的读取操作。
在本实施例的一些可选的实现方式中,响应于接收到事务读请求,上述执行主体可以比较事务读请求中的可见最小历史版本与强制清除历史版本。若可见最小历史版本不大于强制清除历史版本,断开事务读取请求对应的请求连接。若可见最小历史版本大于强制清除历史版本,执行事务读取请求对应的读取操作。
实践中,从数据库服务器还可以构建事务系统。由于原生物理日志不包括事务信息,我们可以在物理日志中增加事务开启、提交和回滚三种日志类型,以便于构建事务系统。其中,事务提交的标识是在事务提交的两阶段中的准备阶段生成的。在事务提交的两阶段中的提交阶段一开始,利用组提交的方式写入物理日志文件中。通常,活跃事务链表(Trx_ids)可以是创建读ReadView时处于活跃状态的事务集合。其中,小于第一预设标识(up_limit_id)的事务已经提交,大于第二预设标识(low_limit_id)的事务还未开启。构建事务系统的过程中需要判断MVCC(Multi-Version Concurrency Control,多版本并发控制)可见性。例如,每行记录有一个隐藏列为Trx_id,标识最后修改该行记录的事务的标识。当某个会话读取某行记录,会结合该行记录的Trx_id和该会话的ReadView进行判断:如果该行记录的Trx_id小于up_limit_id,则数据可见;如果该行记录的Trx_id大于low_limit_id,则数据不可见;如果该行记录的Trx_id in trx_ids,则数据不可见。构建事务系统的过程中需要推进ReadView。通常,从数据库服务器可以根据主数据库服务器同步过来的事务信息,推进系统生成ReadView的变化(up_limit_id、low_limit_id、trx_ids),从而推进从数据库服务器的数据更新。需要说明的是,在清除过程中,事务提交的标识小于low_limit_no的事务在创建ReadView时已经提交,其undolog不再需要。如果活跃事务链表中的事务都未申请trx_no,low_limit_no=max_trx_id,则取活跃事务链表中trx_no的最小值。
在特殊场景下,在事务开启过程中:trx_id=max_trx_id++,同时写入MLOG_TRX_START类型日志,其中包括Trx_id。在事务提交过程中:trx_no=max_trx_id++。如果采用同步将Trx_no写入到RedoLog,通知从数据库服务器会增加IO开销。如果采用批量将Trx_no写入到RedoLog,由于不是实时写入,会导致下面的问题:从数据库服务器创建ReadView时,是根据MAX_TRX_ID创建low_limit_no。当某个已提交事务的no(主数据库服务器上)小于后续开始事务的标识先同步到从数据库服务器。此时,从数据库服务器创建的ReadView的low_limit_no会覆盖已提交事务,即从数据库服务器将这个no同步给主数据库服务器,主数据库服务器根据其进行清除时,会清除掉已提交事务的undo记录。从数据库服务器创建该ReadView的事务由需要已提交事务的老版本,这样就会出问题。为了解决这个问题,对从数据库服务器来说,在形成空洞前,将提交事务移出活跃事务链表,这样就不需要历史版本,空洞的影响就不存在了。因此方案是从数据库服务器利用主数据库服务器在准备阶段生成的MLOG_TRX_COMMIT类型日志,将该事务从对应活跃事务链表中移出。
本申请实施例提供的用于复制数据的方法,首先将接收到的主数据库服务器发送的物理变更信息写入从物理日志文件中;然后读取从物理日志文件中的物理变更信息;最后执行物理变更信息对应的物理变更操作。直接将物理变更信息写入物理日志文件中,而不再将逻辑变更信息写入二进制日志文件中,降低了数据复制的延时,提高了数据复制的实时性。
进一步参考图4,作为对上述各图所示方法的实现,本申请提供了一种用于复制数据的装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图4所示,本实施例的用于复制数据的装置400可以包括:写请求接收单元401、物理变更信息写入单元402、物理变更信息读取单元403和物理变更信息发送单元404。其中,写请求接收单元401,被配置成接收写请求,其中,写请求包括待写数据;物理变更信息写入单元402,被配置成将待写数据对应的物理变更信息写入主物理日志文件中;物理变更信息读取单元403,被配置成读取主物理日志文件中的物理变更信息;物理变更信息发送单元404,被配置成将物理变更信息发送至从数据库服务器。
在本实施例中,用于复制数据的装置400中:写请求接收单元401、物理变更信息写入单元402、物理变更信息读取单元403和物理变更信息发送单元404的具体处理及其所带来的技术效果可分别参考图2对应实施例中的步骤201、步骤202、步骤203和步骤204的相关说明,在此不再赘述。
在本实施例的一些可选的实现方式中,物理变更信息写入单元402进一步被配置成:在写请求对应的事务的提交阶段将物理变更信息写入主物理日志文件中。
在本实施例的一些可选的实现方式中,物理变更信息写入单元402进一步被配置成:以四千字节对齐方式将物理变更信息写入主物理日志文件中。
在本实施例的一些可选的实现方式中,物理变更信息写入单元402进一步被配置成:以文件偏移的原子操作方式将物理变更信息写入主物理日志文件中。
在本实施例的一些可选的实现方式中,物理变更信息读取单元403进一步被配置成:从写请求对应的事务的开启阶段开始读取主物理日志文件中的物理变更信息。
在本实施例的一些可选的实现方式中,用于复制数据的装置400还包括:清除请求发送单元(图中未示出),被配置成响应于接收到全部从数据库服务器定时发送的可清除最大历史版本,基于接收到的可清除最大历史版本向从数据库服务器发送清除请求,其中,清除请求包括清除历史版本,清除历史版本是接收到的可清除最大历史版本中的最小历史版本。
在本实施例的一些可选的实现方式中,用于复制数据的装置400还包括:强制清除请求发送单元(图中未示出),被配置成响应于超过预定时间未接收到至少部分从数据库服务器发送的可清除最大历史版本,基于接收到的可清除最大历史版本向从数据库服务器发送强制清除请求,其中,强制清除请求包括强制清除历史版本,强制清除历史版本是接收到的可清除最大历史版本中的最小历史版本。
进一步参考图5,作为对上述各图所示方法的实现,本申请提供了一种用于复制数据的装置的又一个实施例,该装置实施例与图3所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图5所示,本实施例的用于复制数据的装置500可以包括:物理变更信息接收单元501、物理变更信息写入单元502、物理变更信息读取单元503和物理变更信息执行单元504。其中,物理变更信息接收单元501,被配置成接收主数据库服务器发送的物理变更信息;物理变更信息写入单元502,被配置成将物理变更信息写入从物理日志文件中;物理变更信息读取单元503,被配置成读取从物理日志文件中的物理变更信息;物理变更信息执行单元504,被配置成执行物理变更信息对应的物理变更操作。
在本实施例中,用于复制数据的装置500中:物理变更信息接收单元501、物理变更信息写入单元502、物理变更信息读取单元503和物理变更信息执行单元504的具体处理及其所带来的技术效果可分别参考图3对应实施例中的步骤301、步骤302、步骤303和步骤304的相关说明,在此不再赘述。
在本实施例的一些可选的实现方式中,用于复制数据的装置500还包括:可清除最大历史版本发送单元(图中未示出),被配置成向主数据库服务器定时发送可清除最大历史版本;清除操作执行单元(图中未示出),被配置成响应于接收到主数据库服务器发送的清除请求,基于清除请求中的清除历史版本执行清除操作。
在本实施例的一些可选的实现方式中,用于复制数据的装置500还包括:强制清除历史版本比较单元(图中未示出),被配置成响应于接收到主数据库服务器发送的强制清除请求,比较强制清除请求中的强制清除历史版本与当前可见最小历史版本;强制清除操作执行单元(图中未示出),被配置成若强制清除历史版本小于当前可见最小历史版本,记录强制清除历史版本,以及基于强制清除历史版本执行强制清除操作。
在本实施例的一些可选的实现方式中,用于复制数据的装置500还包括:非事务读请求处理单元(图中未示出),被配置成响应于接收到非事务读请求,比较非事务读请求中的可见最小历史版本与强制清除历史版本,若可见最小历史版本不大于强制清除历史版本,返回内部错误提示,若可见最小历史版本大于强制清除历史版本,执行非事务读取请求对应的读取操作。
在本实施例的一些可选的实现方式中,用于复制数据的装置500还包括:事务读请求处理单元(图中未示出),被配置成响应于接收到事务读请求,比较事务读请求中的可见最小历史版本与强制清除历史版本,若可见最小历史版本不大于强制清除历史版本,断开事务读取请求对应的请求连接,若可见最小历史版本大于强制清除历史版本,执行事务读取请求对应的读取操作。
继续参考图6,其示出了根据本申请的用于复制数据的系统的一个实施例的时序600。
本实施例中的用于复制数据的系统可以包括:主数据库服务器和从数据库服务器:主数据库服务器,用于接收写请求,将写请求中的待写数据对应的物理变更信息写入主物理日志文件中,读取主物理日志文件中的物理变更信息,以及将物理变更信息发送至从数据库服务器;从数据库服务器,用于将从主数据库服务器接收到的物理变更信息写入从物理日志文件中,读取从物理日志文件中的物理变更信息,以及执行物理变更信息对应的物理变更操作。
如图6所示,在步骤601中,主数据库服务器接收写请求,将写请求中的待写数据对应的物理变更信息写入主物理日志文件中。
在步骤602中,主数据库服务器读取主物理日志文件中的物理变更信息。
在步骤603中,主数据库服务器将物理变更信息发送至从数据库服务器。
在步骤604中,从数据库服务器将从主数据库服务器接收到的物理变更信息写入从物理日志文件中。
在步骤605中,从数据库服务器读取从物理日志文件中的物理变更信息。
在步骤606中,从数据库服务器执行物理变更信息对应的物理变更操作。
在本实施例中,步骤601-603的具体操作与图2所示的实施例中步骤201-204的操作基本相同,在此不再赘述。步骤604-606的具体操作与图3所示的实施例中步骤302-304的操作基本相同,在此不再赘述。
在本实施例的一些可选的实现方式中,主数据库服务器还用于:在写请求对应的事务的提交阶段将物理变更信息写入主物理日志文件中。
在本实施例的一些可选的实现方式中主数据库服务器还用于:以四千字节对齐方式将物理变更信息写入主物理日志文件中。
在本实施例的一些可选的实现方式中主数据库服务器还用于:以文件偏移的原子操作方式将物理变更信息写入主物理日志文件中。
在本实施例的一些可选的实现方式中主数据库服务器还用于:从写请求对应的事务的开启阶段开始读取主物理日志文件中的物理变更信息。
在本实施例的一些可选的实现方式中主数据库服务器还用于:响应于接收到全部从数据库服务器定时发送的可清除最大历史版本,基于接收到的可清除最大历史版本向从数据库服务器发送清除请求,其中,清除请求包括清除历史版本,清除历史版本是接收到的可清除最大历史版本中的最小历史版本。
在本实施例的一些可选的实现方式中主数据库服务器还用于:响应于超过预定时间未接收到至少部分从数据库服务器发送的可清除最大历史版本,基于接收到的可清除最大历史版本向从数据库服务器发送强制清除请求,其中,强制清除请求包括强制清除历史版本,强制清除历史版本是接收到的可清除最大历史版本中的最小历史版本。
在本实施例的一些可选的实现方式中从数据库服务器还用于:向主数据库服务器定时发送可清除最大历史版本;响应于接收到主数据库服务器发送的清除请求,基于清除请求中的清除历史版本执行清除操作。
在本实施例的一些可选的实现方式中从数据库服务器还用于:响应于接收到主数据库服务器发送的强制清除请求,比较强制清除请求中的强制清除历史版本与当前可见最小历史版本;若强制清除历史版本小于当前可见最小历史版本,记录强制清除历史版本,以及基于强制清除历史版本执行强制清除操作。
在本实施例的一些可选的实现方式中从数据库服务器还用于:响应于接收到非事务读请求,比较非事务读请求中的可见最小历史版本与强制清除历史版本;若可见最小历史版本不大于强制清除历史版本,返回内部错误提示;若可见最小历史版本大于强制清除历史版本,执行非事务读取请求对应的读取操作。
在本实施例的一些可选的实现方式中从数据库服务器还用于:响应于接收到事务读请求,比较事务读请求中的可见最小历史版本与强制清除历史版本;若可见最小历史版本不大于强制清除历史版本,断开事务读取请求对应的请求连接;若可见最小历史版本大于强制清除历史版本,执行事务读取请求对应的读取操作。
下面参考图7,其示出了适于用来实现本申请实施例的电子设备(例如图1所示的主数据库服务器101或从数据库服务器103、104、105)的计算机系统700的结构示意图。图7示出的电子设备仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图7所示,计算机系统700包括中央处理单元(CPU)701,其可以根据存储在只读存储器(ROM)702中的程序或者从存储部分708加载到随机访问存储器(RAM)703中的程序而执行各种适当的动作和处理。在RAM 703中,还存储有系统700操作所需的各种程序和数据。CPU 701、ROM 702以及RAM 703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。
以下部件连接至I/O接口705:包括键盘、鼠标等的输入部分706;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分707;包括硬盘等的存储部分708;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分709。通信部分709经由诸如因特网的网络执行通信处理。驱动器710也根据需要连接至I/O接口705。可拆卸介质711,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器710上,以便于从其上读出的计算机程序根据需要被安装入存储部分708。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分709从网络上被下载和安装,和/或从可拆卸介质711被安装。在该计算机程序被中央处理单元(CPU)701执行时,执行本申请的方法中限定的上述功能。需要说明的是,本申请所述的计算机可读介质可以是计算机可读信号介质或者计算机可读介质或者是上述两者的任意组合。计算机可读介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本申请的操作的计算机程序代码,所述程序设计语言包括面向目标的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如”C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包括写请求接收单元、物理变更信息写入单元、物理变更信息读取单元和物理变更信息发送单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定,例如,写请求接收单元还可以被描述为“接收写请求的单元”。又例如,可以描述为:一种处理器包括物理变更信息接收单元、物理变更信息写入单元、物理变更信息读取单元和物理变更信息执行单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定,例如,物理变更信息接收单元还可以被描述为“接收主数据库服务器发送的物理变更信息的单元”。
作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:接收写请求,其中,写请求包括待写数据;将待写数据对应的物理变更信息写入主物理日志文件中;读取主物理日志文件中的物理变更信息;将物理变更信息发送至从数据库服务器。或者使得该电子设备:接收主数据库服务器发送的物理变更信息;将物理变更信息写入从物理日志文件中;读取从物理日志文件中的物理变更信息;执行物理变更信息对应的物理变更操作。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

Claims (17)

1.一种用于复制数据的方法,应用于主数据库服务器,包括:
接收写请求,其中,所述写请求包括待写数据;
将所述待写数据对应的物理变更信息写入主物理日志文件中,其中,所述物理变更信息是待写数据的数据偏移;
读取所述主物理日志文件中的所述物理变更信息;
将所述物理变更信息发送至从数据库服务器。
2.根据权利要求1所述的方法,其中,所述将所述待写数据对应的物理变更信息写入主物理日志文件中,包括:
在所述写请求对应的事务的提交阶段将所述物理变更信息写入所述主物理日志文件中。
3.根据权利要求1所述的方法,其中,所述将所述待写数据对应的物理变更信息写入主物理日志文件中,包括:
以四千字节对齐方式将所述物理变更信息写入所述主物理日志文件中。
4.根据权利要求1所述的方法,其中,所述将所述待写数据对应的物理变更信息写入主物理日志文件中,包括:
以文件偏移的原子操作方式将所述物理变更信息写入所述主物理日志文件中。
5.根据权利要求1所述的方法,其中,所述读取所述主物理日志文件中的所述物理变更信息,包括:
从所述写请求对应的事务的开启阶段开始读取所述主物理日志文件中的所述物理变更信息。
6.根据权利要求1所述的方法,其中,所述方法还包括:
响应于接收到全部所述从数据库服务器定时发送的可清除最大历史版本,基于接收到的可清除最大历史版本向所述从数据库服务器发送清除请求,其中,所述清除请求包括清除历史版本,所述清除历史版本是接收到的可清除最大历史版本中的最小历史版本。
7.根据权利要求6所述的方法,其中,所述方法还包括:
响应于超过预定时间未接收到至少部分所述从数据库服务器发送的可清除最大历史版本,基于接收到的可清除最大历史版本向所述从数据库服务器发送强制清除请求,其中,所述强制清除请求包括强制清除历史版本,所述强制清除历史版本是接收到的可清除最大历史版本中的最小历史版本。
8.一种用于复制数据的方法,应用于从数据库服务器,包括:
接收主数据库服务器发送的物理变更信息,其中,所述物理变更信息是待写数据的数据偏移;
将所述物理变更信息写入从物理日志文件中;
读取所述从物理日志文件中的所述物理变更信息;
执行所述物理变更信息对应的物理变更操作。
9.根据权利要求8所述的方法,其中,所述方法还包括:
向所述主数据库服务器定时发送可清除最大历史版本;
响应于接收到所述主数据库服务器发送的清除请求,基于所述清除请求中的清除历史版本执行清除操作。
10.根据权利要求8所述的方法,其中,所述方法还包括:
响应于接收到所述主数据库服务器发送的强制清除请求,比较所述强制清除请求中的强制清除历史版本与当前可见最小历史版本;
若所述强制清除历史版本小于所述当前可见最小历史版本,记录所述强制清除历史版本,以及基于所述强制清除历史版本执行强制清除操作。
11.根据权利要求10所述的方法,其中,所述方法还包括:
响应于接收到非事务读请求,比较所述非事务读请求中的可见最小历史版本与所述强制清除历史版本;
若所述可见最小历史版本不大于所述强制清除历史版本,返回内部错误提示;
若所述可见最小历史版本大于所述强制清除历史版本,执行所述非事务读取请求对应的读取操作。
12.根据权利要求10所述的方法,其中,所述方法还包括:
响应于接收到事务读请求,比较所述事务读请求中的可见最小历史版本与所述强制清除历史版本;
若所述可见最小历史版本不大于所述强制清除历史版本,断开所述事务读取请求对应的请求连接;
若所述可见最小历史版本大于所述强制清除历史版本,执行所述事务读取请求对应的读取操作。
13.一种用于复制数据的装置,设置于主数据库服务器,包括:
写请求接收单元,被配置成接收写请求,其中,所述写请求包括待写数据;
物理变更信息写入单元,被配置成将所述待写数据对应的物理变更信息写入主物理日志文件中,其中,所述物理变更信息是待写数据的数据偏移;
物理变更信息读取单元,被配置成读取所述主物理日志文件中的所述物理变更信息;
物理变更信息发送单元,被配置成将所述物理变更信息发送至从数据库服务器。
14.一种用于复制数据的装置,设置于从数据库服务器,包括:
物理变更信息接收单元,被配置成接收主数据库服务器发送的物理变更信息,其中,所述物理变更信息是待写数据的数据偏移;
物理变更信息写入单元,被配置成将所述物理变更信息写入从物理日志文件中;
物理变更信息读取单元,被配置成读取所述从物理日志文件中的所述物理变更信息;
物理变更信息执行单元,被配置成执行所述物理变更信息对应的物理变更操作。
15.一种用于复制数据的系统,包括主数据库服务器和从数据库服务器:
所述主数据库服务器,用于接收写请求,将所述写请求中的待写数据对应的物理变更信息写入主物理日志文件中,读取所述主物理日志文件中的所述物理变更信息,以及将所述物理变更信息发送至所述从数据库服务器,其中,所述物理变更信息是待写数据的数据偏移;
所述从数据库服务器,用于将从所述主数据库服务器接收到的所述物理变更信息写入从物理日志文件中,读取所述从物理日志文件中的所述物理变更信息,以及执行所述物理变更信息对应的物理变更操作。
16.一种电子设备,包括:
一个或多个处理器;
存储装置,其上存储有一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一所述的方法或者实现如权利要求8-12中任一所述的方法。
17.一种计算机可读介质,其上存储有计算机程序,其中,所述计算机程序被处理器执行时实现如权利要求1-7中任一所述的方法或者实现如权利要求8-12中任一所述的方法。
CN201811255355.XA 2018-10-26 2018-10-26 用于复制数据的方法、装置和系统 Active CN109358817B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811255355.XA CN109358817B (zh) 2018-10-26 2018-10-26 用于复制数据的方法、装置和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811255355.XA CN109358817B (zh) 2018-10-26 2018-10-26 用于复制数据的方法、装置和系统

Publications (2)

Publication Number Publication Date
CN109358817A CN109358817A (zh) 2019-02-19
CN109358817B true CN109358817B (zh) 2022-02-18

Family

ID=65346934

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811255355.XA Active CN109358817B (zh) 2018-10-26 2018-10-26 用于复制数据的方法、装置和系统

Country Status (1)

Country Link
CN (1) CN109358817B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115237875B (zh) * 2022-09-26 2023-01-24 成都卫士通信息产业股份有限公司 一种日志数据处理方法、装置、设备、存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107026880A (zh) * 2016-02-01 2017-08-08 北京京东尚科信息技术有限公司 数据同步方法和装置
CN107330065A (zh) * 2017-06-29 2017-11-07 华泰证券股份有限公司 一种基于ISER协议的MySQL数据库复制方法
CN108460163A (zh) * 2018-04-13 2018-08-28 郑州云海信息技术有限公司 K-db数据库数据同步方法、装置、设备及存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8868492B2 (en) * 2011-06-15 2014-10-21 Oracle International Corporation Method for maximizing throughput and minimizing transactions response times on the primary system in the presence of a zero data loss standby replica

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107026880A (zh) * 2016-02-01 2017-08-08 北京京东尚科信息技术有限公司 数据同步方法和装置
CN107330065A (zh) * 2017-06-29 2017-11-07 华泰证券股份有限公司 一种基于ISER协议的MySQL数据库复制方法
CN108460163A (zh) * 2018-04-13 2018-08-28 郑州云海信息技术有限公司 K-db数据库数据同步方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN109358817A (zh) 2019-02-19

Similar Documents

Publication Publication Date Title
US11003689B2 (en) Distributed database transaction protocol
US11768820B2 (en) Elimination of log file synchronization delay at transaction commit time
US10678808B2 (en) Eager replication of uncommitted transactions
CN109271450B (zh) 数据库同步方法、装置、服务器和存储介质
EP3234780B1 (en) Detecting lost writes
CN102402596B (zh) 一种主从分离数据库的读写方法和系统
CN102236705B (zh) 数据库重放的细粒度同步
US8832038B2 (en) Online recovery of user tables using flashback table
US7996363B2 (en) Real-time apply mechanism in standby database environments
US20120259824A1 (en) Maintaining index data in a database
US11379437B1 (en) Zero-outage database reorganization
US20160179919A1 (en) Asynchronous data replication using an external buffer table
US7478112B2 (en) Method and apparatus for initializing data propagation execution for large database replication
US20150074070A1 (en) System and method for reconciling transactional and non-transactional operations in key-value stores
CN109947742B (zh) 面向二阶段锁的多版本数据库并发控制方法和系统
US11893041B2 (en) Data synchronization between a source database system and target database system
US20230014427A1 (en) Global secondary index method for distributed database, electronic device and storage medium
WO2023160095A1 (zh) 在区块链系统中实现结构化数据存储和查询的方法和系统
CN113868028A (zh) 一种在数据节点上回放日志的方法、数据节点及系统
US11875178B2 (en) Using multiple blockchains for applying transactions to a set of persistent data objects in persistent storage systems
US8935294B2 (en) Minimizing computer resource usage when converting data types of a table column
CN109358817B (zh) 用于复制数据的方法、装置和系统
US10877992B2 (en) Updating a database
US10685014B1 (en) Method of sharing read-only data pages among transactions in a database management system
US10459810B2 (en) Technique for higher availability in a multi-node system using replicated lock information to determine a set of data blocks for recovery

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