同步复制环境中的自动模式切换的制作方法_2

文档序号:9524246阅读:来源:国知局
,外部复制组件1040在1120利用确认来对该改变进行答复。复制代理1030在1130 通知数据库任务1020 :改变既被写入到盘,并且外部复制组件1040也确认了。此时,数据 库任务1020在1135响应于通知1130而醒来并且再次开始处理。
[0026] 在1140,数据库任务1020作出另一数据库改变(例如,改变似)并且将该改变写 入到事务日志1025。改变(例如,改变(C))包括提交指令。由于该额外改变(例如,改变 (c))包括提交指令,所W数据库任务1020在1145进入休眠。复制代理1030在1150检测 此改变(例如,改变(C))并且在1160将该改变发送到外部复制组件1040。在1163,复制 代理1030检测切换复制模式的触发事件。在一些示例中,触发事件是检测到用于从外部复 审IJ组件1040接收确认通知的超时时段已期满。例如,预期由外部复制组件1040发送到复 制代理1030的确认通知可能未在期望的时间到达复制代理1030(例如,因为网络问题)。 例如,在1163,复制代理1030检测定时器的期满并且将定时器的期满解读为将复制模式改 变到异步复制模式的触发事件并且在1163切换复制模式。复制代理1030可在1165将该 模式切换通知给外部复制组件1040。此外,复制代理1030在1170通知数据库任务1020, 尽管例如在一时间段期满之前没有接收到来自外部复制组件1040的对该改变(例如,改变 (C))的确认。该通知在1175唤醒数据库任务1020(或者任何其他等待通知的任务)。数据 库任务1020现在可作出额外的数据库改变。运些改变是根据异步复制规则来执行的。例 如,数据库任务1020作出另一改变(例如,改变值))并且在1180将该改变写入到事务日 志1025。改变(例如,改变值))包括提交指令。改变(例如,改变值))当在1190被复制 代理1030检测到时在1200被转发到外部复制组件1040。外部复制组件1040在1210利用 确认来答复复制代理1030。注意,由于模式现在是异步,所W数据库任务1020不进入休眠 等待来自外部复制组件1040的通知。注意,除了在改变发生时通知外部复制组件1040(例 如,在1165)W外,或者取代在改变发生时通知外部复制组件1040,复制代理1030还可在 向外部复制组件1040发送改变时包括关于当前模式的信息。例如,在1070、1110、1160和 1200发送的消息可指定RDMS的当前复制模式。从同步到异步的模式切换可在操作1200利 用改变(D)来传达,而不是在操作1165传达。
[0027] 图2示出了根据本公开的一些示例的从异步到同步的复制模式切换的示例通知 序列图2000。RDMS2010开始在异步模式中操作。在2050,数据库任务2020作出数据库 改变(例如,改变(A))并且将该改变写入到事务日志2025。复制代理2030在2060检测 此改变,并且作为响应,复制代理2030在2070将此改变发送到外部复制组件2040。外部 复制组件2040在2080可利用通知来确认此改变。数据库任务2020可作出其他改变,例如 在2090的改变(例如,改变度))。在2090的改变包括提交指令。与同步模式不同,数据库 任务2020不等待来自外部复制组件2040的确认。改变做在2100被复制代理2030检测 至IJ,并且复制代理2030在2110将该改变发送到外部复制组件2040。外部复制组件2040在 2120利用确认来通知复制代理2030。注意,虽然图2示出了将单个的改变发送到外部复制 组件2040的情形,但在一些示例实施例中,可W成批地处理改变。例如,复制代理2030可 按预定的时间间隔扫描事务日志2025。从而,改变(A)和改变度)可在单次通信中被发送 到外部复制组件2040。
[0028] 复制代理2030可接收或确定使得复制代理2030改变复制模式的事件。例如,触 发事件可指示复制模式应当从异步复制模式切换到同步复制模式。例如,当复制代理2030 在使得复制代理2030变得暂停的事件之后重启时,复制代理2030可能已将畑MS2010置 于异步模式中。将畑MS2010置于异步模式中允许了复制代理2030赶上(catchup)在复 制代理2030重启的同时发生的数据库改变,同时允许了数据库任务2020没有延迟地继续。 在此示例中,让复制代理2030将复制模式切换到同步模式的触发事件可W是当复制代理 2030到达数据库日志的末尾(并且因此被赶上)时。当在2123检测到该触发事件时(例 如,复制代理2030到达数据库日志的末尾),例如,如果RDMS2010被配置为将操作返回到同 步模式,则复制代理2030通过将RDMS2010置于同步模式中来切换复制模式。
[0029] 一旦检测到触发事件并且切换了复制模式,来自数据库任务2020的数据库改变 随后就被同步地更新,并且复制代理2030在2125把到同步复制模式的改变通知给外部复 制组件2040。例如,如果数据库任务2020在2130向事务日志2025提交改变(例如,改变 (C))。由于该改变(例如,改变(C))包括提交指令,并且RDMS2010现在在同步模式中, 所W数据库任务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) W外,或者取代在模式改变发生时通知外部复制组件2040,复制代理2030还可在向外部复 制组件2040发送改变时包括关于当前模式的信息。从而,例如,在2070、2110、2150发送的 消息可指定RDMS的当前复制模式。
[0030] 注意,在附图中只示出了一个数据库任务1020和2020 ;然而,多个数据库任务可 在畑MS2010上执行。来自复制代理1030和2030的各种通知(例如,通知1130U170和 2170)可W是对多个数据库任务的。从而,通知可唤醒多个数据库任务。
[0031] W下列出了可触发从异步到同步或者从同步到异步的改变的数个示例事件。
[0032] 日志的末尾:如果RDMS的配置模式是同步模式,则异步模式是过渡模式,该过渡 模式被利用,直到复制代理在事务日志末尾处可转换到同步模式为止。
[0033] 例如,当复制代理启动时,复制代理可在异步复制模式中开始,W赶上在复制代理 未运行的同时发生的任何事务。复制代理可在数据库日志的开头处开始并且复制旧的事 务,直到复制代理到达日志末尾为止。
[0034] 超时:当复制代理在同步模式中复制并且确认时间超过了可配置的(或者预定 的)超时值时,模式可被从同步改变到异步。运允许了数据库任务继续处理,而不会被阻挡 在等待复制完成。在一些示例实施例中,复制代理继续监视网络通信,并且如果复制代理确 定网络状况已充分地改善(例如,通过分析诸如带宽、等待时间、往返时间等等),则复制代 理可切换回到同步操作模式。在一些示例中,复制代理尝试返回到同步模式。运可通过强 制数据库任务减慢速度W便赶上日志末尾来实现。通过运样做可W防止并行运行的数据库 任务在事务日志中生成如此多的事务W至于会妨碍复制代理到达日志的末尾。一旦到达日 志的末尾,RDMS就可转变回同步模式。
[0035] 在一些示例实施例中,为了实现零数据丢失系统,超时值可被禁用(或者被配置 为无穷大或者任意高的数字),W使得RDMS不会由于定时器期满而切换到异步模式。在一 些示例中,零数据丢失系统维持同步复制模式,W确保事务始终在其他改变被做出之前被 复制。
[0036] 复制代理的停止:为了允许数据库任务处理不中断地继续,可作为复制代理的关 机过程的一部分,将复制模式切换到异步模式。
[0037] 用户请求的模式改变:数据库管理或数据库任务可请求ROMS在不同模式中运行。
[0038] 在模式被从同步改变到异步的示例中,该改变可W是立即的。在模式被从异步改 变到同步复制的情况中,模式切换在一些示例实施例中可被推迟,直到到达数据库日志的 末尾为止,直到对于待处理的提交接收到所有确认为止,等等。
[0039] 图3示出了根据本公开的一些示例的复制代理改变复制模式的示例方法3000的 流程图。方法3000可由可包括硬件(例如,电路、专用逻辑、可编程逻辑、微代码等等)、软 件(例如,在处理设备上运行的指令)或者其组合的处理逻辑来执行。在一种实现方式中, 方法3000由RDMS执行,例如图5的RDMS5010,如下所述。
[0040] 在操作3010,复制代理确定第一复制模式。例如,复制代理可经由存储在数据存储 库上的配置数据被设置为优选同步的或非同步的模式。在操作3020,复制代理根据从操作 3010确定的模式来操作。在操作3030,接收、检测和/或识别触发事件。在操作3040,复制 代理确定触发事件是否指示复制模式应当被改变,并且如果其应当被改变,则复制代理可 确定将其改变到哪个模式。例如,复制代理可利用一组规则(例如,表格,或者一组if-then 语句),其基于当前复制模式和事件来确定是否改变复制状态。如果不要改变模式,则复制 代理可继续在3020根据第一复制模式进行操作。如果复制代理确定模式应当转变到第二 复制模式(不同于第一模式),则复制代理在操作3050转变到第二复制模式。转变可W
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1