一种数据库扩展系统、设备和用于扩展数据库的方法与流程

文档序号:11199220阅读:255来源:国知局
一种数据库扩展系统、设备和用于扩展数据库的方法与流程
本申请涉及计算机
技术领域
,尤其涉及数据库扩展系统、设备以及用于扩展数据库的方法。
背景技术
:在当前的互联网应用中,由于业务飞速发展及用户数量激增等因素需要不断地对数据库进行扩容。然而,对数据库扩容不可避免地导致应用的修改,甚至有时需要修改数据架构。由于需要修改应用程序,因而数据库扩容的难度很大、所需时间很长且扩容成本高。在现有技术中,为了避免数据库扩容可能导致的上述问题,通常在项目初期会预留大量的数据服务器。然而,这会导致资源的严重浪费。技术实现要素:本申请的目的在于提供一种数据库扩展系统、设备和用于扩展数据库的方法,来解决
背景技术
部分提出的技术问题。在本申请的一个方面,提供了一种用于扩展数据库的方法,所述方法包括:接收指示改变虚拟数据库与数据库之间的映射关系的变更信息;基于所述变更信息重新设置所述映射关系;接收数据库访问请求并对所述数据库访问请求进行解析,以获得目标虚拟数据库的信息;基于重新设置的映射关系获取与对应于所述目标虚拟数据库的目标数据库相关的信息;将所述数据库访问请求传递至所述目标数据库;以及从所述目标数据库获取对应于所述数据库访问请求的数据,其中,所述目标虚拟库为所述数据库访问请求要访问的虚拟数据库。可选地,所述基于重新设置的映射关系获取与对应于所述目标虚拟数据库的目标数据库相关的信息,包括获取所述目标数据库的数据 库连接池信息。可选地,所述将所述数据库访问请求传递至所述目标数据库,包括通过java数据库连接jdbc或开放数据库互连odbc将所述数据库访问请求传递至所述目标数据库。可选地,所述变更信息包含所述目标虚拟据库的标识以及所述目标数据库的库名、ip地址或连接池配置信息。在本申请的另一方面,提供了一种数据库扩展设备,所述数据库扩展设备包括:通信模块,被配置成接收指示改变虚拟数据库与数据库之间的映射关系的变更信息;映射管理模块,被配置成基于所述变更信息重新设置所述映射关系;请求解析模块,被配置接收数据库访问请求并对所述数据库访问请求进行解析,以获得目标虚拟数据库的信息,并且基于重新设置的映射关系从所述映射管理模块获取与对应于所述目标虚拟数据库的目标数据库相关的信息;数据库访问模块,被配置成将所述数据库访问请求传递至所述目标数据库,并且从所述目标数据库获取对应于所述数据库访问请求的数据,其中,所述目标虚拟库为所述数据库访问请求要访问的虚拟数据库。可选地,所述请求解析模块所获取的与对应于所述目标虚拟数据库的目标数据库相关的信息包括所述目标数据库的数据库连接池信息。可选地,所述数据库访问模块进一步被配置成:通过java数据库连接jdbc或开放数据库互连odbc将所述数据库访问请求传递至所述目标数据库。可选地,所述变更信息包含所述目标虚拟数据库的标识以及所述目标数据库的库名、ip地址或连接池配置信息。可选地,所述映射管理模块还被配置成查询所述映射关系。在本申请的又一方面,提供了一种数据库扩展系统,所述数据库扩展系统包括:如上所述的数据库扩展设备;以及控制模块,被配置成接收所述变更信息,并且将所述变更信息发送至与所述变更信息中所指定的虚拟数据库对应的数据库扩展设备。根据本申请的数据库扩展系统、设备和方法通过将虚拟数据库映射到扩容后的数据库上而实现了数据库的弹性扩容,避免了传统数据库扩容成本高、风险高和时间长的缺点,并且能够最大化地利用数据库服务器资源。附图说明通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:图1是本申请可以应用于其中的示例性系统架构图;图2示出了根据本申请实施例的数据库扩展设备的示意图;图3示出了根据本申请实施例的用于扩展数据库的方法的流程图;图4示出了根据本申请实施例的用于扩展数据库的方法的时序图;图5是适于用来实现本申请实施例的数据库扩展系统的计算机系统的结构示意图。具体实施方式下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。图1示出了可以应用本申请的数据库扩展系统、设备或方法的实施例的示例性系统架构100。如图1所示,系统架构100可以包括控制服务器101,应用服务器1021~102n,数据库服务器1031~103n和网络104~105。网络104~105分别用以在控制服务器101与应用服务器1021~102n以及应用服务器 1021~102n与数据库服务器1031~103n之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。控制服务器101设置有无限个虚拟数据库并且用于管理所有虚拟数据库到数据库服务器1031~103n中的数据库的映射关系,其中,每个虚拟数据库对应于一个应用服务器,即每个应用服务器所发出的数据库访问请求都被传递至与其相对应的一个虚拟数据库。控制服务器101还配置有控制模块。控制模块被配置成接收数据库管理人员输入的操作信息(诸如为用于变更虚拟数据库与数据库之间的映射关系的信息),并且基于将该操作信息中包含的虚拟数据库的标识信息将该操作信息传送至对应于该虚拟数据库的应用服务器。应用服务器1021~102n上可以安装有各种通讯客户端应用,例如网页浏览器应用、购物类应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。在应用服务器1021~102n上执行上述应用时,可以通过网络105访问作为应用服务器1021~102n的数据源的相应数据库服务器1031~103n,并从数据库服务器1031~103n接收作为上述应用的执行结果的数据。控制服务器101、应用服务器1021~102n以及数据库服务器1031~103n可以是支持数据库查询的各种电子设备,包括但不限于台式计算机、平板电脑、膝上型便携计算机等等。需要说明的是,本申请实施例所提供的用于扩展数据库的方法一般由应用服务器1021~102n执行,相应地,数据库扩展设备一般设置于应用服务器1021~102n中。应该理解,图1中的应用服务器、网络和数据库服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的应用服务器、网络和数据库服务器。如上所述,在应用服务器上执行应用时需要从作为其数据源的相应数据库服务器读取数据,为此需要建立应用服务器与数据库服务器之间的数据连接。在本申请中,为了使得能够在不影响应用服务器运行的情况下实现数据库扩容,在各应用服务器102中均配置有数据库 扩展设备200。作为示例,以下参照图2说明配置在应用服务器1021中的根据本申请实施例的数据库扩展设备200。如图2所示,数据库扩展设备200包括通信模块201、映射管理模块202、请求解析模块203以及数据库访问模块204。通信模块201用于与控制服务器101通信,以不断地从控制服务器101同步对应于该通信模块所在的应用服务器的虚拟数据库到数据库的映射关系。在接收到指示改变该虚拟数据库到数据库的映射关系的变更信息时,通信模块201将该变更信息发送至映射管理模块202。可选地,变更信息可以包含该虚拟数据库的标识以及与其相对应的数据库的库名、ip地址或连接池配置信息。映射管理模块202用于管理对应于其所在的应用服务器的虚拟数据库到数据库的映射关系。在接收到来通信模块201的变更信息时,映射管理模块202基于该变更信息重新设置该虚拟数据库到数据库的映射关系,并存储重置后的映射关系。可选地,映射管理模块202还可以用于基于特定查询条件来查询其上所存储的虚拟数据库与数据库之间的映射关系。请求解析模块203被配置成接收其所在的应用服务器的所有数据库访问请求,并对所接收到的数据库访问请求进行解析。作为解析结果,通常包括该请求所要访问的虚拟数据库(以下称作目标虚拟数据库)的信息(诸如虚拟数据库的标识)。此外,请求解析模块203还向数据库映射管理模块202请求对应于该虚拟数据库的数据库(以下称作目标数据库)的相关信息,并将所接收到的数据库访问请求和所获得的目标数据库的相关信息提交给数据库访问模块204。在本申请的一个实施例中,请求解析模块203所获取的目标数据库的相关信息为目标数据库的数据库连接池信息,诸如最大连接数(maxconn),最大等待时间(maxwaittime),最小连接数(minconn)等。数据库访问模块204将来自请求解析模块203的数据库访问请求 传递至目标数据库,并且从目标数据库获取对应于该数据库访问请求的数据。可选地,数据库访问模块204可以通过诸如java数据库连接jdbc或开放数据库互连odbc的数据库连接向目标数据库发送数据库访问请求。以下,参照图3描述根据本申请的用于扩展数据库的方法。如图3所示,在步骤301中,接收指示改变虚拟数据库与数据库之间的映射关系的变更信息。在该步骤中,通过通信模块201接收数据库管理人员在控制服务器101上所输入的变更信息。在本申请的一个实施例中,该变更信息可以包含将对其进行映射关系变更的虚拟数据库的标识以及与该虚拟数据库相对应的数据库的库名、ip地址或连接池配置信息。在步骤302中,基于所接收到的变更信息重新设置虚拟数据库与数据库之间的映射关系。假定当前虚拟数据库与数据库之间的映射关系如表1所示,其中,虚拟数据库v1~v3分别对应于应用服务器1021~1023,数据库d1~d3为数据库服务器1031中的数据库。虚拟数据库数据库v1d1v2d2v3d3表1如果变更信息指示将虚拟数据库v1~v3映射至数据库服务器1031中的数据库d4~d6,在这种情况下,应用服务器1021中数据库扩展设备200的映射管理模块在接收到该变更信息时,将虚拟数据库v1重新映射至数据库d4。类似地,应用服务器1022中数据库扩展设备200的映射管理模块在接收到该变更信息时,将虚拟数据库v2重新映射至数据库d5,并且应用服务器1023中数据库扩展设备200的映射管理模块在接收到该变更信息时,将虚拟数据库v3重新映射至数据库d6。 因此,重置后的映射关系如表2所示。虚拟数据库数据库v1d4v2d5v3d6表2在步骤303中,接收数据库访问请求并对所接收到的数据库访问请求进行解析,以获得关于该数据库访问请求中所包含的虚拟数据库的信息。在上述步骤302中重置虚拟数据库与数据库之间的映射关系之后,如果请求解析模块203接收到其所在的应用服务器的数据库访问请求,则解析该数据库访问请求中所包含的虚拟数据库(以下称作目标虚拟数据库)的信息,例如虚拟数据库的标识。在步骤304中,基于重新设置后的映射关系获取与对应于目标虚拟数据库的数据库(以下称作目标数据库)相关的信息。请求解析模块203基于所获得的目标虚拟数据库的信息,向映射模块202请求目标数据库的信息。例如,在如上的示例中,假如在重置映射关系后接收到应用服务器1021的数据库访问请求,则应用服务器1021的数据库扩展设备200中的请求解析模块203通过对该数据库访问请求进行解析得知目标虚拟数据库为v1,进而从表2中得知目标数据库为d4。因此,在这种情况下,请求解析模块203可以获得与数据库d4相关的信息。在本申请的一个实施例中,目标数据库的相关信息可以为目标数据库的数据库连接池的配置信息,诸如最大连接数(maxconn),最大等待时间(maxwaittime),最小连接数(minconn)等。然后,请求解析模块203将所获得的目标数据库的信息以及所接收到的数据库访问请求发送至数据库访问模块204。在步骤305中,将所接收到的数据库访问请求传递至目标数据库。数据库访问模块204通过java数据库连接jdbc或开放数据库互连odbc将所接收到的数据库访问请求传递至目标数据库。在步骤306中,从目标数据库获取对应于该数据库访问请求的数据。数据库访问模块204通过目标数据库的连接池从目标数据库接收数据库访问的结果。以下参照图4描述根据本申请的用于扩展数据库的方法的时序图。如图4所示,在步骤401中,通过控制服务器101的控制模块接收数据库管理人员所输入的用以改变虚拟数据库与数据库之间的映射关系的变更信息。在步骤402中,控制模块将所接收到的变更信息发送至与该变更信息中所指定的虚拟数据库对应的应用服务器中的设备200的通信模块201。在步骤403中,通信模块201将该变更信息传递至映射管理模块202。在步骤404中,映射管理模块202基于所接收到的变更信息重新设置虚拟数据库与数据库之间的映射关系。在步骤405中,通过请求解析模块203接收数据库访问请求并对该数据库访问请求进行解析,以获得目标虚拟数据库的信息,并且基于重新设置后的映射关系获取与目标数据库相关的信息。在步骤406中,请求解析模块203将所接收到的数据库访问请求和目标数据库信息传递至数据库访问模块204。在步骤407中,数据库访问模块204将访问请求发送至目标数据库,并从目标数据库获取对应于该数据库访问请求的数据。根据本申请的数据库扩展系统、设备和方法通过将虚拟数据库映射到扩容后的数据库上而实现了数据库的弹性扩容,避免了传统数据库扩容成本高、风险高和时间长的缺点,并且能够最大化地利用数据库服务器资源。下面参考图5,其示出了适于用来实现本申请实施例的服务器的计算机系统500的结构示意图。如图5所示,计算机系统500包括中央处理单元(cpu)501,其 可以根据存储在只读存储器(rom)502中的程序或者从存储部分508加载到随机访问存储器(ram)503中的程序而执行各种适当的动作和处理。在ram503中,还存储有系统500操作所需的各种程序和数据。cpu501、rom502以及ram503通过总线504彼此相连。输入/输出(i/o)接口505也连接至总线504。以下部件连接至i/o接口505:包括键盘、鼠标等的输入部分506;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分507;包括硬盘等的存储部分508;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分509。通信部分509经由诸如因特网的网络执行通信处理。驱动器510也根据需要连接至i/o接口505。可拆卸介质511,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器510上,以便于从其上读出的计算机程序根据需要被安装入存储部分508。特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,所述计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分509从网络上被下载和安装,和/或从可拆卸介质511被安装。在该计算机程序被中央处理单元(cpu)501执行时,执行本申请的方法中限定的上述功能。描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包括通信模块、映射管理模块、请求解析模块和数据库访问模块等,其中,这些模块的名称在某种情况下并不构成对该单元本身的限定。作为另一方面,本申请还提供了一种非易失性计算机存储介质,该非易失性计算机存储介质可以是上述实施例中所述装置中所包含的非易失性计算机存储介质;也可以是单独存在,未装配入终端中的非易失性计算机存储介质。上述非易失性计算机存储介质存储有一个或者多个程序,当所述一个或者多个程序被一个设备执行时,使得所述 设备:接收指示改变虚拟数据库与数据库之间的映射关系的变更信息;基于所述变更信息重新设置所述映射关系;接收数据库访问请求并对所述数据库访问请求进行解析,以获得目标虚拟数据库的信息;基于重新设置的映射关系获取与对应于所述目标虚拟数据库的目标数据库相关的信息;将所述数据库访问请求传递至所述目标数据库;以及从所述目标数据库获取对应于所述数据库访问请求的数据,其中,所述目标虚拟库为所述数据库访问请求要访问的虚拟数据库。以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1