供应并管理已复制数据的制作方法

文档序号:11134140阅读:341来源:国知局
供应并管理已复制数据的制造方法与工艺

技术领域

本发明涉及供应并管理已复制数据。



背景技术:

当越来越多数量的应用和服务通过网络例如互联网变得可用时,越来越多数量的内容、应用和/或服务提供商求助于诸如云计算的技术。云计算通常是通过服务例如Web服务来提供对电子资源的访问的方法,其中用于支持那些服务的硬件和/或软件动态地可升级来在任何给定的时间满足服务的需要。用户或客户一般将租借、租用或以其它方式支付通过云访问资源的费用,并因此不必购买和维持硬件和/或软件来提供对这些资源的访问。

虽然各种应用和资源的方面可在云中被调节和管理,但这些应用和资源所依赖的数据存储库并不类似地被客户或其它这样的用户调节或容易管理。一般,执行诸如供应并按比例调整数据存储的任务是冗长乏味的手工程序,其中客户必须给数据库管理员(DBA)或类似的专家用户提供配置信息和需要,使得DBA可确定配置是否是有效的。此外,不存在使客户容易动态地和/或自动地调节数据库实例的参数或管理数据存储库的其它这样的方面的方法。在很多情况下,数据实例将使备份和恢复机制在适当的地方,但这些机制常常在单个位置或区域中,使得它们在该区域中容易受到失败或出故障。



技术实现要素:

本公开涉及一种用于缩放已复制的数据库的方法,包括:使用一个或多个计算设备执行以下操作:接收用于对具有第一实例副本和第二实例副本的已复制的数据库的存储进行缩放的服务请求,其中所述已复制的数据库被配置成将所述第一实例副本的写操作应用于所述第二实例副本;对所述第一实例副本和所述第二实例副本的存储进行缩放;响应于所述第一实例副本的故障,将所述第一实例副本的网络地址信息与所述第二实例副本相关联。

本公开还涉及一种用于缩放已复制的数据库的系统,包括:处理器;以及包括指令的存储器设备,所述指令在由所述处理器执行时使得所述处理器:接收用于对具有第一实例副本和第二实例副本的已复制的数据库的存储进行缩放的服务请求,其中所述已复制的数据库被配置成将所述第一实例副本的写操作应用于所述第二实例副本;对所述第一实例副本和所述第二实例副本的存储进行缩放;响应于所述第一实例副本的故障,将所述第一实例副本的网络地址信息与所述第二实例副本相关联。

附图说明

将参考附图描述根据本公开的各种实施方案,其中:

图1示出各种实施方案可被实现的环境;

图2示出可根据各种实施方案使用的控制面和数据面的示例性分离;

图3示出用于在多个数据区中运行可根据一个实施方案使用的已复制数据实例的示例性实现;

图4示出用于创建可根据一个实施方案使用的已复制数据实例的示例性过程;

图5示出用于创建可根据一个实施方案使用的主要副本的示例性过程;以及

图6示出用于创建可根据一个实施方案使用的辅助副本的示例性过程。

具体实施方式

根据本公开的各种实施方案的系统和方法可克服在常规方法中经历的前述和其它不足的一个或多个,以在电子环境中管理数据存储的方面。特别是,各种实施方案提供单独的控制环境、或可用于使用户能够管理和/或改变数据环境的各种方面的控制面、或数据面。可经由一组Web服务提供这种“自我服务”功能,使用户面和控制面能够一起充当虚拟数据库管理员(DBA)。用户或客户可通过例如多个外部可见的应用编程接口(API)之一向控制面提交请求。各种API可用于在数据环境中执行关于数据存储库例如关系数据库的特定功能。被接收到API之一的请求可被分析以确定将在数据面中执行的期望行动,例如调节数据存储器或数据存储实例的操作或配置参数的行动。部件例如工作流部件可确定对行动的适当任务,并使任务以适当的顺序执行。这些任务中的至少一个一般将在数据环境中被执行,例如以调节关系数据库的方面。

根据某些实施方案,这样的系统可在数据环境中提供已复制数据实例的供应。供应可利用主要-辅助复制方法,主要副本和辅助副本的每个在一个或多个分离的数据区、单独的地理位置等中或跨越一个或多个分离的数据区、单独的地理位置等来供应。数据库副本可在单独的数据实例上运行,每个数据实例连接到在副本中未被共享的专用块存储卷。

在各种实施方案中,可使用块级复制机制例如来自奥地利Vienna的Linbit的分布式复制块设备或如华盛顿州西雅图的Amazon.com公司所提供的弹性块存储(EBS)来执行复制,块级复制机制可反映在服务器之间的块设备的内容,并在冗余系统中同步地复制数据。每个实例可运行安装成管理数据实例的所有输入和输出(I/O)操作的具有块级复制机制内核模块的内核。可在主要副本处执行所有读和写,块级复制机制与辅助副本同步地复制信息。

主要副本和辅助副本都可具有外部面向的DNS名称。客户可使用DNS名称例如DNS_primary来得到当前的主要副本。DNS_primary名称可又被称为或“cname”为(当前)主要副本的外部DNS名称。当主要副本故障或否则不可用时,辅助副本可被提升或故障切换以变成新的主要副本,由此DNS_primary的cname可更新到新的主要实例的DNS名称。所有写被发送到在当前主要副本上的数据库。当主要实例接收到写时,信息被同步地写到辅助副本上。当在两个地方成功地写时,写可被认为是成功的。在各种实施方案中在主要副本处只执行所有读。

图1示出用于实现根据各种实施方案的方面的环境100的例子。如将被认识到的,虽然基于Web的环境用于解释的目的,但是不同的环境可在适当时用于实现各种实施方案。所示的环境100包括测试或发展部分(或侧)和生产部分。生产部分包括电子客户端设备102,其可包括可操作来通过适当的网络104发送并接收请求、消息或信息并将信息传送回设备的用户的任何适当的设备。这样的客户端设备的例子包括个人计算机、蜂窝电话、手持式消息发送设备、膝上型计算机、机顶盒、个人数字助理、电子书阅读器等。网络可包括任何适当的网络,包括内联网、互联网、蜂窝网络、局域网或任何其它这样的网络或其组合。用于这样的系统的部件可至少部分地取决于网络的类型和/或所选择的环境。用于经由这样的网络进行通信的协议和部件是公知的,且将不在本文详细地讨论。通过网络的通信可通过有线或无线连接或其组合来实现。在本实例中,网络包括互联网,因为环境包括用于接收请求并响应于该请求的Web服务器106,虽然对于其它网络,可使用服务于类似的目的的可选设备,如对本领域的普通技术人员明显的。

例证性环境包括至少一个应用服务器108和数据存储器110。应理解,可能有一些应用服务器、层或其它元件、过程或部件,其可被链接或以其它方式配置,其可相互作用以执行任务,例如从适当的数据存储器获得数据。如本文使用的,术语“数据存储器”指能够存储、访问和检索数据的任何设备或设备的组合,其可包括在任何标准的、分布式或群集环境中的任何组合和数量的数据服务器、数据库、数据存储设备和数据存储介质。应用服务器可包括按需要与数据存储器合并以为客户端设备执行一个或多个应用的方面、为应用处理大多数数据访问和商业逻辑的任何适当的硬件和软件。应用服务器与数据存储器协作来提供访问控制服务,并能够产生内容例如文本、图形、音频和/或视频以传输到用户,该内容在本实例中可通过Web服务器以HTML、XML或另一适当的结构语言的形式提供给用户。所有请求和响应的处理以及在客户端设备102和应用服务器108之间的内容的传送可由Web服务器处理。应理解,Web和应用服务器是不需要的,且仅仅是示例性部件,如本文讨论的结构代码可在任何适当的设备或主机上执行,如在本文其它地方讨论的。此外,环境可被构造成使得测试自动框架可被提供为用户或应用可订阅的服务。测试自动框架可被提供为在本文讨论的各种测试模式中的任一个的实现,虽然也可使用各种其它实现,如本文讨论或建议的。

环境还包括发展和/或测试侧,其包括允许用户例如开发者、数据管理员或测试者访问系统的用户设备118。用户设备118可以是例如上面关于客户端设备102描述的任何适当的设备或机器。环境还包括发展服务器120,其类似于应用服务器108起作用,但一般在代码在生产侧上被部署并执行之前在发展和测试期间运行代码,并例如是外部用户是可访问的。在一些实施方案中,应用服务器可起发展服务器的作用,且分离的生产和测试存储可以不被使用。

输出存储器110可包括一些分离的数据表、数据库或用于存储关于特定方面的数据的其它数据存储机制和介质。例如,所示的数据存储器包括可用于为生产侧提供内容的、用于存储生产数据112和用户信息116的机制。数据存储器也被示为包括用于存储测试数据114的机制,测试数据114可与用户信息一起对测试侧使用。应理解,可能有很多其它方面,其可能需要存储在数据存储器中,例如页面图像信息和访问权限信息,其可在适当时存储在上面列出的机制的任一个中或在数据存储器110的额外机制中。数据存储器110通过与其相关的逻辑可操作来接收来自应用服务器108或发展服务器120的指令,并响应于其而获得、更新或以其它方式处理数据。在一个例子中,用户可提交对某种类型的项目的搜索请求。在这种情况下,数据存储器可访问用户信息以验证用户的身份,并可访问目录细节信息以获得关于该类型的项目的信息。该信息接着可例如在用户能够通过用户设备102上的浏览器查看的网页上列出的结果中返回给用户。可在浏览器的专用页面或窗口中查看对所关注的特定项目的信息。

每个服务器一般将包括提供对该服务器的一般管理和操作的可执行程序指令的操作系统,并一般将包括存储指令的计算机可读介质,当所述指令由服务器的处理器执行时允许服务器执行其预期的功能。对服务器的操作系统和一般功能的适当实现是已知的或在市场上可得到的,并容易由本领域普通技术人员特别根据本文的公开来实现。

在一个实施方案中的环境是利用经由通信链路使用一个或多个计算机网络或直接连接来互连的一些计算机系统和部件的分布式计算环境。然而,本领域的普通技术人员将认识到,这样的系统可同样好地在具有比图1所示的更少或更多数量的部件的系统中操作。因此,图1中的系统100的描绘应被理解为本质上是例证性的,且不限于本公开的范围。

例如图1所示的环境可能对提供商例如电子市场是有用的,其中多个主机可用于执行任务,例如服务内容、认证用户、执行支付交易、或执行很多其它这样的任务中的任一个。这些主机中的一些可配置成提供相同的功能性,而其它服务器可配置成执行至少一些不同的功能。在这样的情况下的电子环境可包括额外的部件和/或其它布置,例如在下面详细讨论的在图2的配置200中示出的那些部件。

根据一个实施方案的系统和方法提供使开发者、客户或其它经授权的用户能够容易和成本有效地获得并配置关系数据库和其它这样的数据源的关系数据库服务(“RDS”),使得用户可执行任务,例如存储、处理和查询云中的关系数据集。虽然关于互联网、Web服务和基于互联网的技术讨论了这个例子,应理解,各种实施方案的方面可与在电子环境中通过网络可得到或提供的任何适当的服务一起使用。此外,虽然服务在本文被称为“关系数据库服务”,但应理解,这样的服务可在电子环境中与任何适当类型的数据存储库或数据存储器一起使用。在本实例中的RDS包括至少一种Web服务,其使用户或客户能够容易管理关系数据集,而不担心部署、升级、补丁管理、备份、复制、故障切换、容量管理、按比例调整和数据管理的其它这样的方面的管理复杂性。开发者因此自由地开发复杂的云应用,而不担心管理数据库基础设施的复杂性。

在一个实施方案中的RDS提供单独的“控制面”,其包括对管理数据存储的方面有用的部件(例如,硬件和软件)。在一个实施方案中,提供允许用户或客户在RDS内进行调用以执行与数据存储有关的某些任务的一组数据管理应用编程接口(API)或其它这样的接口。然而,用户仍然可使用直接接口或API来与数据存储库进行通信,并可仅当必要时使用控制面的RDS特定的API,以管理数据存储或执行类似的任务。

图2示出可根据一个实施方案使用的RDS实现200的例子。在本实例中,最终用户的计算设备202被示为能通过网络206在控制面208内进行调用,以执行任务,例如提供数据面210的数据存储库。用户或应用204可直接通过数据面210的接口访问所供应的存储库。虽然最终用户计算设备和应用用于解释的目的,但是应理解,任何适当的用户、应用、服务、设备、部件或资源可在各种实施方案中在适当时访问控制面和/或数据面的接口。此外,虽然部件分成控制面和数据面,但是应理解,这可指用于提供相应的功能性的至少一些资源(例如,硬件和/或软件)的实际或虚拟分离。

在本实例中的控制面208本质上是处理控制和管理行动例如供应、按比例调整、复制等的硬件和软件部件的虚拟层。在本实施方案中的控制面包括Web服务层212或层,其可包括至少一个Web服务器,例如连同计算机可执行软件、应用服务器或其它这样的部件。Web服务层还可包括用于从访问网络206接收Web服务调用或请求的一组API 232(或其它这样的接口)。可提供每个API来接收对将关于数据环境执行的至少一个特定的行动的请求,例如供应、按比例调整、克隆关系数据库的实例或使关系数据库的实例冬眠。当接收到对API之一的请求时,Web服务层可解析或以其它方式分析该请求以确定作用于或处理调用所需的步骤或行动。例如,可接收包括对创建数据存储库的请求的Web服务调用。在本实例中,Web服务层可解析该请求以确定待创建的数据存储库的类型、所请求的存储卷、所请求的硬件(如果有)的类型、或其它这样的方面。对请求的信息可被写到管理(“Admin”)数据存储器222或其它适当的存储位置或工作队列,用于随后的处理。

在一个实施方案中的Web服务层包括一组可升级的面向客户的服务器,其可提供各种控制面API并基于API规范返回适当的响应。Web服务层还可包括至少一个API服务层,其在一个实施方案中由处理面向外部的客户API的无国籍复制服务器组成。Web服务层可负责Web服务前端特征,例如基于证书来认证客户、授权客户、抑制对API服务器的客户请求、使用户输入生效、并将请求和响应编组或编出。API层也可负责响应于API调用而从管理数据存储器读数据库配置数据/将数据库配置数据写到管理数据存储器。在很多实施方案中,Web服务层和/或API服务层将是唯一的外部可见的部件,或对控制服务的客户可见并可由客户访问的唯一部件。Web服务层的服务器可以是无国籍的,并水平地按比例调整,如本领域中已知的。API服务器以及持久数据存储器可例如在地理区域中或地理位置附近的多个数据中心中扩展,使得服务器对单个数据中心故障是能复原的。

在本实施方案中的控制面包括在本文称为“清理器”部件214的部件。清理器部件可以是可操作来轮询控制面的各种部件或以其它方式确定将响应于未完成的请求来执行的任何任务的任何适当的部件。在本实例中,Web服务层可将“创建数据库”请求的指令或信息放置在管理数据存储器222或类似的工作队列中,且清理器可周期性地检查用于未完成的工作的管理数据库。可使用各种其它方法,如将对本领域的普通技术人员明显的,例如向清理器发送工作存在的通知的Web服务。清理器部件可获得“创建数据库”请求,且使用该请求的信息可将请求、调用或其它这样的命令发送到可操作来例示该请求的至少一个工作流的工作流部件216。使用如在文本的其它地方讨论的工作流服务来产生和维持在一个实施方案中的工作流。通常工作流是应被执行来执行特定的工作的一系列任务。工作流不是实际工作,而是控制信息的流动和工作的执行的工作的抽象。工作流也可被认为是状态机,其可在执行期间的任何时间管理并返回过程的状态。在一个实施方案中的工作流部件(或部件的系统)可操作来为例如下列任务管理和/或执行工作流的托管和执行:存储库创建、修改和探测;恢复和备份;安全组创建、探测和修改;用户证书管理;以及密钥旋转和证书管理。这样的工作流可紧随着工作流服务实现,如在本文的其它地方讨论的。工作流部件也可管理在用于不同的数据库引擎例如MySQL的工作流步骤之间的差异,因为下层工作流服务不一定改变。

在本实例中,可使用用于创建数据库并应用从原始请求提取的信息的工作流模板来例示工作流。例如,如果请求是针对关系数据库管理系统(RDBMS)实例,与RDBMS或其它这样的实例相反,则特定的任务将被添加到指向MySQL实例的工作流。工作流部件也可选择与所请求的存储的量有关的特定任务、任何特定的硬件需要或其它这样的任务。这些任务可按对总工作有用的执行顺序被添加到工作流。虽然一些任务可被并行地执行,但其它任务依赖于将被首先完成的以前任务。工作流部件或服务可在工作流中包括这个信息,且任务可按需要被执行以及信息被传递。

客户的示例性“创建数据库”工作流可包括任务,例如供应数据存储实例,分配实例外持久存储的卷,将持久存储卷连接到数据存储实例,接着分配并连接DNS地址或客户可用于访问或以其它方式连接到数据实例的其它地址、端口、接口或标识符。在本实例中,给用户提供用于访问实例的DNS地址和端口地址。工作流也可包括下载并安装任何二进制或用于特定的数据存储技术(例如,MySQL)的其它信息的任务。工作流部件可管理这些和任何相关任务的执行、或这样的任务的任何其它适当的组合,并可响应于实际上相应于数据面210中的数据存储实例的“创建数据库”请求而产生对指示“数据库”的创建的请求的响应,并提供用于访问实例的DNS地址。用户接着可直接使用DNS地址和端口访问数据存储实例,而不必访问或经过控制面208。各种其它工作流模板可用于执行类似的工作,例如删除、创建或修改一个或多个数据存储实例,例如增加存储。在一些实施方案中,工作流信息被写到存储器,且至少一个单独的执行部件(未示出)拉或以其它方式访问或接收将基于工作流信息执行的任务。例如,可能存在执行供应任务的专用供应部件,且该部件可能不被工作流部件调用,但可监控任务队列或可接收用于以很多相关方式中的任一种供应任务的信息,如应明显的。

如所述,各种实施方案可利用可接收对过程或任务的当前状态例如供应存储库的请求或调用的工作流服务,并可返回过程的当前状态。工作流部件和/或工作流服务不进行实际调用或请求以执行每个任务,而相反管理使控制面的部件能够确定待执行的下一任务的工作流的状态和配置信息以及该任务所需的信息,接着产生包括该状态信息的在数据面内的适当调用,由此数据面的部件可进行调用以执行任务。工作流和任务可并行地被调度,以便增加吞吐量并最大化处理资源。如所讨论的,任务的实际执行将出现在数据面中,但任务将起源于控制面。例如,工作流部件可与可在数据存储器中进行调用的主机管理器通信。因此,对于给定的任务,可对穿过某些参数的工作流服务进行调用,由此工作流服务产生工作流的任务的序列,并提供当前状态,使得当前状态的任务可被执行。在任务被执行(或以其它方式被解决或终结)之后,部件例如主机管理器可答复服务,其可接着提供关于工作流中的下一状态的信息,使得下一任务可被执行。每当工作流的任务之一被执行时,服务可提供待执行的新任务,直到工作流完成。此外,可对不同的工作流并行地运行多个线程,以加速工作流的处理。

在本实施方案中的控制面208还包括至少一个监控部件218。当在数据面中创建数据实例时,可将该实例的信息写到控制面中的数据存储器例如监控数据存储器220中。应理解,监控数据存储器可以是单独的数据存储器,或可以是另一数据存储器的一部分,例如在管理数据存储器222中的一组不同的表、或另一适当的存储库。监控部件可访问在监控数据存储器中的信息,以确定在数据平面210中的有效实例234。监控部件也可执行其它任务,例如从控制面和/或数据面的多个部件例如Web服务层、工作流部件、清理器部件和各种主机管理器收集日志和/或事件信息。使用这样的事件信息,监控部件可暴露客户可见的事件,用于例如实现面向客户的API的目的。监控部件可不断地监控控制面的所有运行的存储库和/或实例的健康状态,探测这些实例中的任一个的故障,并发起适当的恢复过程。

对于提供对数据存储器的访问的机器,在数据面中的每个实例234可包括至少一个数据存储器226和主机管理器部件228。在一个实施方案中主机管理器是在实例和/或应用服务器例如Tomcat或Java应用服务器上执行的应用或软件代理,其被编程为管理任务例如软件部署和数据存储操作以及监控数据存储器和/或相应的实例的状态。在一个实施方案中主机管理器侦听只可从内部系统部件到达且客户或其它外部实体不可采用的端口。在一些实施方案中,主机管理器不能在控制面层内发起任何调用。主机管理器可负责管理和/或执行任务,例如建立对新的存储库的实例,包括建立逻辑卷和文件系统,安装数据库二进制和种子,并开始和停止存储库。主机管理器可监控数据存储器的健康状态以及针对错误条件例如I/O错误或数据存储器错误监控数据存储器,并且如果必要可重新启动数据存储器。主机管理器还执行和/或管理数据存储器和/或操作系统的软件补丁和升级的安装。主机管理器还可收集相关的度量,例如可与CPU、存储器和I/O使用有关。

监控部件可对所监控的实例234例如通过发送特定的请求或通过监控来自主机管理器的心跳来周期性地与每个主机管理器228进行通信,以确定每个主机的状态。在一个实施方案中,监控部件包括配置成向每个主机管理器发出命令的一组事件处理器(或监控服务器),例如以获得特定的主机和/或实例的状态。如果响应在特定数量的重试之后没有被接收到,则监控部件可确定存在问题,并可将信息存储在管理数据库222或另一这样的工作队列中以执行对实例的行动,例如验证该问题且如果必要则重新供应实例。清理器可访问该信息并切断实例的恢复工作流以试图自动从故障恢复。主机管理器228可充当对控制面的监控和其它部件的代理,代表控制面部件执行实例的任务。有时候,实例之一例如相应的主机、实例或卷毁损、再引导、重新启动等将出现不能被自动解决的问题。在一个实施方案中,存在可记录这些和其它客户可见性事件的记录部件(未示出)。记录部件可包括API或其它这样的接口,使得如果实例在一段时间内是可用的,客户可调用适当的“事件”或类似的API来获得关于事件的信息。在一些情况下,当实例出故障时请求可保持未决。因为在这个实施方案中控制面与数据面分离,控制面从不接收数据请求,因此不能排队等候对随后提交的请求(虽然在一些实施方案中该信息可被转发到控制面)。因此,在本实施方案中的控制面向用户提供关于故障的信息,所以用户可在必要时处理请求。

如所讨论的,一旦供应了实例且给用户提供了DNS地址或其它地址或位置,用户就可通过网络使用Java数据库连接(JDBC)或其它这样的客户端将请求“直接”发送到数据面210以直接与该实例234交互作用。在一个实施方案中,数据面采取计算云环境(或至少包括计算机云环境或是计算云环境的部分)或一组Web服务和资源的形式,这组Web服务和资源在硬件和/或软件部件的“云”或动态网络中提供数据存储和访问。DNS地址在这样的动态云环境中是有益的,因为实例或可用性故障例如可通过将DNS地址编程地重新映射到用于使用的任何适当的置换实例而被掩蔽。从用户202或应用204接收的请求例如可指向网络地址转换(NAT)路由器224或其它适当的部件,其可将请求引导到实际实例234或相应于请求的DNS的主机。如所讨论的,这样的方法允许实例被动态地移动、更新、复制等,而不需要用户或应用改变用于访问实例的DNS或其它地址。如所讨论的,每个实例234可包括主机管理器228和数据存储器226,并可在持久存储器230中具有至少一个备份实例或副本。使用这样的方法,一旦实例通过控制面被配置,用户、应用、服务或部件就可直接通过对数据面的请求与实例交互作用,而不必访问控制面232。例如,用户可通过DNS地址直接发出结构查询语言(SQL)或与实例中的数据有关的其它这样的命令。用户将仅仅必须访问控制面,如果用户想执行任务例如扩展实例的存储容量。在至少一个实施方案中,控制面208的功能可作为至少一种服务由提供商提供,提供商可以或可以不与数据面210的提供商有关,而可仅仅是可用于提供和管理数据面中的数据实例且也可监控和确保在分离的数据面210中的那些实例的可用性的第三方服务。

如所讨论的,提供控制面的功能作为Web服务或其它这样的服务的一个优点是控制面起虚拟数据库管理员(DBA)的作用并避免人DBA执行任务例如供应数据。供应数据目前是冗长的手工程序,需要DBA来接收必要的配置信息,确定配置是否是有效的,优化和调节实例,并执行其它这样的任务,其花费相当大量的时间和努力。此外,这样的方法提供很多错误机会,其可能不被发现,直到数据被丢失之后。使用如本文描述的控制面或服务,用户或客户可替代地提交包括信息例如硬件的类型和数据库产品的版本的调用。控制面或服务可接着执行必要的任务来创建、删除、修改、扩展或以其它方式修改数据存储器或数据存储实例。控制面也可用一致的方式支持一些不同的数据库引擎,而不需要DBA在每个引擎中是专家。一旦被供应,用户就可本地访问数据实例,并可简单地将现有的应用(例如MySQL应用)指向DNS地址或特定实例的其它位置信息。没有查询模型或其它这样的功能的限制或修改,因为用户可继续使用建立在MySQL、Oracle或其它数据库技术上的应用。

根据各种实施方案的系统和方法使客户能够利用Web服务或类似的这样的方法,以在云计算或类似的环境中创建一个或多个已复制的数据库实例,提供高度持久和高度可靠的数据解决方案。当客户在各种实施方案中创建已复制的数据库实例时,客户数据使用主要-辅助复制模型被同步复制。在一些实施方案中,副本可位于不同的物理位置上,例如在不同的数据区中。每个数据“区”可以指例如位于特定的地理区域内的一个或多个数据中心或数据服务器的组,不同的区位于不同的地理位置处或周围。RDS实例接着可容忍数据区之一的故障,因为在不同的地理位置处的另一数据区可能避免故障,除了在大的灾难性事件的情况下。在一些情况下,数据中心可跨越多个数据区,但在给定数据中心内的数据副本可在不同的区中被例示。很多其它变形是可能的,例如重叠区、在多个地理位置处的区等。如果主要副本故障或以其它方式变得不可用,则RDS系统可快速并自动故障切换到辅助副本,导致非常少的停机时间或数据不可用性。

在一个实施方案中,客户能够通过调用控制面的Web服务层的指定接口来创建已复制的数据库实例,例如关于图2讨论的。例如,客户可调用指定诸如实例类、所分配的存储器、数据库引擎等方面的“CreateDBInstance”API,因为客户将创建未复制的数据实例。当创建已复制实例时,客户可包括至少一个额外的参数,例如“已复制”或类似的参数,一个值被设置为“真”或任何其它适当的值指示所创建的实例应被复制。在一些实施方案中,值默认被设置为“假”,使得未复制的实例被创建,除非另外由客户指定。在一些实施方案中,只有某些客户具有创建已复制实例的能力,例如负担某些水平的服务的费用的客户等。

在一些实施方案中,客户也可选择辅助副本是否在与主要副本不同的数据区中创建。在一些实施方案中客户也可被允许选择对实例的一个或多个特定的数据区、或例如有序列表,而在其它实施方案中客户不能选择对至少辅助副本的数据区。如果客户指定两个数据区且例如数据区之一例如在延长的时间段内变得不可用,在一些实施方案中持久性需求将使另一副本在第三数据区中产生,依此类推。这可能需要多个客户的数据区列表的顺序的管理和更新,这可复杂化用户体验,而不提供任何明显的益处。此外,应用遍及数据区扩展相关的应用舰队可能更容易,使得可能有位于与辅助副本相同的数据区中的一些应用舰队。

在一些实施方案中,客户可为已复制的数据实例调用“DescribeDBInstance”或类似的API,由此RDS可列出信息,例如主要副本的端点DNS名称和主要副本当前所位于的数据区。客户仍可使用将用于单个数据区的常规方法与RDS实例进行通信,因为例如RDS实例的状态一旦是“可用的”,客户就可接收数据存储器的端点DNS名称,并使用端点DNS名称连接到实例。在复制失败的情况下,RDS可使数据库故障切换到相应的辅助副本,且端点DNS名称又可被称为新的主要副本。数据库端点DNS名称在很多实施方案中保持不变,在已复制实例的寿命期间不变。

在一些实施方案中,可例如通过调用已复制参数被设置为“真”的“ModifyDBInstance”或类似的API来给客户提供将未复制的实例转换成已复制实例的能力。这可使数据库能够在适当的时间例如在下一维护窗期间或紧接在请求之后转换到已复制实例,因为可依赖于API调用参数等。

各种实施方案利用块极复制机制,例如实现什么也不共享的内核模块、反映服务器之间的块设备的内容的已复制存储解决方案。块级复制机制(“BLRM”)可紧接着块设备(即,硬盘或逻辑卷)工作。它使用主要-从属复制结构,其中主要副本将所有更新指向下层块设备。对块设备的所有输入和输出(I/O)请求由BLRM内核模块拦截,所有写操作被自动和同步地复制。BLRM提供对等设备的内在故障探测,并在对等节点不可到达时调用适当的恢复处理程序。BLRM也可在背景中将暂时不可用的节点自动重新同步化到数据的最近版本,而不干扰在主要副本处的数据访问。BLRM使用生成标识符(“GI”)来识别已复制数据的生成,由此BLRM可确定方面,例如两个节点是否是同一副本对的成员、背景重新再同步(如果必要)的方向、以及部分或完全的重新同步是否需要。BLRM驱动器可在任何适当的时间例如在副本对的初始化期间、当断开的备用副本切换到主要副本时、或起主要作用的资源与辅助副本断开时开始新的生成。虽然为了解释的目的,块级复制机制在本文用作例子,但是应理解,可在各种实施方案的范围内使用任何其它适当的块级技术或机制。

如所讨论的,在各种实施方案中的RDS数据实例可建立在一个或多个系统或平台上。例如,实例可建立在虚拟计算环境上,虚拟计算环境使客户能够利用Web服务或另一适当的方法来使用各种操作系统发起实例并管理那些实例。提供这样的虚拟计算环境的Web服务的例子是由Amazon.com公司提供的弹性计算云(EC2)服务。数据实例也可建立在块级存储机制上,块级存储机制可提供独立于实例的寿命持久的实例外存储器。块存储机制可提供存储卷,其可连接到实例并被暴露为实例内的设备。块存储平台的例子在2008年8月8日提交的题目为“Managing Access of Multiple Executing Programs to a Non-Local Block Data Storage”的共同未决的美国专利申请号12/188,949被提供,该专利由此通过引用被并入本文。逻辑卷(例如LVM层)可建立在块存储卷和适当的文件系统的顶部上,使得客户数据库可在LVM/文件系统层的顶部上运行。在一个实施方案中对于已复制数据库,BLRM可在LVM层的顶部上运行。在这样的实施方案中BLRM将拦截所有I/O请求并将那些请求发送到逻辑卷,其又可在多个块存储卷中分离请求。逻辑卷的使用可提供处理多个块存储E卷的能力以及容易扩展存储的能力等。在LVM的顶部上的分层BLRM也可允许白操作在副本中被复制。

图3示出用于实现主要-辅助复制模型以提供已复制RDS实例的机制300的例子。在本实例中,主要副本310和辅助副本312位于数据平面308或数据库环境的不同的数据区(1和2)中。每个副本建立在块存储机制的顶部上,块存储机制在这里被示为BLRM层318、322,用于管理对每个副本的块存储器320、322的I/O。控制面306的部件例如可类似于关于图2讨论的那些部件,能够通过将配置命令发到例如可执行必要的建立操作的本地主机管理器314、316来创建已复制RDS实例。如在附图中看到的,块级机制例如BLRM 318、322定位成拦截在块设备级处的所有I/O请求,并将对请求的信息写到本地磁盘和远程磁盘320、324。在本实例中,数据库318(例如SQL)只在主要副本310上运行,且所有客户端302在主要副本310上运行其数据库事务(经由适当的网络304)。数据库318不在辅助副本312上运行,且文件系统也可不安装在辅助副本上,因为数据库将通常不知道在下层设备中的更新。

每个数据库客户端302可使用又可称为主要副本310的主机名称的RDS数据库DNS端点名称来自动发现当前的主要副本。通过使用DNS来发现当前的主要副本,可例如维持与现有的数据库客户端例如本地MySQL客户端、JDBC、PHP、C#和Haskell的兼容性。虽然DNS缓存可潜在地使客户端试图连接到旧的主要副本,客户端将不能通过连接到辅助副本来与数据库交谈,因为没有数据库在辅助副本中运行。客户于是可知道获得适当的DNS信息。

图4示出了根据一个实施方案的用于为客户创建已复制RDS实例的过程400的例子。虽然术语“客户”在本文用于指数据的“所有者”或由RDS系统托管的数据库或实例,但是应理解,术语客户仅仅是例子,且任何适当的用户或开发者可被允许在各种环境中访问控制面和数据面。此外,虽然描述了与数据环境的控制有关的实施方案,但是应理解,类似的方法可用于在与控制环境不同的环境中控制和/或管理各种其它部件、设备、应用、服务或其它这样的资源。这个过程的步骤呈现为特定实施方案的例子,但应理解,在各种实施方案的范围内,额外的、更少和/或可选的步骤可按不同的顺序和/或并行或同时执行。

在本实例中,客户调用CreateDBInstance或类似的API 402,其中Web服务层的部件可分析该调用并使客户所提供的数据库创建参数存储到管理数据库404。数据库的生命周期可被标记有值例如“CREATING”,当成功地将记录提交到管理数据存储器时,被标记有“PENDING”的改变状态,使得创建数据库的任务或工作将由清理器部件接收到。Web服务层不直接调用工作流系统来切断在本实施方案中的活动以避免发起行动接着验证工作流开始该任务的两阶段任务的活动。通过简单地保存用于由清理器取回的请求,没有工作流活动将丢失。

如前所述,清理器对新的工作周期性地轮询管理数据库。具有CREATING和PENDING的生命周期和改变状态的数据库记录例如可使清理器发起“CreateDatabase”或类似的工作流406。作为工作流的初始任务,数据库的改变状态可被更新到值例如“APPLYING”,由此其它清理器知道改变在进行中。工作流的其它主要任务包括创建将充当主要副本的实例(408),从主要副本创建辅助副本(410),以及连接辅助副本与主要副本(412)。一旦副本被连接且是可用的,RDS实例就可暴露于客户并使用DNS名称可被访问(414)。在各种实施方案中,对辅助副本的标度计算“在场景后面”被执行,由此辅助副本可在连接副本之前按比例调整,用于复制和/或故障切换。

图5示出可用于根据一个实施方案创建主要副本的这样的过程的部分500的例子。如所讨论的,工作流可采取初始步骤以供应构成RDS实例的所有资源。例如,数据实例例如通过使用RDS指定的机器图像对主要主机创建(502)。可为主要主机分配并连接块存储卷(504)。至少部分地基于配置信息来请求卷,配置信息指定方面例如单独卷的最大尺寸和容器的期望最小数量。当保留的IOPS被保证时,可使用单个卷。一旦核心资源的每个变得可用,工作流就将块存储卷连接到为主要副本分配的数据实例。

在一些实施方案中,创建执行类似于客户数据库的防火墙的功能的安全组。安全组可使客户能够定义例如可与数据库通信的一系列地址例如互联网协议(IP)地址或定义可与数据库通信的数据实例。

工作流可使主机管理器例如通过下载主机管理器、验证校验和或以其它方式使下载生效并调用适当的安装实例例如Tomcat安装应用API来被安装并启动(506)。一旦主机管理器在安装之后成功地启动,数据实例就可具有安装数据库引擎和建立客户数据库所需的功能。

一旦主要副本运行,工作流就可为主要副本请求由主机管理器执行的各种行动。例如,主机管理器可请求块存储卷被安装和文件系统被准备(508)。在某些实施方案中,对两种角色的每个执行块存储卷的安装和文件系统的建立:二进制角色和数据角色。在一个实施方案中,控制面发送存储配置文件(例如XML文件),其向主机管理器提供关于对每个角色使用的安装点和卷的信息。使用该信息,主机管理器可为对给定角色供应的所有卷创建物理设备,并可创建对每个角色在这些设备中条理化数据的逻辑卷。一旦逻辑卷被创建(510),主机管理器就可通过安装本身作为唯一的副本的BLRM配置文件并启动BLRM内核模块来创建BLRM配置信息。一旦BLRM使用配置信息被启动(512),BLRM就可自动处理对数据卷的所有I/O访问。

工作流可接着将分组管理器(例如RPM)公共签名密钥或其它安全机制安装到主要副本的主机管理器。主要副本的主机管理器可接着例如通过在数据实例上下载并验证签名的信息的主机管理器来下载并安装数据库引擎(514),后面是包裹的解开、安装和投放。随后,主要副本的主机管理器可安装将作为客户数据库的基础使用的空白数据库。通过以RDS特定的空白数据库开始,可容易应用用于管理的许可和表格。主机管理器可创建客户数据库、改变对数据库的根口令、并创建数据库用户(516),如在客户请求中指定的。工作流接着可开始数据库(例如MySQL)(518)。

由于数据库开始,BLRM资源可被断开,且位图被清除。工作流可使快照对主要主机的块存储卷而捕获,且主要数据库的主机管理器可被指示来创建新的一般接口。主机管理器接着可被指示来安装具有辅助主机名的新的BLRM配置文件,并可再次装入配置信息。

一旦示例性工作流的上面任务中的至少一些完成,工作流就可继续前进到目的在于构建辅助副本的任务。图6示出用于创建可根据各种实施方案使用的至少一个辅助或备用副本的示例性过程600的步骤。作为第一任务,可从主要副本的数据卷的块存储快照创建块存储卷(602),且可对二进制创建卷。工作流可接着使数据实例被发起,且所分配的卷被连接(604)。如所讨论的,可在与主要副本连接之前对辅助副本执行标度计算。可接着对辅助副本发起主机管理器(606)。一旦主机管理器对辅助副本运行,工作流就可调用主机管理器以建立辅助实例。在建立过程期间,主机管理器可建立卷(608),安装具有适当的主要副本和辅助副本配置的BLRM配置文件(610),确定BLRM是否被安装并启动内核模块,接着建立BLRM处理程序(612)。此时,主要副本和辅助副本应被连接并从清除位图调用被发出的时刻起同步。工作流接着可在管理数据存储器中将数据库标记为“可用的”,并使实例对客户是可利用的(614)。

一旦实例的主要副本和辅助副本运行且对客户是可利用的,客户就可执行关于实例的一些行动的任一个。例如,客户可将请求发送到Web服务层的API或命令行工具,以描述一个或多个数据库。Web服务可立即通过查询管理数据存储器以得到在请求中指定的客户数据库的当前状态来实现请求。在未决修改的情况下,当前值和修改值可被显示给客户。

在一些情况下,客户可调用API例如“RebootDBInstance”API,以便重新引导客户数据库。在一个实施方案中,这个API仅仅使客户能够重新引导数据库引擎而不是RDS实例。Web服务层可将信息存储到管理数据存储器(或另一这样的工作队列),由此清理器可接收到信息以开始工作流。工作流可调用主要副本的主机管理器以重新开始数据库。在各种实施方案中这个API的实现在已复制和未复制的实例中没有不同。

客户可发送请求以使用例如API或命令行工具删除客户数据库,由此控制面的部件可被指示准备删除。在证书和请求参数的验证之后,例如Web服务层的部件可例如证实客户数据库可在当前的时间例如生命周期没有在CREATING或DELETING状态中时被删除。部件也可将管理数据存储器中的客户数据库的适当的记录更新到DELETING的生命周期状态或PENDING的改变状态。周期性地轮询待完成的任务的工作流清理器可识别出数据库由于PENDING的改变状态而应被删除,并可发起工作流实例以完成删除。工作流的第一行动或任务可以是将数据库的改变状态更新到APPLYING,使得其它清理器知道变化在进行中。

工作流实例可以抽出任何剩余的事件日志并释放为主要副本和辅助副本分配的资源。例如,工作流可指示RDS事件处理器从RDS实例抽出事件,接着关闭数据库并卸下主要副本中的文件系统。如果最终的快照被客户请求或如果策略以其它方式规定,则工作流可指示数据库的快照被获得。实例通过调用RDS事件处理器API来被重新注册以确保事件处理器系统不再监控实例。DNS名称可被删除,且块存储卷和数据实例被释放。工作流可通过将管理数据存储器中的这个客户数据的记录更新到DELETED的状态来完成删除,由此该记录可移动到记录档案库中且该记录被删除。

使客户按比例调整为实例分配的存储和/或计算容量有时也可能是必要或合乎需要的。当按比例调整存储时,例如卷可添加到主要副本和辅助副本,LVM被扩展。在主要副本上,BLRM处理程序可被调用以扩展块设备来包括在块设备的控制下的新卷,且文件系统可被调整大小。

特别是,可根据当前的卷配置参数为主要副本和辅助副本提供新的块存储卷。可对两个实例上的主机管理器调用“ScaleStorage”或类似的API,这可使物理设备被创建且新的卷添加到现有的卷组。主机管理器可例如通过将LVM物理区域从一个物理卷(例如块存储卷)移动到另一物理卷来使卷组中的空间重新平衡。逻辑卷也可扩展成包括新的空间。一旦ScaleStorage功能完成,工作流就可为在主要接口上的主机管理器接口调用例如接口例如“primaryScaleStorage”API,这可使BLRM块设备层扩展以使用新的空间。一旦BLRM调整大小完成,文件系统就可被调整大小。如果没有剩余的更新,则管理数据存储器中的客户数据库的记录可被设置为“AVAILABLE”的生命周期状态,且改变状态被更新为“NONE”。调整大小的实例可接着由客户利用。如果主要副本或辅助副本在按比例调整过程期间是不可达到的,则工作流可中止并离开在例如“MODIFYING”中的状态,并在以后的时间重试。

当按比例调整计算容量时,各种实施方案使客户能够调节实例的“计算类”,每个类具有所分配的指定计算容量。在某些实施方案中,辅助副本首先例如通过使用故障切换过程被按比例调整,系统接着切换到辅助副本,由此辅助副本变成新的主要副本。旧的主要副本的计算轨道数据编辑程序汇编可在必要时按比例调整,且旧的主要副本可起新的辅助副本的作用。通过首先按比例调整辅助副本并进行例如故障切换,已复制实例可经历较短的停机时间,停机时间否则可能在单个数据区中按比例调整实例类时出现。

下面介绍了用于按比例调整数据库实例的过程的特定实例,在该过程中,已复制实例具有主要副本P和辅助副本S。可使用新的实例类并使用与现有实例相同的安全组为主要副本和辅助副本提供新的实例(例如P_new和S_new)。可分别在与P和S相同的数据区中创建P_new和S_new。在管理数据库中的RDS实例的状态可被更新到值例如“IN_MODIFICATION”。实例标识符可从事件处理器被取消注册,使得当工作流拆卸数据库用于按比例调整时,主要和/或辅助副本的恢复没有被触发。辅助实例的状态可被更新为值例如“IN_MIDIFICATION”。在辅助副本上,可请求主机管理器通过例如停止数据库、与主要实例断开(例如,通过发出BLRM断开命令)、卸下所有文件系统并使所有的卷组无效来停止使用现有的块存储机制。块存储卷可从S分离并连接到S_new。主机管理器接着可安装在S_new上,并可被请求来启动卷组。主要副本可接着例如通过关闭数据库并卸下卷来终止,且所有块存储卷可被分离。到S_new的故障切换可通过将数据库端点指向S_new来发起,因而使S_new成为新的主要副本。S_new上的主机管理器可接着被请求安装文件系统,且证书(例如RPM公钥)可被发送到新实例上的主机管理器。S_new上的主机管理器可接着被请求开始数据库,且数据库可被标记为AVAILABLE。在此阶段,数据库准备使用,即使辅助副本仍然在创建之下。在下一步骤,P_new实例可开始,且以前连接到P的块存储卷可连接到P_new。主机管理器可安装在P_new上,且BLRM配置文件被安装。在这个实施方案中,此时没有文件系统安装在P_new上。接着向S_new上的的主机管理器发出命令,以连接S_new与P_new,以及验证连接状态。接着可提供按比例调整的副本用于由客户访问。

实施方案还可允许用户例如通过创建快照或其它时间点备份来在其实例中备份信息。例如,RDS可使客户能够创建其实例的快照并从这些快照创建新的实例。快照也可用于执行已复制数据库的时间点恢复。为了创建未复制的实例的快照,工作流有效地将I/O挂起到数据库卷,获得连接到实例的卷的块存储级快照,并解挂卷。当创建已复制实例的快照时,可在辅助副本处获得快照。为此,可暂时断开辅助副本,并从所有块存储卷获得快照。在获得快照之后,辅助副本可被重新连接。通过实现备份,客户有将实例恢复到给定的时间点的能力,只要时间在过去的X天内,其中X是客户的保留期。

当客户实现在未复制的实例中的备份时,可按有规律的间隔例如每天在备份窗期间获得快照,且日志可按其它间隔例如每五分钟备份。当客户想将实例恢复到特定的时间点例如t1时,实例可从具有最接近于期望时间点的时间但在期望时间点之前从快照创建,且日志可用于向前滚动状态以反映该时间点。在已复制实例中,可在辅助副本上获得快照,同时从主要副本备份日志。

在一个实施方案中,到主机管理器的所有通信信道使用超文本传输协议在安全套接层(SSL)上来固定。在实例启动时使用脚本可启动托管主机管理器应用的每个应用服务器。在启动应用服务器引擎之前,可执行产生自签名的证书并安装证书以实现SSL通信信道的脚本。SSL通信在一个实施方案中用于加密通信信道而不是用于客户认证。客户认证替代地使用嵌入每个请求中的公钥/私钥签名来实现,使得在一个实施方案中所有客户端将使用私钥来签署查询字符串参数。这个签名可由定制拦截器生效,定制拦截器可部署有主机管理器的应用服务器。此外,可对数据面中的每个所监控的实例建立安全组(即,防火墙规则),使得只有位于给定网络或安全组中的主机可使用主机管理器端口来进行通信。安全信息和证书(例如私钥)可存储在适当的keystore中,keystore可提供诸如密钥管理和旋转的功能。

如所讨论的,可用类似的方式备份日志文件。日志可用于执行任务,例如重新播放各种交易,假如数据文件必须被恢复。引擎日志可被复制到适当的存储位置,使得以前备份的日志文件可使用简单的列表命令来获得。主机管理器将使用这个结果来确定是否有需要被复制的日志。例如,主机管理器可请求存储桶列表以获得写下的日志文件的列表,使得最后的序列可被备份。如果新的日志被创建,则它可首先确定日志没有有效地被数据库引擎写,且接着日志可被复制且所验证的复制被成功地执行。

如上所讨论的,可在各种操作环境中实现各种实施方案,操作环境在一些情况下可包括一个或多个用户计算机、计算设备或可用于操作多个应用中的任一个的处理设备。用户或客户端设备可包括多个通用个人计算机例如运行标准操作系统的桌上型或膝上型计算机以及蜂窝无线和手持设备中的任一个,手持设备运行移动软件并能够支持很多联网和消息发送协议。这样的系统也可包括运行各种市场上可买到的操作系统和其它已知应用的任一个的多个工作站,用于诸如发展和数据库管理的目的。这些设备还可包括其它电子设备,例如哑终端、瘦客户端、游戏系统和能够经由网络通信的其它设备。

各种方面也可被实现为至少一种服务或Web服务的部分,例如可以是面对服务的结构的部分。服务例如Web服务可使用任何适当类型的消息发送,例如通过使用以可扩展标记语言(XML)格式并使用适当的协议例如SOAP(从“简单对象访问协议”得到)交换的消息来进行通信。由这样的服务提供或执行的过程可用任何适当的语言例如Web服务描述语言(WSDL)来编写。使用语言例如WSDL允许功能,例如在各种SOAP框架中的客户端侧代码的自动产生。

大多数实施方案利用本领域技术人员熟悉的用于使用多种市场上可买到的协议例如TCP/IP、OSI、FTP、UpnP、CIFS和AppleTalk中的任一个支持通信的至少一个网络。网络可以是例如局域网、广域网、虚拟专用网络、互联网、内联网、外联网、公共交换电话网络、红外网络、无线网络和其任何组合。

在利用Web服务器的实施方案中,Web服务器可运行多种服务器或中间层应用中的任一个,包括HTTP服务器、FTP服务器、CGI服务器、数据服务器、Java服务器和商业应用服务器。服务器也可以能够例如通过执行一个或多个Web应用来执行在来自用户设备的响应请求中的程序或脚本,这些Web应用可被实现为以任何编程语言例如C、C#或C++或任何脚本语言例如Perl、Python或TCL以及其组合编写的一个或多个脚本或程序。服务器也可包括数据库服务器,没有限制地包括可从和商业地得到的那些服务器。

环境可包括如上所述的各种数据存储器和其它存储器或存储介质。这些可存在于多种位置上,例如在(和/或存在于)一个或多个计算机本地的或远离在网络中的任何或所有计算机的存储介质上。在特定的一组实施方案中,信息可存在于本领域技术人员熟悉的存储区域网络(“SAN”)中。类似地,用于执行属于计算机、服务器或其它网络设备的功能的任何必要的文件可在适当时在本地和/或远程地存储。在系统包括计算机化设备的场合,每个这样的设备可包括可经由总线电耦合的硬件元件,元件包括例如至少一个中央处理单元(CPU)、至少一个输入设备(例如,鼠标、键盘、控制器、触摸屏或小键盘)和至少一个输出设备(例如显示设备、打印机或扬声器)。这样的系统也可包括一个或多个存储设备,例如磁盘驱动器、光学存储设备和固态存储设备例如随机存取存储器(“RAM”)或只读存储器(“ROM”)以及可移动介质设备、存储卡、闪存卡等。

这样的设备也可包括如上所述的计算机可读存储介质阅读器、通信设备(例如调制解调器、网卡(无线或有线)、红外通信设备等)和工作存储器。计算机可读存储介质阅读器可连接于或配置成接收计算机可读存储介质,其代表远程、本地、固定和/或可移动存储设备以及用于暂时和/或更永久地包含、存储、传输并检索计算机可读信息的存储介质。系统和各种设备一般还包括很多软件应用、模块、服务或位于至少一个工作存储设备内的其它元件,包括操作系统和应用程序例如客户端应用或Web浏览器。应认识到,从上面的描述中,可选的实施方案可具有很多变化。例如,定制的硬件也可被使用和/或特定的元件可在硬件、软件(包括便携式软件例如小应用程序)或两者中实现。此外,到其它计算设备例如网络输入/输出设备的连接可被使用。

用于包含代码或代码的部分的存储介质和计算机可读介质可包括在本领域中已知或使用的任何适当的介质,包括存储介质和通信介质,例如但不限于在用于存储和/或传输信息例如计算机可读指令、数据结构、程序模块或其它数据的任何方法或技术中实现的易失性和非易失性、移动和不可移动介质,包括RAM、ROM、EEPROM、闪存或其它存储技术、CD-ROM、数字通用盘(DVD)或其它光学存储器、盒式磁带、磁带、磁盘存储器或其它磁性存储设备或可用于存储期望信息并可由系统设备访问的任何其它介质。基于本文提供的公开和教导,本领域普通技术人员将认识到实现各种实施方案的其它方式和/或方法。

说明书和附图因此在例证性而不是描述性的意义上看待。然而,将明显,可对其进行各种修改和改变,而不偏离如权利要求中阐述的发明的较宽的精神和范围。

条款1.一种使用控制环境的一个或多个自助式Web服务来在数据库环境中供应已复制的关系数据库实例的计算机实现的方法,包括:

在配置有可执行指令的一个或多个计算机系统的控制下,

提供多个应用编程接口(API),每个API使用户能够将Web服务请求提交到控制环境,每个API相应于在单独的数据库环境中关于关系数据库对所述用户执行的期望行动;

响应于通过所述多个API的第一个API从所述用户接收到对所述控制环境的Web服务请求,例示包括用于下列操作的任务的工作流:

在所述数据库环境中在第一数据区中供应主要实例副本;

将数据库引擎安装在所述主要副本实例中;

使用所述主要实例副本的一个或多个快照在所述数据库环境中在第二数据区中供应辅助实例副本;以及

将块级复制机制连接到主要实例副本和辅助实例副本中的每个,所述块极复制机制配置成拦截对所述主要实例副本的任何读或写,并使对所述主要实例副本更新的任何数据同步更新到所述辅助实例副本;以及

给所述用户提供使所述用户能够与在所述主要副本实例中安装的数据库引擎交互作用的别名,别名可更新以使所述用户能够在主要实例副本故障时与所述复制实例副本交互作用。

条款2.条款1的计算机实现的方法,其中所述第一实例副本和第二实例副本中的每个在所述数据库环境中在单独的数据实例上运行,每个数据实例连接到一个或多个专用块存储卷。

条款3.条款2的计算机实现的方法,其中块级复制机制可操作来在所述第一实例副本和第二实例副本的一个或多个专用块存储卷之间同步地复制数据。

条款4.一种使用户能够使用单独的控制环境在数据库环境中创建已复制的数据库实例的计算机实现的方法,包括:

在配置有可执行指令的一个或多个计算机系统的控制下,

提供多个应用编程接口(API),每个API使用户能够将Web服务请求提交到所述控制环境,每个API相应于在所述数据库环境中关于数据库对所述用户执行的期望行动;

响应于通过所述多个API之一从所述用户接收到对所述控制环境的Web服务请求,使数据库的第一实例副本和第二实例副本在所述数据库环境中被供应,块极复制机制配置成拦截在所述主要实例副本处对所述数据库的任何写操作,并将对所述写操作的变化同步地复制到所述辅助实例副本;以及

使所述用户能够经由所述主要实例副本访问所述数据库。

条款5.条款4的计算机实现的方法,其中在单个数据区中、在分开的地理位置处的分开的数据区中、在越过多个地理位置的单个数据区中或越过在单个地理区域中的多个数据区供应所述第一实例副本和第二实例副本。

条款6.条款4的计算机实现的方法,其中所述控制环境配置成如果所述主要实例副本变得不可用则自动执行到所述辅助实例副本的故障切换操作。

条款7.条款4的计算机实现的方法,还包括:

使主机管理器对第一实例副本和第二实例副本中的每个来安装,每个主机管理器可操作来与所述控制环境通信并在所述数据库环境中执行一个或多个任务。

条款8.条款4的计算机实现的方法,其中使用主要实例副本的主要块存储卷的快照来创建辅助实例副本的辅助块存储卷。

条款9.条款4的计算机实现的方法,其中当从所述用户接收的Web服务请求包括指示已复制实例将被创建的复制参数值时,所述第一实例副本和第二实例副本在所述数据库环境中被供应。

条款10.条款4的计算机实现的方法,其中给所述用户提供使所述用户能够与当前主要实例副本通信的别名,包括当故障切换操作使所述复制副本变成新的当前主要实例副本时。

条款11.条款4的计算机实现的方法,还包括:

使所述用户能够使用通过多个API之一提交到所述控制环境的Web服务请求将未复制的实例转换成已复制实例。

条款12.条款4的计算机实现的方法,还包括:

响应于通过多个API之一接收到Web服务请求来捕获所述数据库的一个或多个快照。

条款13.条款12的计算机实现的方法,其中所述快照在辅助实例副本上获得。

条款14.条款4的计算机实现的方法,还包括:

响应于Web服务请求,在所述控制环境中执行工作流,包括用于在所述数据库环境中供应、配置和连接所述第一实例副本和第二实例副本的任务。

条款15.条款4的计算机实现的方法,还包括:

使用所述控制环境的至少一个监控部件来监控所述第一实例副本和第二实例副本的健康信息。

条款16.条款4的计算机实现的方法,还包括:

在所述控制环境中将所述第一实例副本和第二实例副本的配置信息存储到数据存储器中。

条款17.条款4的计算机实现的方法,其中所述复制技术是与数据库引擎无关的。

条款18.一种使用户能够使用单独的控制环境在数据库环境中创建已复制的数据库实例的系统,包括:

处理器;以及

包括指令的存储设备,当所述指令被处理器执行时使所述处理器:

提供多个应用编程接口(API),每个API使用户能够将Web服务请求提交到所述控制环境,每个API相应于在所述数据库环境中关于数据库对所述用户执行的期望行动;

响应于通过所述多个API之一从所述用户接收到对所述控制环境的Web服务请求,使数据库的第一实例副本和第二实例副本在所述数据库环境中被供应,块极复制机制配置成拦截在所述主要实例副本处对所述数据库的任何写操作,并将对所述写操作的变化同步地复制到所述辅助实例副本;以及

使所述用户能够经由所述主要实例副本访问所述数据库。

条款19.条款18的系统,其中在单个数据区中、在分开的地理位置处的分开的数据区中、在越过多个地理位置的单个数据区中或越过在单个地理区域中的多个数据区供应所述第一实例副本和第二实例副本。

条款20.条款18的系统,其中所述指令在被执行时还使所述处理器:

响应于所述Web服务请求,在所述控制环境中执行工作流,包括用于在所述数据库环境中供应、配置和连接所述第一实例副本和第二实例副本的任务。

条款21.条款18的系统,其中所述指令在被执行时还使所述处理器:

使主机管理器对所述第一实例副本和第二实例副本中的每个来安装,每个主机管理器可操作来与所述控制环境通信并在所述数据库环境中执行一个或多个任务。

条款22.一种存储指令的计算机可读存储介质,所述指令使用户能够使用单独的控制环境在数据库环境中创建已复制的数据库实例的系统,所述指令在被执行时使所述处理器:

提供多个应用编程接口(API),每个API使用户能够将Web服务请求提交到所述控制环境,每个API相应于在所述数据库环境中关于数据库对所述用户执行的期望行动;

响应于通过所述多个API之一从所述用户接收到对所述控制环境的Web服务请求,使数据库的第一实例副本和第二实例副本在所述数据库环境中被供应,块极复制机制配置成拦截在所述主要实例副本处对所述数据库的任何写操作,并将对所述写操作的变化同步地复制到所述辅助实例副本;以及

使所述用户能够经由所述主要实例副本访问所述数据库。

条款23.条款22的计算机可读存储介质,其中在单个数据区中、在分开的地理位置处的分开的数据区中、在越过多个地理位置的单个数据区中或越过在单个地理区域中的多个数据区供应所述第一实例副本和第二实例副本。

条款24.条款22的计算机可读存储介质,其中所述指令在被执行时还使所述处理器:

响应所述于Web服务请求,在所述控制环境中执行工作流,包括用于在所述数据库环境中供应、配置和连接所述第一实例副本和第二实例副本的任务。

条款25.条款22的计算机可读存储介质,其中所述指令在被执行时还使所述处理器:

使主机管理器对所述第一实例副本和第二实例副本中的每个来安装,每个主机管理器可操作来与所述控制环境通信并在所述数据库环境中执行一个或多个任务。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1