CN105279210A - 同步复制环境中的自动模式切换 - Google Patents
同步复制环境中的自动模式切换 Download PDFInfo
- Publication number
- CN105279210A CN105279210A CN201410771823.4A CN201410771823A CN105279210A CN 105279210 A CN105279210 A CN 105279210A CN 201410771823 A CN201410771823 A CN 201410771823A CN 105279210 A CN105279210 A CN 105279210A
- Authority
- CN
- China
- Prior art keywords
- replication
- mode
- database
- trigger event
- change
- 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
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/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)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
在一些示例中公开了一种数据库复制的方法,该方法包括:在关系数据库管理系统(RDMS)处,确定第一复制模式;识别触发事件;确定触发事件指示第一复制模式的改变;响应于确定触发事件指示第一复制模式的改变,确定第二复制模式,第二复制模式是与第一复制模式不同的复制模式;识别由一个或多个数据库任务作出的数据库改变;以及根据第二复制模式将数据库改变复制到外部复制组件。
Description
本专利申请要求2014年6月26日递交的14290187.5号欧洲申请(EPO)的申请日的优先权益,这里通过引用并入该欧洲申请的全部内容。
背景技术
关系数据库管理系统(RelationalDatabaseManagementSystem,RDMS)是基于关系数据库模型的数据库管理系统。数据库管理系统可以是在用户(例如,数据库任务)与一个或多个数据库之间提供接口的软件应用(其可在一个或多个硬件资源上执行)。RDMS支持在数据库中存储数据、定义和操纵来自数据库的数据结构、更新数据库中的数据、删除数据库中的数据、在数据库中插入数据、从数据库取回数据、管理数据库以及其他功能。
RDMS是基于事务(transaction)的概念来操作的。事务是在数据库管理系统内对数据库执行的工作单位,并且被以连贯且可靠的方式独立于其他事务来对待。事务通常结束于COMMIT(提交)指令的发出,并且可包含一个或多个数据库改变。
RDMS系统有时以数据库复制为特征。数据库复制涉及在RDMS中跨一个或多个数据库复制事务数据以允许数据库的多个拷贝被存储在多个电子位置中。在一些示例中,这可能是合乎希望的,以便提供分布式访问,允许用户更好地共享信息,并且提供数据库的备份拷贝。在RDMS中从一数据库复制数据常常是通过从数据库事务日志(以下称为主数据库)复制事务日志记录来实现的,这些事务日志记录是在存储在同一个数据库中的数据被改变时写入的。数据库事务日志可包括在数据库中进行的修改(事务)的历史。
发明内容
在一些示例实施例中公开的是能够基于情形和数据库任务的需要在同步和异步复制模式之间实时切换的方法、机器(例如,数据库服务器)和机器可读介质。
根据本公开的一个方面,一种数据库复制的方法包括:在关系数据库管理系统(RDMS)处,利用一个或多个计算机处理器:确定第一复制模式;识别触发事件;确定所述触发事件指示所述第一复制模式的改变;响应于确定所述触发事件指示所述第一复制模式的改变,确定第二复制模式,所述第二复制模式是与所述第一复制模式不同的复制模式;识别由一个或多个数据库任务作出的数据库改变;以及根据所述第二复制模式将所述数据库改变复制到外部复制组件。
根据本公开的另一方面,一种关系数据库管理系统(RDMS)包括:一个或多个计算机处理器;以及复制代理,该复制代理被所述一个或多个计算机处理器执行来:确定第一复制模式;识别触发事件;确定所述触发事件指示所述第一复制模式的改变;响应于确定所述触发事件指示所述第一复制模式的改变,确定第二复制模式,所述第二复制模式是与所述第一复制模式不同的复制模式;以及根据所述第二复制模式将数据库改变复制到外部复制组件。
根据本公开的另一方面,一种存储指令的机器可读介质,所述指令当被机器执行时使得该机器执行操作,所述操作包括:识别触发事件;确定所述触发事件指示第一复制模式的改变;响应于确定所述触发事件指示所述第一复制模式的改变,确定第二复制模式;识别由一个或多个数据库任务作出的数据库改变;以及根据所述第二复制模式将所述数据库改变复制到外部复制组件。
附图说明
在不一定按比例绘制的附图中,相似的标号在不同视图中可描述相似的组件。具有不同字母后缀的相似标号可表示相似组件的不同实例。附图概括地以示例方式而非限制方式图示了本文档中论述的各种实施例。
图1示出了根据一些示例实施例的从同步到异步的复制模式切换的通知序列图。
图2示出了根据一些示例实施例的从异步到同步的复制模式切换的通知序列图。
图3示出了根据一些示例实施例的复制代理改变复制模式的方法的流程图。
图4示出了根据一些示例实施例的数据库任务的方法的流程图。
图5示出了根据一些示例实施例的被复制数据库系统的示意图。
图6是图示出一个或多个示例实施例可在其上实现的机器的示例的框图。
具体实施方式
在RDMS中从一数据库复制数据常常是通过从数据库事务日志(以下称为主数据库)复制事务日志记录来实现的,这些事务日志记录是在存储在同一个数据库中的数据被改变时写入的。数据库事务日志可包括在数据库中进行的修改(事务)的历史。对事务日志的改变被分发到外部复制组件,该外部复制组件然后负责将事务数据复制到其他电子位置上的数据库的其他拷贝。外部复制组件可利用订阅(subscription)过程,在订阅过程中,对于接收对被复制数据库的更新感兴趣的数据库服务器向该外部复制组件进行订阅。订阅可以是对数据库的一些部分的,但在其他示例中,订阅可以是对整个数据库的。随后基于订阅将更新推送到订阅的设备。
数据库复制可由复制模式来描述。复制模式可以是定义要如何处理复制的一个或多个规则。示例模式可包括异步模式和同步模式。在异步模式中,数据库任务在继续进行操作之前不会等待外部复制组件确认日志数据。在同步模式中,数据库任务将等待继续进行,直到外部复制组件已确认了该改变为止。数据库任务可以是对数据库作出改变的任何进程、线程或程序。在一些示例实施例中,数据库任务可以利用结构化查询语言(StructuredQueryLanguage,SQL)对数据库作出改变。
同步复制的目标是确保在大事故的情况下,在主数据库上提交的数据不仅会存在于复制的站点上,而且将会存在于盘上。如果源数据库与外部复制组件之间的通信缓慢或者不工作,则同步复制可负面地影响数据库事务响应时间。异步复制对于数据库事务响应时间没有任何影响,但在主数据库发生大故障的情况下,数据库拷贝可能失去同步。
在一些示例实施例中公开的是能够基于情形和数据库任务的需要在同步和异步复制模式之间实时切换的方法、机器(例如,数据库服务器)和机器可读介质。实施例自动地并且在没有手动(例如,人类)干预的情况下在同步和异步复制模式之间切换。
在一些示例实施例中,可以检测或创建能够改变数据库复制模式的一个或多个触发事件。例如,外部复制组件与数据库服务器之间的接口可以是网络(例如,基于分组的计算机网络)。如果网络遭遇运行中断、流量繁重或者太慢,则来自外部复制组件的确认通知可能不被递送或者可能被晚递送到RDMS。在同步复制的情况下,等待响应的数据库任务可能困在对这个确认的等待中。结果,一个示例触发事件可以是RDMS处的定时器的期满,该定时器的期满可使得RDMS在其接收来自外部复制组件的确认之前唤醒数据库任务,从而将复制模式切换到异步。
图1示出了根据本公开的一些示例的从同步复制模式到异步复制模式的复制模式切换的实施例的示例通知序列图1000。RDMS1010可包括数据库任务1020。数据库任务1020可以是对数据库作出改变的任何进程、线程或程序。在一些示例实施例中,数据库任务1020可以利用结构化查询语言(SQL)对数据库作出改变。RDMS1010还可包括复制代理1030。复制代理1030可与外部复制组件1040通信并且可负责检测对要复制的数据库的改变。RDMS1010可包括未示出的额外模块,这些模块管理数据库、执行SQL语句、管理数据库任务1020,等等。
在图1的示例中,在1050,数据库任务1020作出数据库改变(例如,改变(A))并且将该改变写入到事务日志1025。此时,在对图1的论述中,RDMS1010处于同步复制模式中。复制代理1030在1060检测对事务日志的改变。复制代理1030可通过就新的日志条目或者就对事务日志1025的待发生改变(例如,排队等待写入到事务日志1025的改变)监视事务日志1025,来检测对数据库的改变(例如,作为操作1050的结果的改变)。在检测到改变1050后,复制代理1030将检测到的改变与消息或通知1070一起发送到外部复制组件1040。
虽然图1示出了去往/来自数据库任务1020、事务日志1025、复制代理1030以及从复制代理1030去往/来自外部复制组件1040的线条,但要理解这种线条可以是消息,但也可以是其他形式的通知,包括对日志文件的监视、进程间通信(例如,共享的存储器)或者任何其他形式的信息通信。附图中描述的通知可以是基本信号(例如中断),但也可包含更详细的信息,例如关于对数据库作出的改变的信息(例如,日志条目),等等。
由于改变1050不包括提交指令,所以数据库任务1020即使在同步模式中也不等待外部复制组件1040确认该改变。外部复制组件1040进行的确认可由外部复制组件1040在外部复制组件1040接收到对改变的通知时或者当复制组件1040向其自己的事务日志的拷贝应用改变时发送。来自外部复制组件1040的确认改变A被外部复制组件1040接收到(或者提交)的通知在1080被递送到复制代理1030。
在1090,数据库任务1020对数据库作出额外的改变(例如,改变(B))并且将该改变写入到事务日志1025。改变(例如,改变(B))包括数据库提交指令。由于此改变包括提交指令,所以数据库任务1020在1095进入休眠。在一些示例中,休眠包括暂停操作,直到复制代理1030接收到来自外部复制组件1040的确认为止。一旦复制代理1030在1100检测到第二改变(例如,改变(B)),复制代理1030就在1110将该改变发送到外部复制组件1040,外部复制组件1040在1120利用确认来对该改变进行答复。复制代理1030在1130通知数据库任务1020:改变既被写入到盘,并且外部复制组件1040也确认了。此时,数据库任务1020在1135响应于通知1130而醒来并且再次开始处理。
在1140,数据库任务1020作出另一数据库改变(例如,改变(C))并且将该改变写入到事务日志1025。改变(例如,改变(C))包括提交指令。由于该额外改变(例如,改变(C))包括提交指令,所以数据库任务1020在1145进入休眠。复制代理1030在1150检测此改变(例如,改变(C))并且在1160将该改变发送到外部复制组件1040。在1163,复制代理1030检测切换复制模式的触发事件。在一些示例中,触发事件是检测到用于从外部复制组件1040接收确认通知的超时时段已期满。例如,预期由外部复制组件1040发送到复制代理1030的确认通知可能未在期望的时间到达复制代理1030(例如,因为网络问题)。例如,在1163,复制代理1030检测定时器的期满并且将定时器的期满解读为将复制模式改变到异步复制模式的触发事件并且在1163切换复制模式。复制代理1030可在1165将该模式切换通知给外部复制组件1040。此外,复制代理1030在1170通知数据库任务1020,尽管例如在一时间段期满之前没有接收到来自外部复制组件1040的对该改变(例如,改变(C))的确认。该通知在1175唤醒数据库任务1020(或者任何其他等待通知的任务)。数据库任务1020现在可作出额外的数据库改变。这些改变是根据异步复制规则来执行的。例如,数据库任务1020作出另一改变(例如,改变(D))并且在1180将该改变写入到事务日志1025。改变(例如,改变(D))包括提交指令。改变(例如,改变(D))当在1190被复制代理1030检测到时在1200被转发到外部复制组件1040。外部复制组件1040在1210利用确认来答复复制代理1030。注意,由于模式现在是异步,所以数据库任务1020不进入休眠等待来自外部复制组件1040的通知。注意,除了在改变发生时通知外部复制组件1040(例如,在1165)以外,或者取代在改变发生时通知外部复制组件1040,复制代理1030还可在向外部复制组件1040发送改变时包括关于当前模式的信息。例如,在1070、1110、1160和1200发送的消息可指定RDMS的当前复制模式。从同步到异步的模式切换可在操作1200利用改变(D)来传达,而不是在操作1165传达。
图2示出了根据本公开的一些示例的从异步到同步的复制模式切换的示例通知序列图2000。RDMS2010开始在异步模式中操作。在2050,数据库任务2020作出数据库改变(例如,改变(A))并且将该改变写入到事务日志2025。复制代理2030在2060检测此改变,并且作为响应,复制代理2030在2070将此改变发送到外部复制组件2040。外部复制组件2040在2080可利用通知来确认此改变。数据库任务2020可作出其他改变,例如在2090的改变(例如,改变(B))。在2090的改变包括提交指令。与同步模式不同,数据库任务2020不等待来自外部复制组件2040的确认。改变(B)在2100被复制代理2030检测到,并且复制代理2030在2110将该改变发送到外部复制组件2040。外部复制组件2040在2120利用确认来通知复制代理2030。注意,虽然图2示出了将单个的改变发送到外部复制组件2040的情形,但在一些示例实施例中,可以成批地处理改变。例如,复制代理2030可按预定的时间间隔扫描事务日志2025。从而,改变(A)和改变(B)可在单次通信中被发送到外部复制组件2040。
复制代理2030可接收或确定使得复制代理2030改变复制模式的事件。例如,触发事件可指示复制模式应当从异步复制模式切换到同步复制模式。例如,当复制代理2030在使得复制代理2030变得暂停的事件之后重启时,复制代理2030可能已将RDMS2010置于异步模式中。将RDMS2010置于异步模式中允许了复制代理2030赶上(catchup)在复制代理2030重启的同时发生的数据库改变,同时允许了数据库任务2020没有延迟地继续。在此示例中,让复制代理2030将复制模式切换到同步模式的触发事件可以是当复制代理2030到达数据库日志的末尾(并且因此被赶上)时。当在2123检测到该触发事件时(例如,复制代理2030到达数据库日志的末尾),例如,如果RDMS2010被配置为将操作返回到同步模式,则复制代理2030通过将RDMS2010置于同步模式中来切换复制模式。
一旦检测到触发事件并且切换了复制模式,来自数据库任务2020的数据库改变随后就被同步地更新,并且复制代理2030在2125把到同步复制模式的改变通知给外部复制组件2040。例如,如果数据库任务2020在2130向事务日志2025提交改变(例如,改变(C))。由于该改变(例如,改变(C))包括提交指令,并且RDMS2010现在在同步模式中,所以数据库任务2020在2135进入休眠。数据库任务2020在继续操作之前在休眠模式中等待,直到接收到来自复制代理2030的通知2170为止。复制代理2030在2140检测该改变(例如,改变(C))并且在2150将该改变发送到外部复制组件2040。一旦外部复制组件2040在2150接收到指示该改变的消息,外部复制组件2040就在2160向复制代理2030发送对接收到该改变的确认。复制代理2030在2170将该确认通知给数据库任务2020。一旦数据库任务2020接收到指出数据库改变C成功的通知2170,数据库任务2020就在2175醒来。如在图1中指出的,除了在模式改变发生时通知外部复制组件2040(例如,在2125)以外,或者取代在模式改变发生时通知外部复制组件2040,复制代理2030还可在向外部复制组件2040发送改变时包括关于当前模式的信息。从而,例如,在2070、2110、2150发送的消息可指定RDMS的当前复制模式。
注意,在附图中只示出了一个数据库任务1020和2020;然而,多个数据库任务可在RDMS2010上执行。来自复制代理1030和2030的各种通知(例如,通知1130、1170和2170)可以是对多个数据库任务的。从而,通知可唤醒多个数据库任务。
以下列出了可触发从异步到同步或者从同步到异步的改变的数个示例事件。
日志的末尾:如果RDMS的配置模式是同步模式,则异步模式是过渡模式,该过渡模式被利用,直到复制代理在事务日志末尾处可转换到同步模式为止。
例如,当复制代理启动时,复制代理可在异步复制模式中开始,以赶上在复制代理未运行的同时发生的任何事务。复制代理可在数据库日志的开头处开始并且复制旧的事务,直到复制代理到达日志末尾为止。
超时:当复制代理在同步模式中复制并且确认时间超过了可配置的(或者预定的)超时值时,模式可被从同步改变到异步。这允许了数据库任务继续处理,而不会被阻挡在等待复制完成。在一些示例实施例中,复制代理继续监视网络通信,并且如果复制代理确定网络状况已充分地改善(例如,通过分析诸如带宽、等待时间、往返时间等等),则复制代理可切换回到同步操作模式。在一些示例中,复制代理尝试返回到同步模式。这可通过强制数据库任务减慢速度以便赶上日志末尾来实现。通过这样做可以防止并行运行的数据库任务在事务日志中生成如此多的事务以至于会妨碍复制代理到达日志的末尾。一旦到达日志的末尾,RDMS就可转变回同步模式。
在一些示例实施例中,为了实现零数据丢失系统,超时值可被禁用(或者被配置为无穷大或者任意高的数字),以使得RDMS不会由于定时器期满而切换到异步模式。在一些示例中,零数据丢失系统维持同步复制模式,以确保事务始终在其他改变被做出之前被复制。
复制代理的停止:为了允许数据库任务处理不中断地继续,可作为复制代理的关机过程的一部分,将复制模式切换到异步模式。
用户请求的模式改变:数据库管理或数据库任务可请求RDMS在不同模式中运行。
在模式被从同步改变到异步的示例中,该改变可以是立即的。在模式被从异步改变到同步复制的情况中,模式切换在一些示例实施例中可被推迟,直到到达数据库日志的末尾为止,直到对于待处理的提交接收到所有确认为止,等等。
图3示出了根据本公开的一些示例的复制代理改变复制模式的示例方法3000的流程图。方法3000可由可包括硬件(例如,电路、专用逻辑、可编程逻辑、微代码等等)、软件(例如,在处理设备上运行的指令)或者其组合的处理逻辑来执行。在一种实现方式中,方法3000由RDMS执行,例如图5的RDMS5010,如下所述。
在操作3010,复制代理确定第一复制模式。例如,复制代理可经由存储在数据存储库上的配置数据被设置为优选同步的或非同步的模式。在操作3020,复制代理根据从操作3010确定的模式来操作。在操作3030,接收、检测和/或识别触发事件。在操作3040,复制代理确定触发事件是否指示复制模式应当被改变,并且如果其应当被改变,则复制代理可确定将其改变到哪个模式。例如,复制代理可利用一组规则(例如,表格,或者一组if-then语句),其基于当前复制模式和事件来确定是否改变复制状态。如果不要改变模式,则复制代理可继续在3020根据第一复制模式进行操作。如果复制代理确定模式应当转变到第二复制模式(不同于第一模式),则复制代理在操作3050转变到第二复制模式。转变可以是立即的,或者可被推迟,直到某个以后的事件为止。转变可涉及将该改变通知给其他组件,例如外部复制组件或者一个或多个数据库任务。一旦转变完成,复制代理就可在操作3060根据第二复制模式来进行操作。虽然复制代理在操作3020根据第一复制模式来操作,但在一些示例实施例中,可以在以第一复制模式操作3020之前(例如,在任何实际复制之前)接收到触发事件3030。
图4示出了根据本公开的一些示例的数据库任务的示例方法4000。方法4000可由可包括硬件(例如,电路、专用逻辑、可编程逻辑、微代码等等)、软件(例如,在处理设备上运行的指令)或者其组合的处理逻辑来执行。在一种实现方式中,方法4000由图5的RDMS的数据库任务执行,如下所述。在操作4010,数据库任务确定当前复制模式。例如,数据库任务确定当前复制模式是同步还是异步,等等。在一些示例实施例中,数据库任务可具有偏好,或者可基于数据存储库中存储的配置数据来请求特定模式。在操作4020,数据库任务根据第一复制模式(例如,同步或异步)来操作。在操作4030,数据库任务(例如,从复制代理)接收转变到第二复制模式(不同于第一复制模式)的通知。在操作4040,数据库任务转变到第二复制模式。在一些示例实施例中,可以使该转变是即时的。在其他示例中,转变可被推迟,直到另一事件发生为止。例如,为了完成转变,数据库任务可能必须等待第二触发事件。一旦转变完成,在操作4050,数据库任务就根据第二模式来操作。虽然图4示出了将复制模式改变通知给数据库任务,但在其他示例中,复制代理可通过确认提交而不实际接收来自外部复制组件的确认,来模拟同步复制模式。从而,在一些示例中,切换对于数据库任务而言可以是透明的,这意味着数据库任务可以在同步和异步模式之间切换而不要求做出改变。
图5示出了根据本公开的一些示例的复制数据库系统5000的示意图。RDMS5010可包括数据库管理器5030、数据存储库5040、一个或多个数据库任务5020和复制代理5050。数据库管理器5030管理数据存储库5040中存储的数据。例如,数据库管理器5030组织、跟踪和控制数据存储库5040中存储的数据以形成一个或多个结构化关系数据库(以下称为“数据库”)。
RDMS5010可包括一个或多个数据库任务5020。数据库任务5020可以是能够对由数据库管理器5030和数据存储库5040提供的数据库作出改变的任何进程、线程或程序。数据库任务5020可利用数据存储库5040中存储的数据来提供一个或多个服务。数据库任务5020可通过向数据库管理器5030发出命令来读取、写入和修改数据存储库5040中的数据。在一些示例实施例中,数据库任务5020可使用一个或多个结构化查询语言(SQL)命令来访问数据存储库5040中存储的数据。在一些示例实施例中,数据库管理器5030可以把对数据存储库5040作出的改变记录在事务日志中。事务日志可被存储在数据存储库5040中。数据库任务5020可知晓并响应当前复制模式,并且可知晓并且响应复制模式的改变。例如,当复制模式是同步时,数据库任务5020在继续进行对数据库的进一步操作之前可等待来自复制代理5050的确认。作为另一示例,当模式是异步时,数据库任务5020可继续进一步数据库操作,而无论是否接收到确认。
复制代理5050可就对数据库中的数据的改变来监视数据存储库5040,并且通过外部复制组件5090将对数据的改变复制到一个或多个其他RDMS5060或其他设备5070(例如,比如移动设备、智能电话、台式机、平板计算机、膝上型计算机,等等)。外部复制组件5090可以是可通过基于分组的网络5080(例如,互联网、局域网、广域网,等等)来访问的。在一些示例实施例中,复制代理5050可基于由数据库管理器5030管理的事务日志来确定对数据库的改变。
复制操作可利用外部复制组件5090来帮助将数据从数据存储库5040复制到其他RDMS5060、设备5070等等。RDMS5060和设备5070可通过网络5085连接到外部复制组件5090。网络5085可以是或者可以包括网络5080的一些部分。外部复制组件5090可包括复制模块5100和数据存储库5110。复制模块5100可与来自RDMS5010的复制代理5050以及设备5070和RDMS5060上的其他复制代理模块通信(为了清晰起见没有示出RDMS5060上的复制代理模块)。复制模块5100可接收设备(该设备希望接收对数据的更新)的订阅请求,并且当复制代理(例如,复制代理5050)报告更新时,复制模块5100可更新其本地数据存储库5110中的数据并且可基于其订阅向订阅的设备发送对数据库的更新。复制模块5100在接收到指示后和/或在存储更新后可利用确认来对更新数据的设备做出响应。
复制代理5050也可从其他RDMS,例如RDMS5060、设备5070等等,接收关于对数据库中存储的数据的更新的信息。复制代理5050可向外部复制组件5090订阅接收对数据存储库5040上的数据的更新,以便接收来自能够更新数据的其他设备的更新。复制代理5050可以将任何接收到的改变通知给数据库任务5020、数据库管理器5030或者RDMS5010上的其他进程。复制代理5050随后可以直接地或者通过数据库管理器5030或数据库任务5020将接收到的改变提交给数据存储库5040。
复制代理5050可确定或接收指示复制模式应当被从优选模式切换到另一模式的事件。例如,如果优选模式是同步模式并且事件发生,则复制代理5050可确定复制模式是否应当被切换到异步模式。如果优选模式是异步模式并且事件发生,则复制代理5050可确定复制模式是否应当被切换到同步模式。复制代理5050可以把该改变通知给RDMS5010中的任何感兴趣的模块(例如,数据库任务5020、数据库管理器5030,等等)。在一些示例实施例中,复制代理5050还可以使外部复制组件5090保持了解当前模式的最新情况。这可通过发送更新消息或者通过将当前模式包括在通告对数据库上的数据的改变的通知中来进行。
RDMS5010可包括未示出的额外模块,这些模块管理数据库、执行SQL语句、管理数据库任务5020,等等。此外,RDMS5010中示出的各种模块可被组合。
图6图示出可在其上执行本文论述的技术(例如,方法)中的一种或多种的示例机器6000的框图。在替换实施例中,机器6000可作为独立的设备来操作或者可连接(例如,联网)到其他机器。在联网部署中,机器6000在服务器-客户端网络环境中可作为服务器机器、客户端机器或者这两者来操作。在一个示例中,机器6000在对等(peer-to-peer,P2P)(或其他分布式)网络环境中可充当对等机器。机器6000可以是RDMS、外部复制组件、个人计算机(personalcomputer,PC)、平板PC、机顶盒(set-topbox,STB)、个人数字助理(personaldigitalassistant,PDA)、移动电话、智能电话、web设备、网络路由器、交换机或网桥或者任何能够执行指定该机器要采取的动作的(顺序的或者其他形式的)指令的机器。另外,虽然只图示了单个机器,但术语“机器”也应被理解为包括单独或联合执行组(或多组)指令来执行本文论述的方法中的任何一种或多种的机器的任何集合,例如云计算、软件即服务(softwareasaservice,SaaS)、其他计算机集群配置。
如本文所述的示例可包括逻辑或数个组件、模块或机构或者可在逻辑或数个组件、模块或机构上操作。模块是能够执行指定的操作并且可按一定方式来配置或布置的有形实体(例如,硬件)。在一个示例中,电路可按指定的方式被布置为模块(例如,在内部或者对于外部实体,例如其他电路)。在一个示例中,一个或多个计算机系统(例如,单机、客户端或服务器计算机系统)或者一个或多个硬件处理器的全部或部分可由固件或软件(例如,指令、应用部分或者应用)配置为进行操作来执行指定的操作的模块。在一个示例中,软件可驻留在机器可读介质上。在一个示例中,软件当被模块的下层硬件执行时使得该硬件执行指定的操作。
因此,术语“模块”被理解为涵盖有形实体,无论该实体是被物理上构造、具体配置(例如,硬连线)还是临时(例如,暂时)配置(例如,编程)为按指定的方式操作或者执行本文描述的任何操作的一部分或全部。考虑临时配置模块的示例,在任何一个时刻不需要实例化每个模块。例如,在模块包括利用软件配置的通用硬件处理器的情况下,该通用硬件处理器在不同时间可被配置为各个不同的模块。软件可相应地将硬件处理器配置为例如在一个时刻构成特定模块并且在不同的时刻构成不同的模块。
机器(例如,计算机系统)6000可包括硬件处理器6002(例如,中央处理单元(centralprocessingunit,CPU)、图形处理单元(graphicsprocessingunit,GPU)、硬件处理器核或者其任何组合)、主存储器6004以及静态存储器6006,其中的一些或全部可经由互连链路(例如,总线)6008与彼此通信。机器6000还可包括视频显示器6010、字母数字输入设备6012(例如,键盘)以及用户界面(userinterface,UI)导航设备6014(例如,鼠标)。在一个示例中,视频显示器6010、输入设备6012和UI导航设备6014可以是触摸屏显示器。机器6000还可包括存储设备(例如,驱动单元)6016、信号生成设备6018(例如,扬声器)、网络接口设备6020以及一个或多个传感器6021,例如全球定位系统(globalpositioningsystem,GPS)传感器、罗盘、加速度计或其他传感器。机器6000可包括输出控制器6028,例如串行(例如通用串行总线(universalserialbus,USB))、并行或其他有线或无线(例如红外(infrared,IR)、近场通信(nearfieldcommunication,NFC)等等)连接来与一个或多个外围设备(例如,打印机、读卡器等等)通信或者控制一个或多个外围设备。
存储设备6016可包括机器可读介质6022,其上存储了实现本文描述的技术或功能中的任何一种或多种或者被本文描述的技术或功能中的任何一种或多种所利用的一组或多组数据结构或指令6024(例如,软件)。指令6024在其被机器6000执行期间也可完全地或至少部分地驻留在主存储器6004内、静态存储器6006内或者硬件处理器6002内。在一个示例中,硬件处理器6002、主存储器6004、静态存储器6006或者存储设备6016之一或者其任何组合可构成机器可读介质。
虽然机器可读介质6022被图示为单个介质,但术语“机器可读介质”可包括被配置为存储一个或多个指令6024的单个介质或多个介质(例如,集中式或分布式数据库,和/或关联的缓存和服务器)。
术语“机器可读介质”可包括任何能够存储、编码或承载供机器6000执行并且使得机器6000执行本公开的技术中的任何一种或多种的指令或者能够存储、编码或承载被这种指令使用或者与这种指令关联使用的数据结构的介质。非限制性机器可读介质示例可包括固态存储器以及光介质和磁介质。机器可读介质的具体示例可包括:非易失性存储器,比如半导体存储器设备(例如,电可编程只读存储器(ElectricallyProgrammableRead-OnlyMemory,EPROM)、电可擦除可编程只读存储器(ElectricallyErasableProgrammableRead-OnlyMemory,EEPROM))和闪存设备;磁盘,比如内部硬盘和可移除盘;磁光盘、随机访问存储器(RandomAccessMemory,RAM);固态驱动器(SolidStateDrive,SSD);以及CD-ROM和DVD-ROM盘。在一些示例实施例中,机器可读介质可包括非暂态机器可读介质。在一些示例实施例中,机器可读介质可包括不是暂态传播信号的机器可读介质。
还可经由网络接口设备6020利用传输介质来通过通信网络6026发送或接收指令6024。机器6000可利用数种传送协议中的任何一种(例如,帧中继、互联网协议(internetprotocol,IP)、传输控制协议(transmissioncontrolprotocol,TCP)、用户数据报协议(userdatagramprotocol,UDP)、超文本传送协议(hypertexttransferprotocol,HTTP),等等)来与一个或多个其他机器通信。示例通信网络可包括局域网(localareanetwork,LAN)、广域网(wideareanetwork,WAN)、分组数据网络(例如,因特网)、移动电话网络(例如,蜂窝网络)、普通老式电话(PlainOldTelephone,POTS)网络以及无线数据网络(例如,称为的电气与电子工程师学会(InstituteofElectricalandElectronicsEngineers,IEEE)802.11标准家族、称为的IEEE802.16标准家族)、IEEE802.15.4标准家族、长期演进(LongTermEvolution,LTE)标准家族、通用移动电信系统(UniversalMobileTelecommunicationsSystem,UMTS)标准家族、对等(P2P)网络,等等。在一个示例中,网络接口设备6020可包括一个或多个物理插座(例如,以太网、同轴或电话插座)或者一个或多个天线来连接到通信网络6026。在一个示例中,网络接口设备6020可包括多个天线以利用单输入多输出(single-inputmultiple-output,SIMO)、多输入多输出(multiple-inputmultiple-output,MIMO)或多输入单输出(multiple-inputsingle-output,MISO)技术中的至少一者来无线地通信。在一些示例实施例中,网络接口设备6020可利用多用户MIMO技术来无线地通信。
Claims (20)
1.一种数据库复制的方法,该方法包括:
在关系数据库管理系统(RDMS)处,利用一个或多个计算机处理器:
确定第一复制模式;
识别触发事件;
确定所述触发事件指示所述第一复制模式的改变;
响应于确定所述触发事件指示所述第一复制模式的改变,确定第二复制模式,所述第二复制模式是与所述第一复制模式不同的复制模式;
识别由一个或多个数据库任务作出的数据库改变;以及
根据所述第二复制模式将所述数据库改变复制到外部复制组件。
2.如权利要求1所述的方法,其中,所述第一复制模式是异步复制模式,并且所述触发事件是与所述外部复制组件连接的网络的改善。
3.如权利要求1所述的方法,其中,所述方法还包括:
在识别所述触发事件之前,识别由所述一个或多个数据库任务作出的先前数据库改变;以及
根据所述第一复制模式将所述先前数据库改变复制到所述外部复制组件。
4.如权利要求3所述的方法,其中,所述第一复制模式是异步模式,所述第二复制模式是同步模式,并且所述触发事件是到达数据库改变日志的末尾。
5.如权利要求3所述的方法,其中,所述第一复制模式是同步模式,所述第二复制模式是异步模式,并且所述触发事件是被设定来等待对所述先前数据库改变的复制的确认的定时器的期满。
6.如权利要求3所述的方法,其中,所述第一复制模式是同步模式,所述第二复制模式是异步模式,并且所述触发事件是复制代理的关机。
7.如权利要求1所述的方法,其中,所述触发事件是响应于改变所述复制模式的用户请求的。
8.一种关系数据库管理系统(RDMS),包括:
一个或多个计算机处理器;以及
复制代理,该复制代理被所述一个或多个计算机处理器执行来:
确定第一复制模式;
识别触发事件;
确定所述触发事件指示所述第一复制模式的改变;
响应于确定所述触发事件指示所述第一复制模式的改变,确定第二复制模式,所述第二复制模式是与所述第一复制模式不同的复制模式;以及
根据所述第二复制模式将数据库改变复制到外部复制组件。
9.如权利要求8所述的RDMS,其中,所述第一复制模式是异步复制模式,并且所述触发事件是与所述外部复制组件连接的网络的改善。
10.如权利要求8所述的RDMS,其中,所述复制代理被配置为:
在识别所述触发事件之前,识别由一个或多个数据库任务作出的先前数据库改变;以及
根据所述第一复制模式将所述先前数据库改变复制到所述外部复制组件。
11.如权利要求10所述的RDMS,其中,所述第一复制模式是异步模式,所述第二复制模式是同步模式,并且所述触发事件是到达数据库改变日志的末尾。
12.如权利要求10所述的RDMS,其中,所述第一复制模式是同步模式,所述第二复制模式是异步模式,并且所述触发事件是被设定来等待对所述先前数据库改变的复制的确认的定时器的期满。
13.如权利要求10所述的RDMS,其中,所述第一复制模式是同步模式,所述第二复制模式是异步模式,并且所述触发事件是所述复制代理的关机。
14.如权利要求8所述的RDMS,其中,所述触发事件是响应于改变所述复制模式的用户请求的。
15.一种存储指令的机器可读介质,所述指令当被机器执行时使得该机器执行操作,所述操作包括:
识别触发事件;
确定所述触发事件指示第一复制模式的改变;
响应于确定所述触发事件指示所述第一复制模式的改变,确定第二复制模式;
识别由一个或多个数据库任务作出的数据库改变;以及
根据所述第二复制模式将所述数据库改变复制到外部复制组件。
16.如权利要求15所述的机器可读介质,其中,所述第一复制模式是异步复制模式,并且所述触发事件是与所述外部复制组件连接的网络的改善。
17.如权利要求15所述的机器可读介质,其中,所述操作包括:
在识别所述触发事件之前,识别由所述一个或多个数据库任务作出的先前数据库改变;以及
根据所述第一复制模式将所述先前数据库改变复制到所述外部复制组件。
18.如权利要求17所述的机器可读介质,其中,所述第一复制模式是异步模式,所述第二复制模式是同步模式,并且所述触发事件是到达数据库改变日志的末尾。
19.如权利要求17所述的机器可读介质,其中,所述第一复制模式是同步模式,所述第二复制模式是异步模式,并且所述触发事件是被设定来等待对所述先前数据库改变的复制的确认的定时器的期满。
20.如权利要求17所述的机器可读介质,其中,所述第一复制模式是同步模式,所述第二复制模式是异步模式,并且所述触发事件是复制代理的关机。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP14290187 | 2014-06-26 | ||
EP14290187.5 | 2014-06-26 | ||
US14/462,870 | 2014-08-19 | ||
US14/462,870 US9792346B2 (en) | 2014-06-26 | 2014-08-19 | Automatic mode switching in a synchronous replication environment |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105279210A true CN105279210A (zh) | 2016-01-27 |
CN105279210B CN105279210B (zh) | 2020-03-06 |
Family
ID=51178821
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410771823.4A Active CN105279210B (zh) | 2014-06-26 | 2014-12-12 | 同步复制环境中的自动模式切换 |
Country Status (2)
Country | Link |
---|---|
US (2) | US9792346B2 (zh) |
CN (1) | CN105279210B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106605216A (zh) * | 2014-08-29 | 2017-04-26 | 微软技术许可有限责任公司 | 多个操作的可配置同步处理 |
CN110377664A (zh) * | 2019-07-22 | 2019-10-25 | 腾讯科技(深圳)有限公司 | 数据同步方法、装置、服务器及存储介质 |
CN111309803A (zh) * | 2020-01-17 | 2020-06-19 | 西安奥卡云数据科技有限公司 | 基于资源使用率的智能远程复制系统 |
CN113711188A (zh) * | 2019-04-25 | 2021-11-26 | Emc Ip控股有限公司 | 连续复制系统中的数据分发 |
WO2023242720A1 (en) * | 2022-06-15 | 2023-12-21 | International Business Machines Corporation | Conditional replication of data |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9792346B2 (en) | 2014-06-26 | 2017-10-17 | Sybase, Inc. | Automatic mode switching in a synchronous replication environment |
US10296594B1 (en) | 2015-12-28 | 2019-05-21 | EMC IP Holding Company LLC | Cloud-aware snapshot difference determination |
US11023433B1 (en) * | 2015-12-31 | 2021-06-01 | Emc Corporation | Systems and methods for bi-directional replication of cloud tiered data across incompatible clusters |
KR20170111146A (ko) * | 2016-03-25 | 2017-10-12 | 엘에스산전 주식회사 | 복수의 센터 간 사용자 설정 데이터 동기화 방법 |
US10719244B2 (en) | 2016-11-18 | 2020-07-21 | International Business Machines Corporation | Multi-mode data replication for data loss risk reduction |
US10467102B1 (en) * | 2016-12-15 | 2019-11-05 | EMC IP Holding Company LLC | I/O score-based hybrid replication in a storage system |
US10394641B2 (en) * | 2017-04-10 | 2019-08-27 | Arm Limited | Apparatus and method for handling memory access operations |
US10068002B1 (en) | 2017-04-25 | 2018-09-04 | Palantir Technologies Inc. | Systems and methods for adaptive data replication |
US20190020720A1 (en) * | 2017-07-17 | 2019-01-17 | Aluvii, Inc. | Cloud-based system and method for managing entertainment parks |
US11308125B2 (en) * | 2018-03-27 | 2022-04-19 | EMC IP Holding Company LLC | Storage system with fast recovery and resumption of previously-terminated synchronous replication |
US11455409B2 (en) | 2018-05-21 | 2022-09-27 | Pure Storage, Inc. | Storage layer data obfuscation |
US11675503B1 (en) | 2018-05-21 | 2023-06-13 | Pure Storage, Inc. | Role-based data access |
US11954220B2 (en) | 2018-05-21 | 2024-04-09 | Pure Storage, Inc. | Data protection for container storage |
US11120048B2 (en) * | 2019-03-06 | 2021-09-14 | Netapp Inc. | Non-disruptive transition to synchronous replication state |
US11429493B2 (en) * | 2020-01-20 | 2022-08-30 | EMC IP Holding Company LLC | Remote rollback of snapshots for asynchronous replication |
US11768743B2 (en) | 2020-06-05 | 2023-09-26 | Nutanix, Inc. | System and method for dynamically adjusting recovery time objective in a virtual computing system |
US11163798B1 (en) | 2021-03-21 | 2021-11-02 | Snowflake Inc. | Database replication to remote deployment with automated fulfillment |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101388759A (zh) * | 2007-09-10 | 2009-03-18 | 中兴通讯股份有限公司 | 实现数据的异步复制到同步复制的转换方法和系统 |
US20090313311A1 (en) * | 2008-06-12 | 2009-12-17 | Gravic, Inc. | Mixed mode synchronous and asynchronous replication system |
CN104123198A (zh) * | 2013-04-28 | 2014-10-29 | 国际商业机器公司 | 管理数据复制模式的方法和装置 |
US9639592B1 (en) * | 2009-12-26 | 2017-05-02 | Emc Corporation | Dynamically switching between synchronous and asynchronous replication |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7103586B2 (en) * | 2001-03-16 | 2006-09-05 | Gravic, Inc. | Collision avoidance in database replication systems |
JP2006236019A (ja) * | 2005-02-25 | 2006-09-07 | Hitachi Ltd | データコピー方式の切替方法 |
US8954385B2 (en) * | 2010-06-28 | 2015-02-10 | Sandisk Enterprise Ip Llc | Efficient recovery of transactional data stores |
US9792346B2 (en) | 2014-06-26 | 2017-10-17 | Sybase, Inc. | Automatic mode switching in a synchronous replication environment |
-
2014
- 2014-08-19 US US14/462,870 patent/US9792346B2/en active Active
- 2014-12-12 CN CN201410771823.4A patent/CN105279210B/zh active Active
-
2017
- 2017-09-29 US US15/720,897 patent/US10650026B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101388759A (zh) * | 2007-09-10 | 2009-03-18 | 中兴通讯股份有限公司 | 实现数据的异步复制到同步复制的转换方法和系统 |
US20090313311A1 (en) * | 2008-06-12 | 2009-12-17 | Gravic, Inc. | Mixed mode synchronous and asynchronous replication system |
US9639592B1 (en) * | 2009-12-26 | 2017-05-02 | Emc Corporation | Dynamically switching between synchronous and asynchronous replication |
CN104123198A (zh) * | 2013-04-28 | 2014-10-29 | 国际商业机器公司 | 管理数据复制模式的方法和装置 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106605216A (zh) * | 2014-08-29 | 2017-04-26 | 微软技术许可有限责任公司 | 多个操作的可配置同步处理 |
CN106605216B (zh) * | 2014-08-29 | 2020-10-30 | 微软技术许可有限责任公司 | 多个操作的可配置同步处理 |
CN113711188A (zh) * | 2019-04-25 | 2021-11-26 | Emc Ip控股有限公司 | 连续复制系统中的数据分发 |
CN113711188B (zh) * | 2019-04-25 | 2024-04-05 | Emcip控股有限公司 | 连续复制系统中的数据分发 |
CN110377664A (zh) * | 2019-07-22 | 2019-10-25 | 腾讯科技(深圳)有限公司 | 数据同步方法、装置、服务器及存储介质 |
CN111309803A (zh) * | 2020-01-17 | 2020-06-19 | 西安奥卡云数据科技有限公司 | 基于资源使用率的智能远程复制系统 |
CN111309803B (zh) * | 2020-01-17 | 2023-03-14 | 西安奥卡云数据科技有限公司 | 基于资源使用率的智能远程复制系统 |
WO2023242720A1 (en) * | 2022-06-15 | 2023-12-21 | International Business Machines Corporation | Conditional replication of data |
Also Published As
Publication number | Publication date |
---|---|
US9792346B2 (en) | 2017-10-17 |
US20180025068A1 (en) | 2018-01-25 |
CN105279210B (zh) | 2020-03-06 |
US10650026B2 (en) | 2020-05-12 |
US20150379107A1 (en) | 2015-12-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105279210A (zh) | 同步复制环境中的自动模式切换 | |
US10959089B2 (en) | Data management microservice in a microservice domain | |
US10114848B2 (en) | Ensuring the same completion status for transactions after recovery in a synchronous replication environment | |
US9720776B2 (en) | Server system, method for controlling the same, and program for executing parallel distributed processing | |
CN110651256B (zh) | 用于在软件更新期间防止服务中断的系统和方法 | |
US20220284042A1 (en) | Replication of parent record having linked child records that were previously replicated asynchronously across data storage regions | |
US11218371B2 (en) | Method and apparatus for performing communication in internet of things | |
WO2022187008A1 (en) | Asynchronous replication of linked parent and child records across data storage regions | |
CN107633026B (zh) | 数据同步异常处理方法、装置及服务器 | |
US11599294B2 (en) | Media storage for online meetings in edge network storage | |
JP6515052B2 (ja) | 通信装置、通信システム、通信方法およびプログラム | |
CN113032477B (zh) | 基于gtid的长距离数据同步方法、装置及计算设备 | |
KR20160130622A (ko) | 저전력 무선 센서네트워크에서의 명령어 처리 방법 | |
JP6289214B2 (ja) | 情報処理システム及びその方法 | |
WO2024093328A1 (zh) | 一种虚拟桌面连接方法及装置 | |
CN204204038U (zh) | 一种基于wlan的实时自助点餐系统 | |
CN112181937B (zh) | 一种结转数据的方法和装置 | |
CN117955812A (zh) | 一种分布式存储故障快速隔离方法及装置 | |
KR101518167B1 (ko) | Nsrm 정책제공 시스템, 영업전산서버, 단말관리서버, 사용자단말기 및 그 nsrm 정책 처리방법 | |
JP2012185766A (ja) | コンピュータ装置死活監視システムおよび方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | 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 |