首页> 中国专利> 在故障恢复期间增加数据库的可用性

在故障恢复期间增加数据库的可用性

摘要

本申请涉及在故障恢复期间增加数据库的可用性。在此描述的实施例旨在在数据库重新配置期间提供数据库访问并在数据库重新配置期间维护复制连接。在一个实施例中,计算机系统建立多个法定数量拷贝集以复制数据分区的数据。法定数量拷贝集确保了至少最小数目的拷贝可用于在分区重新配置期间提交待决事务。计算机系统确定数据分区重新配置已经开始,并且使用法定数量拷贝集中的每一个中的至少法定数量个拷贝来在数据分区的重新配置期间提供对数据分区的数据的访问。

著录项

  • 公开/公告号CN102521073A

    专利类型发明专利

  • 公开/公告日2012-06-27

    原文格式PDF

  • 申请/专利权人 微软公司;

    申请/专利号CN201110383006.8

  • 发明设计人 V·沙阿;S·O·沃蒂莱宁;T·塔留斯;

    申请日2011-11-16

  • 分类号G06F11/14(20060101);G06F17/30(20060101);

  • 代理机构31100 上海专利商标事务所有限公司;

  • 代理人顾嘉运

  • 地址 美国华盛顿州

  • 入库时间 2023-12-18 05:43:00

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2015-05-20

    专利权的转移 IPC(主分类):G06F11/14 变更前: 变更后: 登记生效日:20150430 申请日:20111116

    专利申请权、专利权的转移

  • 2014-09-17

    授权

    授权

  • 2012-09-05

    实质审查的生效 IPC(主分类):G06F11/14 申请日:20111116

    实质审查的生效

  • 2012-06-27

    公开

    公开

说明书

技术领域

本申请涉及在故障恢复期间增加数据库的可用性。特别是,在数据分区的 重新配置期间提供对数据分区的数据的访问。

背景技术

计算机已变得高度集成于工作、家庭、移动设备以及许多其他地方中。计 算机可快速且有效地处理大量信息。被设计成在计算机系统上运行的软件应用 允许用户执行包括商业应用、学校作业、娱乐等等在内的各种各样的功能。软 件应用通常被设计成执行特定任务,诸如用于草拟文档的文字处理器应用或者 用于发送、接收和组织电子邮件的电子邮件程序。

在许多情况下,软件应用程序被设计为与其他软件应用程序或其他计算机 系统交互。例如,因特网浏览器将用户请求发送给web服务器,并且,这些 web服务器通过对用户的请求进行响应来应答。web服务器和其它计算机系统 可以被配置为访问数据存储以作为对用户请求的响应的一部分。这些数据存储 可以存储有大量的信息,并且可包括复制数据以用于附加的冗余性的拷贝。在 一些情况下,这些拷贝被分组在一起作为拷贝集或群集。当拷贝集中的一个拷 贝变得不可用且随后恢复在线时,拷贝集必须被更新并重新配置。在这种重新 配置期间,拷贝集不可用于对数据读或写请求进行响应。

发明内容

在此描述的实施例旨在在数据库重新配置期间提供数据库访问并在数据 库重新配置期间维护复制连接。在一个实施例中,计算机系统建立多个法定数 量拷贝集以复制数据分区的数据。法定数量拷贝集确保了至少最小数目的拷贝 可用于在分区重新配置期间提交待决事务。计算机系统确定数据分区重新配置 已经启动,并且使用在法定数量拷贝集中的每一个中的至少法定数量个拷贝来 在数据分区的重新配置期间提供对数据分区的数据的访问。

在另一个实施例中,计算机系统建立多个法定数量拷贝集以复制数据分区 的数据。法定数量拷贝集确保了至少最小数目的拷贝可用于在分区重新配置期 间提交待决事务。计算机系统确定拷贝的离开已经启动数据分区的重新配置。 计算机系统防止现有的数据库复制连接在拷贝离开时就断开,并且使用数据分 区重新配置期间所维护的法定数量拷贝集中的每一个中的至少法定数量个拷 贝来在重新配置期间提供对数据分区的数据的访问。

提供本概述以便以简化形式介绍在以下详细描述中进一步描述的一些概 念。本发明内容并非旨在标识所要求保护的主题的关键特征或必要特征,也不 旨在用于帮助确定所要求保护的主题的范围。

另外的特征和优点将在以下的描述中阐述,并且部分可从该描述中显而易 见,或者可以从此处的教示实践中习得。本发明的各特征和优点可以通过在所 附的权利要求书中特别指出的手段和组合来实现和获得。本发明的特征将从以 下描述和所附权利要求书中变得完全显而易见,或者可通过如下所述对本发明 的实践而获知。

附图说明

为了进一步阐明本发明的各实施例的以上和其他优点和特征,将参考附图 来呈现本发明的各实施例的更具体的描述。可以理解,这些附图只描绘本发明 的典型实施例,因此将不被认为是对其范围的限制。本发明将通过使用附图用 附加特征和细节来描述和解释,附图中:

图1示出本发明的实施例可以在其中操作的计算机体系结构,所述操作包 括在数据库重新配置期间提供数据库访问以及在数据库重新配置期间维护复 制连接。

图2示出用于在数据库重新配置期间提供数据库访问的示例方法的流程 图。

图3示出用于在数据库重新配置期间维护复制连接的示例方法的流程图。

图4示出重新配置过程的流程图。

具体实施方式

在此描述的实施例旨在在数据库重新配置期间提供数据库访问并在数据 库重新配置期间维护复制连接。在一个实施例中,计算机系统建立多个法定数 量(quorum)拷贝集以复制数据分区的数据。法定数量拷贝集确保了至少最小 数目的拷贝可用于在分区重新配置期间提交待决事务。计算机系统确定数据分 区重新配置已经开始,并且使用在法定数量拷贝集中的每一个中的至少法定数 量个拷贝来在数据分区的重新配置期间提供对数据分区的数据的访问。

在另一个实施例中,计算机系统建立多个法定数量拷贝集以复制数据分区 的数据。法定数量拷贝集确保了至少最小数目的拷贝可用于在分区重新配置期 间提交待决事务。计算机系统确定拷贝的离开已经启动数据分区的重新配置。 计算机系统防止现有的数据库复制连接在拷贝离开时就断开,并且使用法定数 量拷贝集中的每一个中的至少法定数量个拷贝来在数据分区的重新配置期间 提供对数据分区的数据的访问。

以下讨论现涉及可以执行的多种方法以及方法动作。应当注意,虽然这些 方法动作可能是按一定次序讨论的,或者是在流程图中被描绘为是按照特定顺 序进行的,然而并非必然需要特定的次序,除非特别声明,或者是因为一个动 作依赖于另一动作在该动作被执行之前完成而需要的。

本发明的各实施例可包括或利用专用或通用计算机,该专用或通用计算机 包括诸如例如一个或多个处理器和系统存储器等计算机硬件,如以下更详细讨 论的。本发明范围内的各实施例还包括用于携带或存储计算机可执行指令和/ 或数据结构的物理介质和其他计算机可读介质。这些计算机可读介质可以是通 用或专用计算机系统能够访问的任何可用介质。存储计算机可执行指令的计算 机可读介质是计算机存储介质。携带计算机可执行指令的计算机可读介质是传 输介质。由此,作为示例而非限制,本发明的各实施例可包括至少两种完全不 同类型的计算机可读介质:计算机存储介质和传输介质。

计算机存储介质包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储、 磁盘存储或其他磁存储设备、或可用于存储计算机可执行指令或数据结构形式 的所需程序代码装置且可由通用或专用计算机访问的任何其他介质。

“网络”被定义为允许在计算机系统和/或模块和/或其他电子设备之间传 输电子数据的一个或多个数据链路。当信息通过网络或另一个通信连接(硬连 线、无线、或者硬连线或无线的组合)传输或提供给计算机时,该计算机将该 连接适当地视为传输介质。传输介质可包括可用于携带计算机可执行指令或数 据结构形式的所需程序代码装置且可由通用或专用计算机访问的网络和/或数 据链路。上述的组合也应被包括在计算机可读介质的范围内。

此外,在到达各种计算机系统组件之后,计算机可执行指令或数据结构形 式的程序代码装置可从传输介质自动传输到计算机存储介质(或反之亦然)。 例如,通过网络或数据链路接收到的计算机可执行指令或数据结构可被缓存在 网络接口模块(例如,“NIC”)内的RAM中,然后最终被传输到计算机系统 RAM和/或计算机系统处的较不易失性的计算机存储介质。因而,应当理解, 计算机存储介质可被包括在还利用(或甚至主要利用)传输介质的计算机系统 组件中。

计算机可执行指令包括,例如使通用计算机、专用计算机、或专用处理设 备执行某一功能或某组功能的指令和数据。计算机可执行指令可以是例如二进 制代码、诸如汇编语言之类的中间格式指令、或甚至源代码。尽管用结构特征 和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义 的主题不必限于上述特征或动作。相反,上述特征和动作是作为实现权利要求 的示例形式而公开的。

本领域的技术人员将理解,本发明可以在具有许多类型的计算机系统配置 的网络计算环境中实践,这些计算机系统配置包括个人计算机、台式计算机、 膝上型计算机、消息处理器、手持式设备、多处理器系统、基于微处理器的或 可编程消费电子设备、网络PC、小型计算机、大型计算机、移动电话、PDA、 寻呼机、路由器、交换机等等。本发明也可在其中通过网络链接(或者通过硬 连线数据链路、无线数据链路,或者通过硬连线和无线数据链路的组合)的本 地和远程计算机系统两者都执行任务的分布式系统环境中实施。在分布式系统 环境中,程序模块可以位于本地和远程存储器存储设备中。

图1示出了可在其中采用本发明的原理的计算机体系结构100。计算机体 系结构100包括数据库110。数据库可以是任意类型的数据库或数据存储系统, 并且可以包括在一个或多个计算系统上的存储设备。例如,数据库可以位于一 个组织或机构本地内,或者可以分布在跨宽广地理区域的许多不同的计算机系 统上。数据库110可以包括存储区域网络(SAN)或其它存储方案。数据库是通 过因特网可访问的,并且可被配置为从用户接收请求。例如,用户105可以发 送请求数据库所提供的数据和/或服务的数据请求。这些请求可以由数据库作为 待决事务115来存储。

数据库事务确保了当执行用户请求时没有数据被丢失。例如,如果用户正 在请求更新他们的银行数据,则数据库事务将保证该数据如用户所请求那样被 更新。可以以拷贝的形式来备份数据库的数据。例如,每个数据存储分区可以 具有一个或多个数据拷贝。如在图1中所示,这些拷贝可以是法定数量拷贝(例 如126A/126B)集的一部分。每个法定数量集可以包括多个不同的拷贝。虽然 示出法定数量集A和B具有一个主要拷贝集(127A/127B)和两个次要拷贝集 (128A1/128A2/128B1/128B2),应该可以理解可以使用不同数目的拷贝。法 定数量集建立模块125可以基于各种准则建立各种不同数目的法定数量集。在 一些情况中,每个数据分区具有一个法定数量集,并且随后被分配第二、临时 的法定数量以在重新配置期间使用。

数据库重新配置可以在当拷贝停工(即由于计算机故障、网络故障或某个 其它问题而停止工作)或恢复(即再次开始工作)时发生。这样,例如,如果 次要拷贝128A1将要停工,就将需要重新配置法定数量集126A。类似地,如 果次要拷贝128A1将要在稍后某个时间点上再次恢复,则将需要再次重新配置 法定数量集126A。可以使用重新配置模块120来以这样的方式来重新配置法定 数量拷贝集:在进行重新配置的同时向用户提供数据库服务。这些和其他概念 将在下面参考图2和3更详细地解释。

如上所示,即使在数据库分区正在经历重新配置过程期间,也可以在数据 库分区上执行读和/或写操作。在一些实施例中,这可以通过维护多个动态法定 数量集以便允许对分区的读/写访问同时保持其在重新配置处理期间在事务上 一致来实现。在重新配置过程期间可以防止在现有拷贝之问的复制连接的断 开。这可以允许用户(例如105)在重新配置过程期间执行读/写操作。可以以 如下方式将拷贝加入到各法定数量集中或从法定数量集中移除:分区在重新配 置期间并且在存在用户事务的情况下保持在事务上一致。而且,可以防止依赖 于从数据库的主要拷贝中进行读取的操作在数据库经历重新配置时被重置。这 样的操作可以包括为分区创建新的拷贝,或创建分区的副本。

在分布式数据存储系统(例如数据库110)中,当要改变分区的配置时, 执行重新配置过程。重新配置过程涉及改变分区的活动配置。作为该过程的一 部分,维护在该分区的拷贝之间的通常要被断开的现有复制连接。因此,用户 能够在该过程期间在该分区上执行读/写操作。

在一些实施例中,可以实现重新配置或最小重新配置的专门情况。最小重 新配置可确保用户可以在重新配置过程的持续时间期间在分区上执行读/写操 作。在一些情况中,为了执行最小重新配置,要建立写法定数量拷贝。该写法 定数量可以被定义为(n+1)/2的上限,其中n是在配置中的拷贝总数。当前的主 要拷贝将启动并运行,并且在最小重新配置之后将还是作为主要拷贝。在建立 这些项之后,启动最小重新配置。

在一些实施例中,最小重新配置在下述方面不同于常规的重新配置:1) 维护多个法定数量集,这些法定数量集在重新配置过程期间被动态更新,2) 主要拷贝是多个法定数量集的一部分,3)最初,所有的次要拷贝要么在第一 法定数量集中,要么在法定数量之外,4)在重新配置结束时,所有的次要拷 贝要么在第一法定数量集中,要么在法定数量之外,5)在重新配置过程持续 时间中维护至多两个法定数量拷贝集,6)在重新配置持续时间期间,根据配 置成员来修改法定数量集,以及7)要在每个法定数量集上提交用户事务才能 将其认为是已提交的。

由于上述第7条,在重新配置期间的任意点处,在每个法定数量集中要存 在可用的写法定数量拷贝。因此,用户可以成功地完成在分区上的写事务。因 为至少写法定数量个拷贝是可用的,所以读事务也是可能的(其中,读法定数 量是(n+1)/2的下限,并且写法定数量是(n+1)/2的上限)。在这个操作期间, 如果在前一配置中的可用拷贝的数目下降到其写法定数量之下,则重新配置代 理将检测到该情况,终止当前的最小重新配置,并将所述重新配置作为常规的 重新配置来重启。

考虑到以上描述的系统和体系结构,参考图2和图3的流程图将更好地理 解根据所公开的主题实现的方法。为了解释简明起见,这些方法被示出和描述 为一系列框。然而,应该理解和了解,所要求保护的主题不受框的次序的限制, 因为一些框可按不同的次序进行和/或与此处所描绘和描述的其他框同时进行。 此外,并非全部所示的框都是实现下面所述的方法所必需的。

图2示出用于在数据库重新配置期间提供数据库访问的方法200的流程 图。现在将频繁参照环境100的组件和数据来描述方法200。

方法200包括建立多个法定数量拷贝集来复制给定数据分区的数据的动 作,其中所述法定数量拷贝集确保了至少最小数目的拷贝可用于在分区重新配 置期间提交待决事务(动作210)。例如,法定数量集建立模块125将建立法 定数量集A和B(126A/126B)来复制给定数据分区的数据。法定数量拷贝集 确保了至少最小数目的拷贝可用于在分区重新配置期间提交待决事务115。

在一些情况下,跨最小拷贝集来复制事务(或来自事务的数据)。例如, 最小的拷贝集可以包括主要拷贝(例如127A)和至少一个(或至少两个,等等) 次要拷贝(例如128A1和128A2)。每个法定数量拷贝集包括至少一个主要拷 贝,并且包括任意数目的次要拷贝。在一些情况下,单个主要拷贝可以是多个 法定数量拷贝集的成员。这样,在图1中,法定数量集A中的主要拷贝127A 可以是法定数量集B中相同的主要拷贝。

在一些实施例中,法定数量拷贝集可以是实例化以应答重新配置期间的请 求的临时法定数量拷贝集。这样,例如,法定数量集B(126B)可以是临时法 定数量集,该临时法定数量集被建立以在数据库正被重新配置时对数据请求 (例如106)或其它待决事务进行应答。在一些情况下,在结束重新配置之后 移除这样的临时法定数量拷贝集。

在重新配置的多个不同的阶段,可以提供对给定数据分区的访问,如图4 中所示。在图4示出的示例中,当次要拷贝C加入现有的法定数量集时启动最 小重新配置。如在410中所示,次要拷贝C将加入到包括主要拷贝A和次要拷 贝B的现有法定数量集AB。如在415中所示,法定数量集1包括A和B,而 法定数量集2包括主要拷贝A。

在阶段1(420),当重新配置开始时,属于前一配置并且属于新配置的所 有拷贝的法定数量集成员关系,它们的成员关系被改变以便它们既成为法定数 量集1又成为法定数量集2的一部分,并且仅属于新配置的所有的拷贝被加入 成为法定数量集2的一部分。这样,在425,法定数量集1具有拷贝A和B, 而法定数量集2具有拷贝A、B和C。可以启动阶段1增额(catch-up)430, 其中将加入节点C更新为与次要拷贝B相同。在435中更新法定数量集2,并 且如440所示,法定数量集2具有主要拷贝A和次要拷贝B和C,并且具有足 够数目的拷贝和拷贝分布来提交事务。

在阶段2(445)期间,不改变法定数量集,如在450中所示。在阶段3(455) 期间,改变属于新配置的所有拷贝的法定数量成员关系,以便它们现在是法定 数量集1的一部分。而且,改变不属于新配置的所有拷贝的法定数量成员关系, 以便它们不再是任意法定数量集的一部分(在法定数量之外)。这样,法定数 量集1的新配置具有拷贝A、B和C,而法定数量集2仅具有主要拷贝A,如 在460中所示。在阶段4(465)期间,发送提交消息,并且,法定数量集1是 在带有经更新的次要拷贝C的情况下完全可操作的。

返回图2,方法200包括确定数据分区重新配置已经启动的动作(动作 220)。例如,重新配置模块120可以确定已经为法定数量集A(126A)启动 数据分区重新配置。可以由法定数量拷贝集的拷贝(例如128A2)离开或加入 拷贝集来启动重新配置。在重新配置期间,加入拷贝所加入的法定数量拷贝集 被修改为包括该加入的拷贝。类似地,当拷贝离开法定数量集时,重新配置该 法定数量集。当拷贝离开法定数量集时,重新配置模块120可以防止现有的数 据库复制连接由于拷贝的离开而被断开。这样,如果次要拷贝128A2将要离 开法定数量集A(126A),则在数据库和主要拷贝127A和次要拷贝128A1之 间的现有数据库复制连接将不被断开。

方法200包括在数据分区的重新配置期间使用法定数量拷贝集中的每一个 中的至少法定数量个拷贝来提供对数据分区的数据的访问。例如,数据库110 可以在数据分区的重新配置期间使用法定数量集A的主要拷贝127A和次要拷 贝128A1提供对给定分区的数据的访问。在一些情况中,可由法定数量拷贝集 中的大多数拷贝(图1的法定数量集的三个拷贝中的两个拷贝)来对数据库事 务进行确认。当法定数量成员在重新配置的不同阶段期间被移动到不同的法定 数量集时,可以以在事务上一致的方式来维护分区上的数据。这样,无论有多 少拷贝被改变或如何改变拷贝,都将以在事务上一致的方式来提供对底层数据 的访问。这就确保了在任意事务中没有数据丢失。而且,可以防止依赖于从数 据库的主要拷贝中进行读取的操作在重新配置过程期间被重置。

现在转向图3,图3示出用于在数据库重新配置期间维护复制连接的方法 300的流程图。现在将频繁参照环境100的组件和数据来描述方法300。 

方法300包括建立多个法定数量拷贝集来复制给定数据分区的数据的动 作,其中所述法定数量拷贝集确保了至少最小数目的拷贝可用于在分区重新配 置期间提交待决事务(动作310)。例如,法定数量集建立模块125可建立法 定数量集A和B(126A/126B)来复制给定数据分区的数据。法定数量拷贝集 确保了至少最小数目的拷贝可用于在分区重新配置期间提交待决事务115。

方法300包括确定拷贝的离开启动了数据分区重新配置的动作(动作320)。 例如,重新配置模块120可以确定已经为法定数量集A(126A)启动了数据分 区重新配置。可以由例如次要拷贝加入或离开法定数量集A来启动重新配置。 方法300还包括防止现有的数据库复制连接在拷贝离开时被断开的动作(动作 330)。

例如,重新配置模块120可以防止任意现有的到法定数量集A的其它拷贝 的数据库复制连接(例如到主要拷贝127A或次要拷贝128A1的连接)被断开 或移除。这样,使得到没有改变的拷贝的数据库复制连接保持完好。随后,保 持完好的拷贝在重新配置期间能够继续处理事务。对于移除(即离开法定数量 集)的拷贝来说,可以以拷贝的分区在重新配置期间保持在事务上一致的方式 来移除正离开的拷贝。这样,被处理的任意事务将是一致的,并将提供数据库 用户所期望的事务性保证。

方法300还包括在数据分区的重新配置期间使用法定数量拷贝集中的每一 个中的至少法定数量个拷贝来提供对数据分区的数据的访问(动作340)。例 如,法定数量集A(126A)可以在数据库的数据分区重新配置期间提供对该分 区的访问。法定数量集可以使用主要拷贝127A和次要拷贝(128A1/128A2)中 的至少一个来提供这样的访问。在一些实施例中,在重新配置期间可以防止各 种应用程序被重置。特别地,可以防止依赖于从数据库的主要拷贝中读取的应 用程序被重置。这样,至少在一些情况中,在重新配置期间可以防止分区复制 操作被重置。另外地,或替换地,在重新配置期间可以防止新的拷贝创建操作 被重置。

这样,提供了在数据库重新配置期间提供数据库访问的系统、方法和计算 机程序产品。在重新配置期间可以以在事务上一致的方式来继续处理事务。这 样,提供了在数据库重新配置期间维护复制连接的系统、方法和计算机程序产 品。这样,没有作为重新配置一部分来改变的拷贝可以维护它们的复制连接, 并且能在重新配置期间继续提供数据库访问。

本发明可具体化为其它具体形式而不背离其精神或本质特征。所描述的实 施例在所有方面都应被认为仅是说明性而非限制性的。因此,本发明的范围由 所附权利要求书而非前述描述指示。落入权利要求书的等效方案的含义和范围 内的所有改变被权利要求书的范围所涵盖。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号