对复制型数据库的访问进行负载平衡制造技术

技术编号:24763985 阅读:33 留言:0更新日期:2020-07-04 11:05
本发明专利技术涉及对复制型数据库的访问进行负载平衡。具体地,提供了允许用户定义全局服务的技术,其中全局服务跨多个复制型数据库提供。数据库客户端连接到全局服务并使用该全局服务,就像它们当前在单个数据库上使用一般服务一样。在接收到连接请求时,被统称为全局数据服务框架(GDS框架)的一组组件自动地选择连接客户端的最佳数据库服务器实例。一旦那些连接被建立,客户端就至少部分地基于由GDS框架发送给客户端的建议消息确定向它们连接到的那些数据库服务器实例中的哪个数据库服务器实例发送请求。

Load balance access to replicated databases

【技术实现步骤摘要】
对复制型数据库的访问进行负载平衡本申请是申请日为2013年6月24日、题为“对复制型数据库的访问进行负载平衡”的专利技术专利申请201380057923.4的分案申请。
本专利技术设计跨管理分布式副本的系统提供服务,并且更具体地,涉及用于管理到这些系统的连接和这些系统中的负载平衡的全局数据服务框架,以及涉及跨这些副本管理服务的故障转移。
技术介绍
由于各种原因,许多商业维护相同数据的多个拷贝。例如,国际化公司可能跨位于世界各地的许多数据库复制关键数据。维护相同数据的多个副本的原因包括,但不限于:·商业连续性和灾难恢复;·为本地客户的性能优化;·内容本地化和高速缓存;·遵守当地法律;及·集成通过并购获得的数据中心。虽然维护相同数据的若干个副本可以提供多种好处,但是如果不能有效地管理,这也会成为麻烦。因此,已经开发了提供“数据库服务”并允许跨属于同一集群网格的数据库服务器实例进行服务级别工作负载管理的数据库系统。遗憾的是,跨属于集群网格的数据库服务器实例管理工作负载没有考虑在那个网格之外维护的潜在的大量副本。分布式环境通常比集群支持更高程度的异质性。例如,在分布式环境中,跨其维护副本的各种系统可以具有不同的硬件系统架构、不同的操作系统、甚至不同类型的数据库系统。与集群不同,分布式环境中的数据库不能访问用于保持状态的共享存储。因此,通过其可以高效地管理相同数据的多个分布式副本的机制将是所期望的。在本节中描述的方法是可以实行的方法,但不一定是先前已被构想或实行的方法。因此,除非另外指出,否则不应当假设本节中描述的任何方法仅仅因为它们被包括在本节中就有资格作为现有技术。附图说明附图中:图1是根据本专利技术实施例的由全局数据服务框架管理的分布式复制系统的框图;图2是根据本专利技术实施例的其中各种数据库系统被分成区域的图1的分布式复制系统的框图;图3是根据本专利技术实施例的说明如何响应连接请求的流程图;以及图4是其上可以实现本专利技术实施例的计算机系统的框图。具体实施方式在以下描述中,为了解释的目的,阐述了众多具体的细节,以便提供对本专利技术的透彻理解。但是,很显然,也可以在没有这些具体细节的情况下实践本专利技术。在其它情况下,众所周知的结构和设备以框图形式示出,以避免不必要地混淆本专利技术。总体概述本文描述的技术允许用户定义跨多个复制型数据库提供的全局服务。数据库客户端连接到全局服务并使用该全局服务,就像它们当前在单个数据库上使用一般服务那样。在接收到连接请求时,在本文被统称为全局数据服务框架(GDS框架)的一组组件自动地选择连接客户端的最佳数据库服务器实例。一旦那些连接被建立,客户端就至少部分地基于由GDS框架发送给客户端的建议消息确定向它们连接到的那些数据库服务器实例中的哪个数据库服务器实例发送请求。根据一种实施例,GDS框架基于从数据库自身推送的信息生成负载/性能信息。这与必须查看外部可测量行为的外部箱不同。因此,不是客户端通过查看数据库的外部行为试图推断它们应该做什么,而是数据库通过GDS框架告诉客户端它们应该做什么。因此,GDS可以是更主动和预测性的。例如,如果数据库将要达到过载、将要启动大的批处理作业、或者如果数据库将要经历计划中的关闭,则GSM可以建议客户端将工作从数据库中移出。在一种实现中,GDS框架提供了单一、中央的工具来添加、去除、修改和重新定位全局服务并且查看它们在特定实例上的状态。该工具也可以用于配置GDS框架和管理其组件。很明显,GDS框架可以利用异构数据库环境来实现。例如,由GDS框架使用的数据库集合(本文统称为“数据库云”)可以包括通过任何类型的复制技术链接在一起的来自任何数量的供应商的集群数据库和来自任何数量的供应商的单个实例数据库。此外,可以跨在不同硬件/软件平台上运行的数据库建立GDS框架。根据一种实施例,虽然GSM提供了负载平衡/故障转移功能,但是该GSM只在连接建立期间和在告诉客户端连接池具有的连接的相对“适合度”时才参与其中。在这种实施例中,GSM不在请求路径中,因此每次客户端-服务器的往返(SQL调用)并不具有额外的一跳(hop)。示例性分布式复制系统参考图1,它是分布式复制系统的框图。具体而言,图1说明了包括四个数据库系统130、131、132和134的数据库云。数据库系统130是集群的数据库系统,其中多个数据库实例102、104和106访问同一共享的存储122。另一方面,数据库系统131、133和134是分别包括数据库服务器实例107、108和110的单实例数据库系统。数据库服务器实例107管理存储123上的数据。数据库服务器实例108管理存储124上的数据。数据库服务器实例110管理存储126上的数据。在示出的实施例中,各种数据集在数据库系统130中被复制。具体而言,数据集A的副本由所有四个系统130、131、132和134进行管理。数据集B的副本由系统130、131和132进行管理。数据集C的副本由系统132和134进行管理。最后,数据集D由系统130唯一地进行管理。因为数据库服务器实例102、104和106属于同一集群,因此所有的数据库服务实例102、104和106都能够直接访问在存储122上存储的数据集A、B和D的副本。但是,数据库服务器实例102、104和106不能直接访问由数据库服务器实例107、108和110管理的数据,因为数据库服务器实例107、108和110不属于系统130的集群。类似地,数据库服务器实例107只能直接访问系统131中的副本。数据库服务器实例108只能直接访问系统132中的副本。数据库服务器实例110只能直接访问系统134中的副本。在示出的实施例中,五个客户端152、154、156、158和160都与系统130相关联。客户端160还与系统131相关联,其说明客户端和系统之间不必是一对一的关系。系统132与一个客户端162相关联,并且系统134与两个客户端164和166相关联。如将在以下更详细描述的,不是向与它们相关联的系统内的数据库服务器实例直接发连接请求,而是客户端配置为向全局数据服务框架100发连接请求。GDS框架100又确定与哪个系统中的哪个数据库服务器实例连接每个客户端。此外,GDS框架100向客户端发送建议消息,以向客户端指示客户端应该将用于任何给定全局服务的请求提交给哪个数据库服务器实例。例如,在一种实施例中,GDS框架100发送建议消息,该建议消息包含指定用于特定全局服务的要发送到特定数据库服务器实例的请求比例的百分比集合。这种建议消息可以以规则的时间间隔和/或响应于要求客户端请求要被适当地重新分布的实例负载变化而产生。随着时间的推移,用于给定服务的那些百分比会基于各种因素改变,诸如每个系统当前正经受的工作负载。响应于这种改变,GDS框架100将改变在发送给客户端的建议消息中的为该服务推荐的那个或那些数据库服务器实例和/或百分比。很明显,系统13本文档来自技高网...

【技术保护点】
1.一种方法,包括:/n将一组全局服务管理器分组到多个区域中;/n其中,所述多个区域包括第一区域和第二区域;/n其中,所述第一区域包括来自所述一组全局服务管理器中的第一组一个或多个全局服务管理器,并且所述第二区域包括来自所述一组全局服务管理器中的第二组一个或多个全局服务管理器;/n其中,所述第一组一个或多个全局服务管理器处理来自所述第一区域本地的客户端的服务请求,并且所述第二组一个或多个全局服务管理器处理来自所述第二区域本地的客户端的服务请求;/n将所述第二区域建立为用于所述第一区域的伙伴区域;/n确定第一组一个或多个全局服务管理器不再处于工作状态;并且/n响应于确定所述第一组一个或多个全局服务管理器不再处于工作状态,使用来自所述第二组一个或多个全局服务管理器中的至少一个全局服务管理器来处理来自所述第一区域本地的客户端的服务请求。/n

【技术特征摘要】
20121005 US 13/645,8191.一种方法,包括:
将一组全局服务管理器分组到多个区域中;
其中,所述多个区域包括第一区域和第二区域;
其中,所述第一区域包括来自所述一组全局服务管理器中的第一组一个或多个全局服务管理器,并且所述第二区域包括来自所述一组全局服务管理器中的第二组一个或多个全局服务管理器;
其中,所述第一组一个或多个全局服务管理器处理来自所述第一区域本地的客户端的服务请求,并且所述第二组一个或多个全局服务管理器处理来自所述第二区域本地的客户端的服务请求;
将所述第二区域建立为用于所述第一区域的伙伴区域;
确定第一组一个或多个全局服务管理器不再处于工作状态;并且
响应于确定所述第一组一个或多个全局服务管理器不再处于工作状态,使用来自所述第二组一个或多个全局服务管理器中的至少一个全局服务管理器来处理来自所述第一区域本地的客户端的服务请求。


2.如权利要求1所述的方法,其中,在所述第一组一个或多个全局服务管理器不再处于工作状态之后,来自所述第二组一个或多个全局服务管理器中的所述至少一个全局服务管理器充当用于所述第一区域的监听者,同时继续充当用于所述第二区域的监听者。


3.如权利要求1所述的方法,
其中,来自所述第二组一个或多个全局服务管理器中的所述至少一个全局服务管理器使得从所述第一区域本地的客户端接收到的连接请求被转发到位于所述第一区域中的数据库服务器实例;并且
其中,来自所述第二组一个或多个全局服务管理器中的所述至少一个全局服务管理器使得从所述第二区域本地的客户端接收到的连接请求被转发到位于所述第二区域中的数据库服务器实例。


4.如权利要求1所述的方法,还包括:
在来自所述第二组一个或多个全局服务管理器中的所述至少一个全局服务管理器处,接收来自所述第一区域本地的客户端的连接请求;
响应于接收到所述连接请求,从一组数据库服务器实例中选择至少一个数据库服务器实例;并且
其中,所述选择至少部分地基于确定该客户端位于所述第一区域本地以及一个或多个其他选择标准。


5.如权利要求1所述的方法,其中,在所述第一组一个或多个全局服务管理器不再处于工作状态时,来自所述第二组一个或多个全局服务管理器中的所述至少一个全局服务管理器为所述第一区域生成事件。


6.如权利要求1所述的方法,其中,来自所述第二组一个或多个全局服务管理器中的所述至少一个全局服务管理器为所述第一区域本地的客户端计算度量,并且向所述第一区域本地的所述客户端发布所述度量。


7.一种方法,包括:
接收用于分布式复制环境内的特定服务的一组一个或多个参数值;
其中,所述分布式复制环境包括多个数据库系统,所述多个数据库系统中的每个数据库系统维护与所述特定服务相关联的数据集的单独拷贝;以及
基于用于所述特定服务的所述一组一个或多个参数值,执行以下各项中的至少一者:
确定客户端是否能够被连接到不位于该客户端本地的区域中的数据库服务器实例;
确定所述特定服务是否能够从第一数据库服务器实例故障转移到位于与所述第一数据库服务器实例不同的区域中的第二数据库服务器实例;或者
确定数据库服务器实例的复制滞后是否满足阈值。


8.如权利要求7所述的方法,其中,所述方法包括确定客户端是否能够被连接到不位于该客户端本地的区域中的数据库服务器实例。


9.如权利要求8所述的方法,
其中,所述一组一个或多个参数值包括本地性参数值,所述本地性参数值指示用于对客户端连接请求进行路由的位置限制;并且
其中,确定客户端是否能够被连接到不位于该客户端本地的区域中的数据库服务器实例包括:确定所述本地性参数值是否将用于该客户端的连接限制到属于该客户端本地的区域的数据库服务器实例。


10.如权利要求7所述的方法,其中,所述方法包括确定所述特定服务是否能够从所述第一数据库服务器实例故障转移到位于与所述第一数据库服务器实例不同的区域中的所述第二数据库服务器实例。


11.如权利要求10所述的方法,
其中,所述一组一个或多个参数值包括指示允许区域间故障转移的参数值;并且
其中,确定所述特定服务是否能够从所述第一数据库服务器实例故障转移到位于与所述第一数据库服务器实例不同的区域中的所述第二数据库服务器实例包括:确定所述特定服务在客户端本地的区域中是不可用的。


12.如权利要求7所述的方法,其中,所述方法包括确定数据库服务器实例的复制滞后是否满足阈值。


13.如权利要求12所述的方法,
其中,所述一组一个或多个参数值包括指示复制滞后的最大可接受阈值的参数值;并且
所述方法还包括:响应于确定所述数据库服务器实例的复制滞后超出所述最大可接受阈值,将一个或多个客户端路由到复制滞后满足所述最大可接受阈值的不同数据库服务器实例。


14.一个或多个存储指令的非暂时性存储介质,所述指令在由一个或多个计算设备执行时,使得执行以下操作:
将一组全局服务管理器分组到多个区域中;
其中,所述多个区域包括第一区域和第二区域;
其中,所述第一区域包括来自所述一组全局服务管理器中的第一组一个或多个全局服务管理器,并且所述第二区域包括来自所述一组全局服务管理器中的第二组一个或多个全局服务管理器;
其中,所述第一组一个或多个全局服务管理器处理来...

【专利技术属性】
技术研发人员:胡维民L·切达姆巴瑞恩M·迪尔曼F·A·坎B·马瑟尔K·S·尼尔L·诺瓦克K·C·帕泰尔S·拉马萨伯雷马尼安M·J·斯泰沃特H·苏恩
申请(专利权)人:甲骨文国际公司
类型:发明
国别省市:美国;US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1