数据库实例访问方法、装置、系统、存储介质和设备与流程

文档序号:14559935阅读:122来源:国知局
数据库实例访问方法、装置、系统、存储介质和设备与流程

本发明涉及计算机技术领域,特别是涉及一种数据库实例访问方法、装置、系统、存储介质和设备。



背景技术:

随着计算机技术的快速发展,数据规模飞速增长。越来越多的用户选择通过数据库服务器提供的数据服务进行数据处理。目前,数据库服务器上的数据库实例通过连接地址的方式为用户提供数据服务。

然而传统的这种数据库访问形式,各数据库实例对外提供的虚拟连接地址仅允许用户从外部单独地对各数据库实例分别连接访问,从而导致不同的数据库实例之间无法相互访问的问题。



技术实现要素:

基于此,有必要针对目前不同的数据库实例间无法进行相互访问的问题,提供一种数据库实例访问方法、装置、系统、存储介质和设备。

一种数据库实例访问方法,包括:

获取数据库实例访问请求;

从所述数据库实例访问请求中提取虚拟连接地址;所述虚拟连接地址与所述数据库实例访问请求所请求访问的目标数据库实例对应;

获取与所述虚拟连接地址存在映射关系的实体连接地址;

确定所述目标数据库实例所属的数据库类型;

根据所述实体连接地址,通过与所述数据库类型匹配的数据库插件访问所述目标数据库实例。

一种数据库实例访问装置,包括:

第一获取模块,用于获取数据库实例访问请求;

提取模块,用于从所述数据库实例访问请求中提取虚拟连接地址;所述虚拟连接地址与所述数据库实例访问请求所请求访问的目标数据库实例对应;

第二获取模块,用于获取与所述虚拟连接地址存在映射关系的实体连接地址;

确定模块,用于确定所述目标数据库实例所属的数据库类型;

访问模块,用于根据所述实体连接地址,通过与所述数据库类型匹配的数据库插件访问所述目标数据库实例。

一种数据库实例访问系统,包括节点服务器和管理服务器,其中:

所述节点服务器用于获取数据库实例访问请求;从所述数据库实例访问请求中提取虚拟连接地址;所述虚拟连接地址与所述数据库实例访问请求所请求访问的目标数据库实例对应;

所述节点服务器还用于向所述管理服务器发送源主机地址和虚拟连接地址共同对应的地址映射请求;所述源主机地址与源数据库实例对应;所述源数据库实例运行于所述节点服务器;

所述管理服务器用于将所述源主机地址与所述虚拟连接地址共同映射为实体连接地址;根据所述地址映射请求向所述节点服务器反馈所述实体连接地址;

所述节点服务器还用于确定所述目标数据库实例所属的数据库类型;根据所述实体连接地址,通过与所述数据库类型匹配的数据库插件访问所述目标数据库实例。

一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行以下步骤:

获取数据库实例访问请求;

从所述数据库实例访问请求中提取虚拟连接地址;所述虚拟连接地址与所述数据库实例访问请求所请求访问的目标数据库实例对应;

获取与所述虚拟连接地址存在映射关系的实体连接地址;

确定所述目标数据库实例所属的数据库类型;

根据所述实体连接地址,通过与所述数据库类型匹配的数据库插件访问所述目标数据库实例。

一种计算机设备,包括存储器和处理器,所述存储器中储存有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行以下步骤:

获取数据库实例访问请求;

从所述数据库实例访问请求中提取虚拟连接地址;所述虚拟连接地址与所述数据库实例访问请求所请求访问的目标数据库实例对应;

获取与所述虚拟连接地址存在映射关系的实体连接地址;

确定所述目标数据库实例所属的数据库类型;

根据所述实体连接地址,通过与所述数据库类型匹配的数据库插件访问所述目标数据库实例。

上述数据库实例访问方法、装置、系统、存储介质和计算机设备,在本地获取到数据数据库实例访问请求时,即可直接提取意图访问的目标数据库实例所对应的虚拟连接地址,进而获取到与该虚拟连接地址存在映射关系的、可以在数据库实例间互相访问的实体连接地址,再确定目标数据库实例所属的数据库类型,从而即可实现根据该实体连接地址,通过与该数据库类型匹配的数据库插件访问目标数据库实例提供的数据服务,实现了不同的数据库实例间的访问。

一种数据库实例管理方法,包括:

接收源主机地址和虚拟连接地址共同对应的地址映射请求;所述源主机地址与源数据库实例对应;所述虚拟连接地址与目标数据库实例对应;

将所述源主机地址与所述虚拟连接地址共同映射为实体连接地址;

根据所述地址映射请求反馈所述实体连接地址;所述实体连接地址用于指示所述源数据库实例根据所述实体连接地址访问所述目标数据库实例。

一种数据库实例管理装置,包括:

接收模块,用于接收源主机地址和虚拟连接地址共同对应的地址映射请求;所述源主机地址与源数据库实例对应;所述虚拟连接地址与目标数据库实例对应;

映射模块,用于将所述源主机地址与所述虚拟连接地址共同映射为实体连接地址;

反馈模块,用于根据所述地址映射请求反馈所述实体连接地址;所述实体连接地址用于指示所述源数据库实例根据所述实体连接地址访问所述目标数据库实例。

一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行以下步骤:

接收源主机地址和虚拟连接地址共同对应的地址映射请求;所述源主机地址与源数据库实例对应;所述虚拟连接地址与目标数据库实例对应;

将所述源主机地址与所述虚拟连接地址共同映射为实体连接地址;

根据所述地址映射请求反馈所述实体连接地址;所述实体连接地址用于指示所述源数据库实例根据所述实体连接地址访问所述目标数据库实例。

一种计算机设备,包括存储器和处理器,所述存储器中储存有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行以下步骤:

接收源主机地址和虚拟连接地址共同对应的地址映射请求;所述源主机地址与源数据库实例对应;所述虚拟连接地址与目标数据库实例对应;

将所述源主机地址与所述虚拟连接地址共同映射为实体连接地址;

根据所述地址映射请求反馈所述实体连接地址;所述实体连接地址用于指示所述源数据库实例根据所述实体连接地址访问所述目标数据库实例。

上述数据库实例管理方法、装置、存储介质和计算机设备,在接收到地址映射请求后,即可获取与该地址映射请求对应的源主机地址和虚拟连接地址,进而将源主机地址与虚拟连接地址共同映射为可以在数据库实例间互相访问的实体连接地址,源数据库实例从而可根据该实体连接地址访问目标数据库实例提供的数据服务,实现了不同的数据库实例间的访问。

附图说明

图1为一个实施例中数据库实例访问方法的应用环境图;

图2为一个实施例中数据库实例访问方法的流程示意图;

图3为一个实施例中数据库实例访问连接建立的原理示意图;

图4为一个实施例中更新连接参数的时序图;

图5为一个实施例中数据库实例管理方法的流程示意图;

图6为一个实施例中数据库实例访问的原理示意图;

图7为一个实施例中数据库实例访问连接更新的原理示意图;

图8为一个实施例中删除连接参数的时序图;

图9为一个实施例中数据库实例访问装置的模块结构图;

图10为一个实施例中数据库实例管理装置的模块结构图;

图11为另一个实施例中数据库实例管理装置的模块结构图;

图12为一个实施例中计算机设备的内部结构图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

图1为一个实施例中数据库实例访问方法的应用环境图。参照图1,该数据库实例访问方法应用于数据库实例访问系统。该数据库实例访问系统包括用户终端110、节点服务器120、管理服务器130和网关设备140。其中,节点服务器120至少包括第一节点服务器121和第二节点服务器122。第一节点服务器121上运行有源数据库实例,第二节点服务器122上运行有目标数据库实例。第一节点服务器121上的源数据库实例,通过本发明提供的数据库实例访问方法访问第二节点服务器122上的目标数据库实例。用户终端110通过网络与第一节点服务器121连接,第一节点服务器121通过网络与管理服务器130通过网络连接。第一节点服务器121和第二节点服务器122之间通过网关设备140连接。网关设备140具体可以是路由器或者交换机等。

本领域技术人员可以理解,节点服务器120和管理服务器130可以是位于云服务器网络环境。具体地,节点服务器120和管理服务器130位于云服务器网络环境中的公有云网络环境,也可以是位于云服务器网络环境中的私有云网络环境。第一节点服务器121和第二节点服务器122可以是位于同一云服务器网络环境,也可以是位于不同的云服务器网络环境。

图2为一个实施例中数据库实例访问方法的流程示意图。本实施例主要以该方法应用于上述图1中的第一节点服务器121来举例说明。参照图2,该数据库实例访问方法具体包括如下步骤:

s202,获取数据库实例访问请求。

其中,数据库实例访问请求是用于申请访问一个数据库实例的请求。数据库实例访问请求可以是用户终端申请访问一个数据库实例的请求,也可以是一个数据库实例申请访问另一个数据库实例的请求。数据库实例是数据库服务器为用户提供数据服务的实例。用户终端可通过数据库实例提供的数据服务操作数据库实例的内部数据。在一个实施例中,数据库实例具体可以是postgresol实例、mysql实例、mongo实例或者redis实例等。

在一个实施例中,用户终端可向云服务器网络环境中的管理服务器发起数据库实例申请请求,管理服务器在接收到该数据库实例申请请求,通知云服务器网络环境中的节点服务器进行数据库实例创建操作,从而在节点服务器上创建属于用户的数据库实例。管理服务器可再为该数据库实例分配虚拟连接地址,并将该虚拟连接地址返回至用户终端,从而用户终端可根据该虚拟连接地址访问属于自己的数据库实例。可以理解,用户终端可通过管理服务器在不同的节点服务器上创建不同的数据库实例,也可以同一节点服务器上创建不同的数据库实例。

具体地,用户终端可通过第一数据库实例的虚拟连接地址,访问位于云服务器网络环境中第一节点服务器上的第一数据库实例(源数据库实例)。用户终端可再通过第一数据库实例提供的数据库管理控制命令发起数据库实例访问请求,请求访问位于第二节点服务器上的第二数据库实例(目标数据库实例),第一节点服务器从而获取到数据库实例访问请求。

其中,云服务器网络环境中的第一节点服务器可以是实际存在的物理服务器,也可以是有物理服务器虚拟得到的虚拟节点服务器。

举例说明,用户终端可通过管理服务器在节点服务器a上创建postgresol实例,在节点服务器b上创建mysql实例,并获取用户访问该postgresol实例的虚拟连接地址a和访问该mysql实例的虚拟连接地址b。通常情况下,用户终端需通过虚拟连接地址a和虚拟连接地址b分别连接节点服务器a和节点服务器b,以分别访问postgresol实例和mysql实例。在本实施例中,用户终端先通过虚拟连接地址a访问postgresol实例,在访问postgresol实例时,通过postgresol实例访问mysql实例。

s204,从数据库实例访问请求中提取虚拟连接地址;虚拟连接地址与数据库实例访问请求所请求访问的目标数据库实例对应。

其中,连接地址是用于连接数据库实例的网络地址。连接地址可包括互联网协议地址(internetprotocoladdress,ip地址)和网络端口。虚拟连接地址是未分配至真实节点服务器的连接地址。实体连接地址是已分配至真实节点服务器的真实连接地址。

在云服务器网络环境中,提供数据服务的数据库服务器所对应的主机(节点服务器)可分别对应有实体连接地址和虚拟连接地址。理论上,用户终端通过这两个连接地址中的任意一个连接地址都可以连接到这台节点服务器,进而访问节点服务器上的数据库实例。而云服务器网络环境下的节点服务器间仅可通过实体连接地址进行相互访问。

可以理解,为了保证云服务器网络环境下的数据安全性,云服务提供方通常仅将虚拟连接地址提供给用户终端。也就是说,目前用户终端在访问云服务器网络环境下的数据库实例时,仅可通过虚拟连接地址实现分别单独访问不同的数据库实例。

具体地,数据库实例访问请求可携带连接参数。连接参数是表征意图实现连接的源数据库实例与目标数据库实例的数据。用户终端在发起数据库实例访问请求时,即可将意图访问的目标数据库实例的相关数据作为连接参数携带在数据库实例访问请求中。由于云服务提供方通常仅将虚拟连接地址提供给用户终端,那么连接参数可以是目标数据库实例对应的虚拟连接地址等。连接参数具体可以是目标数据库实例的ip地址以及网络端口号等。

s206,获取与虚拟连接地址存在映射关系的实体连接地址。

具体地,第一节点服务器,可查询事先建立的虚拟连接地址与实体连接地址的映射关系,将提取的虚拟连接地址与映射关系中的各虚拟连接地址进行对比,在查询到与提取的虚拟连接地址一致的虚拟连接地址时,获取查询到的虚拟连接地址映射至的实体连接地址,从而得到与提取的虚拟连接地址存在映射关系的实体连接地址。

这里事先建立的虚拟连接地址与实体连接地址的映射关系,可以是在当前时间之前不同数据库实例间互相访问时建立的映射关系。该映射关系通过管理服务器建立,映射关系在建立后可以存储在管理服务器上,也可以存储于独立于管理服务器的其他计算机设备上,以使节点服务器在需要查询映射关系的时候即可进行查询。在一个实施例中,映射关系可通过表格的方式存储为网络连接关系映射表。

s208,确定目标数据库实例所属的数据库类型。

其中,数据库类型是对数据库进行分类的依据。在本实施例中,数据库不同时即为属于不同的数据库类型。比如,postgresol实例、mysql实例、mongo实例或者redis实例即为各自属于不同的数据库类型。

具体地,数据库实例访问请求可指定请求类型。第一节点服务器可分析该数据库实例访问请求所指定的请求类型,得到用户终端意图访问的数据库实例所属的数据库类型。

s210,根据实体连接地址,通过与数据库类型匹配的数据库插件访问目标数据库实例。

其中,数据库插件是为数据库提供扩展功能的计算机程序。不同的数据库之间逻辑上是相互独立的,当某一数据库实例意图访问其他数据库进行跨库操作时,则需要通过数据库插件来实现跨库操作的扩展功能。

举例说明,对于postgresol实例,postgresol官方为其开发postgres_fdw模块,该postgres_fdw模块提供了外部数据封装器fdw,它可以被用来在postgresol实例内访问外部数据。对于属于不同数据库实例的外部数据可通过不同类型的外部数据封装器来实现,比如,mongo_fdw用于访问mongo实例,mysql_fdw用于访问mysql实例,以及redis_fdw用于访问redis实例等。

具体地,第一节点服务器在确定目标数据库实例所属的数据库类型,并获取到与目标数据库实例所对应的实体连接地址后,即可调用与数据库类型匹配的数据库插件根据该实体连接地址向目标数据库实例发起连接,以访问目标数据库实例。

上述数据库实例访问方法,在本地获取到数据数据库实例访问请求时,即可直接提取意图访问的目标数据库实例所对应的虚拟连接地址,进而获取到与该虚拟连接地址存在映射关系的、可以在数据库实例间互相访问的实体连接地址,再确定目标数据库实例所属的数据库类型,从而即可实现根据该实体连接地址,通过与该数据库类型匹配的数据库插件访问目标数据库实例提供的数据服务,实现了不同的数据库实例间的访问。

在一个实施例中,实体连接地址通过将本地主机地址与虚拟连接地址,按照与目标数据库实例所处网络环境相应的映射方式共同映射得到的。

可以理解,本发明实施例中提供的数据库访问方法应用于云服务器网络环境。云服务器网络环境是构建其他网络的基础网络环境。其他网络比如公有云网络或者私有云网络等。公有云网络是云服务提供方提供的对外云网络,公有云网络构建在云服务网络环境之上,公有云网络之间网络逻辑隔离。私有云网络为云服务提供方提供的一种自定义云网络,提供给云服务使用者自定义网络环境的能力,云服务使用者可以在私有云网络内部署云主机、负载均衡、数据库以及nosql快存储等云服务资源。私有云网络之间网络逻辑隔离。

举例说明,云服务器网络环境可以是腾讯云提供的一种即开即用、稳定可靠、可弹性伸缩的在线数据库服务(cdb,clouddatabase)所在的网络环境。腾讯云服务器(cvm,cloudvirtualmachine)是高性能高稳定的云虚拟机,用户可在cvm上创建属于自己的数据库实例。腾讯私有云网络(vpc,virtualprivatecloud)是可用户自定义的网络空间。

具体地,映射得到实体连接地址的步骤由管理服务器执行。管理服务器用于统一管理云服务器网络环境下的网络连接映射关系。

在一个实施例中,当目标数据库实例所处网络环境与源数据库实例所处网络环境为同一网络环境,也就是目标数据库实例所在的节点服务器与源数据库实例所在的节点服务器属于同一互联网数据中心(idc,internetdatacenter)时,源数据库实例与目标数据库实例之间可以直接通过主机物理地址进行连接访问。管理服务器可直接获取与虚拟连接地址对应的节点服务器的主机物理地址,将该主机物理地址反馈至第一节点服务器,第一节点服务器从而获取到与虚拟连接地址存在映射关系的实体连接地址。

在一个实施例中,当目标数据库实例所处运行于由物理服务器虚拟化得到的云虚拟服务器cvm,也就是目标数据库实例所在的节点服务器与源数据库实例所在的节点服务器属于同一云服务器网络环境时,管理服务器可确定与虚拟连接地址对应的节点服务器的主机参数(host参数),以及源数据库实例本机的主机参数,再根据当前云服务器网络环境中网关设备的路由策略形成由源数据库实例访问目标数据库实例访问路径,得到可访问目标数据库实例的实体连接地址,从而将虚拟连接地址映射到该实体连接地址上。其中,网关设备可包括路由器以及交换机等。网关设备的路由策略是在各网关设备之间添加路由路径的依据。

在一个实施例中,目标数据库实例所在的节点服务器与源数据库实例所在的节点服务器属于不同的互联网数据中心,也就是目标数据库实例所在的节点服务器与源数据库实例所在的节点服务器属于不同的云服务器网络环境时,管理服务器可通过确定与虚拟连接地址对应的数据库服务器的主机地址和/或源数据库实例本机的主机参数,再根据当前云服务器网络环境以及负载均衡系统中的网关设备的路由策略形成由源数据库实例访问目标数据库实例路由路径,得到可访问目标数据库实例的实体连接地址,从而将虚拟连接地址映射到该实体连接地址上。其中,负载均衡系统具体可以是tgw(tencentgateway)是一套实现多网统一接入、外网网络请求转发、支持自动负载均衡的系统。

上述实施例中,提供了对于不同网络环境下的目标数据库实例,映射得到真实可访问的连接地址的途径,实现了不同网络环境下的数据库实例间的相互访问。

在一个实施例中,该数据库访问方法还包括:当不存在与虚拟连接地址对应的映射关系时,获取本地主机地址;将本地主机地址与虚拟连接地址发送至管理服务器;接收管理服务器反馈的实体连接地址;反馈的实体连接地址,是管理服务器根据本地主机地址与虚拟连接地址共同确定的;新建虚拟连接地址对于反馈的实体连接地址的映射关系。

具体地,第一节点服务器在未查询到与虚拟连接地址对应的映射关系时,可获取本地主机地址,再将本地主机地址与虚拟连接地址发送至管理服务器。管理服务器在接收到该虚拟连接地址时,可根据该本地主机地址与虚拟连接地址共同确定可由源数据库实例访问目标数据库实例的实体连接地址。其中,实体连接地址也可以是管理服务器通过将本地主机地址与虚拟连接地址,按照与目标数据库实例所处网络环境相应的映射方式共同映射得到的。

其中,本地主机地址可以仅是源数据库实例所在节点服务器的主机物理地址;也可以是源数据库实例所在节点服务器的主机参数,该主机参数是反映主机的地址的数据,包括主机物理地址。

在本实施例中,在当前未查找到可直接访问目标数据库实例的连接地址时的解决途径,由服务器根据本地主机地址与虚拟连接地址生成可直接访问目标数据库实例的连接地址,从而实现了不同的数据库实例间的访问。

在一个实施例中,数据库实例访问请求通过代理插件拦截得到。代理插件安装于数据库实例中,用于拦截用户终端通过第一数据库实例提供的数据库管理控制命令发起创建外部服务器的请求,生成数据库实例访问请求。

举例说明,用户在访问postgresol实例时,可调用createserver命令创建server。这里的“createserver”是postgresol实例提供的数据库管理控制命令,用于定义一个新的外部服务器,定义该服务器的用户会成为拥有者。server即为创建的外部服务器,外部服务器通常包括外部数据包装器fdw用来访问一个外部数据源(目标数据库实例)所需的连接参数。

具体代码如下:

createserverforeign_server

foreigndatawrapperpostgres_fdw

options(host'192.83.123.89',port'5432',dbname'foreign_db');

在这个例子中,用户终端意图连接到一个位于主机192.83.123.89上并且监听5432端口的postgresql实例。该数据库实例名为foreign_db。

具体地,代理插件可通过数据库实例提供的拦截函数拦截用户终端发起的建立外部服务器的请求,生成数据库实例访问请求。比如:代理插件agent可通过postgresql的hook函数processutility_hook拦截用户创建server的请求,生成数据库实例访问请求。

进一步地,第一节点服务器在通过代理插件拦截生成数据库实例访问请求后,可提取该数据库实例访问请求定义的连接参数,从而获取到与目标数据库实例对应的虚拟连接地址。第一节点服务器可再通过代理插件查询网络连接映射表,得到与虚拟连接地址存在映射关系的实体连接地址。

在一个实施例中,当通过代理插件在网络连接映射表中未查询到与虚拟连接地址对应的映射关系时,将本地主机地址与虚拟连接地址发送至管理服务器;通过代理插件接收管理服务器反馈的实体连接地址;反馈的实体连接地址,是管理服务器根据本地主机地址与虚拟连接地址共同确定的;通过代理插件,在网络连接映射表中新建虚拟连接地址对于反馈的实体连接地址的映射关系。

具体地,第一节点服务器在通过代理插件未查询到在网络连接映射表中未查询到与虚拟连接地址对应的映射关系时,可将生成的数据库实例访问请求发送至管理服务器,管理服务器从数据库实例访问请求中获取目标数据库实例所对应的虚拟连接地址。管理服务器还可获取第一节点服务器对应的主机地址,将该主机地址与虚拟连接地址,按照与目标数据库实例所处网络环境相应的映射方式共同映射得到实体连接地址。

图3示出了一个实施例中数据库实例访问连接建立的原理示意图。参考图3,本实施例中,源数据库实例为postgresql实例。用户终端可在postgresql中调用createserver命令创建server,postgresql上安装的代理插件agent通过postgresql的hook函数processutility_hook拦截用户终端创建server的请求,分析请求类型和连接参数,然后将连接参数发送给管理服务器center。管理服务器可再根据连接参数中的虚拟连接地址,确定目标数据库实例所处网络环境,进而根据目标数据库实例所处网络环境分类创建网络映射,得到可供源数据库实例直接访问目标数据库实例的实体连接地址。

其中,当连接参数中的虚拟连接地址为私有云网络vpc的虚拟ip地址时,可确定目标数据库实例所处网络环境为内部idc(与源数据库实例所在服务器处于在同一网络)或者私有云网络vpc母机虚拟化出的云服务器cvm。当连接参数中的虚拟连接地址为外部网络的虚拟ip地址时,可确定目标数据库实例所处网络环境为外部idc(与源数据库实例所在服务器处于不同的云服务网络环境)。属于相同idc环境的数据库实例间可直接通过主机地址进行连接访问。对于母机虚拟化出的云服务器cvm可通过网关设备的路由策略建立虚拟专用网络(vpn,virtualprivatenetwork),从而建立源数据库实例与目标数据库实例间的网络连接。对于属于不同idc环境的数据库实例间(虚拟连接地址为外网ip地址)可通过tgw建立源数据库实例与目标数据库实例间的网络连接。

管理服务器center在创建网络映射成功后,将得到的实体连接地址返回至代理插件agent。agent收到center返回的实体连接地址后,在网络连接映射表中插入新建的映射关系,结束hook函数流程,进入到postgresql本身创建server的程序流程,进而通过fdw根据实体连接地址发起tcp连接,以访问目标数据库实例。

在一个实施例中,第一节点服务器上的源数据库实例还可以是在访问第一目标数据库实例后,继续访问第二目标数据库实例。此时,代理插件可拦截用户终端通过第一数据库实例提供的数据库管理控制命令发起更新外部服务器的请求,代理插件再查看网络连接映射表中是否存在与虚拟连接地址对应的映射关系。比如,用户在访问postgresol实例时,可调用alterserver命令更新server。

在一个实施例中,该数据库访问方法还包括:获取与数据库实例访问请求对应的请求方标识。将本地主机地址与虚拟连接地址发送至管理服务器,包括:将请求方标识、本地主机地址及虚拟连接地址对应发送至管理服务器;当请求方标识存在对于虚拟连接地址的访问权限时,执行接收管理服务器反馈的实体连接地址的步骤。

其中,请求方标识可以是包括数字、字母和符号中的至少一种字符的字符串,用于唯一标识一个请求方。请求方是发起数据库实例访问请求的用户。用户终端发起的数据库实例访问请求中可携带有请求方标识。用户终端也可对应于请求方标识发起数据库实例访问请求。

具体地,管理服务器在接收到第一节点服务器或第一节点服务器上的代理插件发送的数据库实例访问请求时,首先进行参数校验。参数校验包括参数格式校验和用户权限校验。用户权限校验需要检测请求方标识是否存在对于虚拟连接地址的访问权限。当请求方标识存在对于虚拟连接地址的访问权限时,管理服务器才继续执行后续操作。

在本实施例中,在将虚拟连接地址映射为实体连接地址以访问目标数据库实例前,先进行身份验证,只有在身份验证通过后才进行地址映射,保证了数据访问的安全性。

在一个实施例中,该数据库访问方法还包括:将实体连接地址记录为数据库实例访问请求所对应的连接参数;记录的连接参数,用于保留网络连接映射表中与连接参数对应的映射关系;当结束访问运行于备用节点服务器上的目标数据库实例时,将连接参数删除。

具体地,云服务网络环境中的节点服务器,在通过本地的数据库实例创建外部服务器(server)访问其他数据库实例时,均可在本地的数据库实例中记录连接参数,用于表示该连接参数对应的连接双方正在进行数据访问操作,管理服务器在管理网络连接映射表时,需要保留网络连接映射表中与该连接参数对应的映射关系。

其中,连接参数是连接双方所对应数据的统称。连接参数可以是多个数据。本地主机地址可以是连接参数,目标数据库实例的虚拟连接地址也可以是连接参数,目标数据库实例的实体连接地址也可以是连接参数。

在本实施例中,对于在访问目标数据库实例时及时记录访问时的连接参数,在访问结束后即删除相关连接参数,避免了无效数据的残留浪费存储资源。

图4示出了一个实施例中更新连接参数的时序图。参考图4,用户终端在触发连接参数更新请求(alterserver命令)后,第一节点服务器可拦截该请求,进而在网络连接映射表中查找与目标数据库实例的虚拟连接地址对应的映射关系(具体可以是agent的hook函数该请求,并查询网络连接映射表)。当该映射关系不存在时,第一节点服务器(agent)向管理服务器请求新建映射关系。管理服务器在监听到该请求时,对请求方标识进行访问权限校验,并在校验通过后创建路由路径,得到虚拟连接地址对应的实体连接地址并返回至第一节点服务器(agent)。第一节点服务器(agent)可将虚拟连接地址与实体连接地址的映射关系写入网络连接映射表中。第一节点服务器(agent)还可将实体连接地址记录为连接参数,以更新连接参数,将更新后的连接参数返回用户终端。

上述实施例中,通过代理插件统一处理跨数据库实例的访问过程,保证了不同的数据库实例间的访问的可行性,提高了不同的数据库实例间的访问效率。

在一个实施例中,根据实体连接地址,通过与数据库类型匹配的数据库插件访问目标数据库实例,包括:根据实体连接地址,通过与数据库类型匹配的数据库插件,访问运行于主节点服务器上的目标数据库实例。该数据库实例访问方法还包括:当访问运行于主节点服务器上的目标数据库实例失败时,则获取与实体连接地址对应的备用连接地址;根据备用连接地址,通过与数据库类型匹配的数据库插件,访问运行于备用节点服务器上的目标数据库实例。

可以理解,在云服务网络环境中的数据库实例通常可对应两台节点服务器来保证高可靠性。当主节点服务器宕机后,可以切换到备用节点服务器,来保证数据库实例提供数据服务的可靠性。

具体地,第一节点服务器所获取的实体连接地址,是用于访问运行于主节点服务器上的目标数据库实例的连接地址。备用连接地址,是用于访问运行与备用节点服务器的目标数据库实例的连接地址。当第一节点服务器访问运行于主节点服务器上的目标数据库实例失败时,判定可能是目标数据库实例所对应的节点服务器发生了主备切换,此时,第一节点服务器可获取与实体连接地址对应的备用连接地址,从而根据备用连接地址,通过与数据库类型匹配的数据库插件,访问运行于备用节点服务器上的目标数据库实例。

在本实施例中,在目标数据库实例所对应的节点服务器发生了主备切换时,及时与备用节点服务器建立联系,访问备用服务器上的目标数据库实例,保证了数据库实例访问的顺利进行。

在一个实施例中,第一节点服务器在获取到备用连接地址时,可根据备用连接地址更新连接参数。

图5为一个实施例中数据库实例管理方法的流程示意图。本实施例主要以该方法应用于上述图1中的管理服务器130来举例说明。参照图5,该数据库实例管理方法具体包括如下步骤:

s502,接收源主机地址和虚拟连接地址共同对应的地址映射请求;源主机地址与源数据库实例对应;虚拟连接地址与目标数据库实例对应。

具体地,地址映射请求是申请通过路由策略将虚拟连接地址映射为实体连接地址的请求。源数据库实例所在的第一节点服务器,可获取本地的源主机地址以及意图访问的目标数据库实例的虚拟连接地址,将源主机地址和虚拟连接地址对应发送至管理服务器,并发起地址映射请求,管理服务器到从而接收源主机地址和虚拟连接地址共同对应的地址映射请求。

s504,将源主机地址与虚拟连接地址共同映射为实体连接地址。

具体地,管理服务器可根据预设的路由策略,将源主机地址与虚拟连接地址共同映射为实体连接地址。比如,管理服务器可调用公有云网络管理模块提供的接口来获取实体连接地址,公有云网络管理模块用于管理相关路由策略,将虚拟连接地址映射为可以在内部网络直接访问的连接地址。

s506,根据地址映射请求反馈实体连接地址;实体连接地址用于指示源数据库实例根据实体连接地址访问目标数据库实例。

图6示出了一个实施例中数据库实例访问的原理示意图。参考图6,用户终端可发起数据库实例访问请求,源数据库实例(postgresql实例)上安装的agent在拦截到该请求后,将源主机地址和虚拟连接地址对应发送至管理服务器center,并发起地址映射请求。center将源主机地址与虚拟连接地址共同映射为实体连接地址后反馈至agent,agent将新建的映射关系写入网络连接映射表中,并根据实体连接地址访问目标数据库实例(mysql实例、mongo实例或者redis实例)。

上述数据库实例管理方法,在接收到地址映射请求后,即可获取与该地址映射请求对应的源主机地址和虚拟连接地址,进而将源主机地址与虚拟连接地址共同映射为可以在数据库实例间互相访问的实体连接地址,源数据库实例从而可根据该实体连接地址访问目标数据库实例提供的数据服务,实现了不同的数据库实例间的访问。

在一个实施例中,将源主机地址与虚拟连接地址共同映射为实体连接地址,包括:根据虚拟连接地址,确定目标数据库实例所处的网络环境;按照与网络环境相应的映射方式,将源主机地址与虚拟连接地址共同映射为实体连接地址。

在一个实施例中,该数据库实例管理方法还包括获取与地址映射请求对应的请求方标识;校验请求方标识对于虚拟连接地址的访问权限;当访问权限校验通过后,执行将源主机地址与虚拟连接地址共同映射为实体连接地址的步骤。

在一个实施例中,源数据库实例运行于第一主节点服务器。该数据库实例管理方法还包括:当源数据库实例变更为运行于第一备用节点服务器时,通知第一备用节点服务器重新访问目标数据库实例。

具体地,运行源数据库实例的第一主节点服务器可向监控服务器上报运行状态,监控服务器在接收到上报的运行状态时可进行相应记录。管理服务器从而可通过查询监控服务器中记录的运行状态来获取源数据库实例的硬件环境。运行源数据库实例的第一主节点服务器也可直接向管理服务器上报运行状态。

当监控服务器或者管理服务器超时未接收到第一主节点服务器上报的运行状态时,可判定源数据库实例变更为运行于第一备用节点服务器,管理服务器即通知第一备用节点服务器重新访问目标数据库实例。

在一个实施例中,第一主节点服务器可与监控服务器处于同一的公有云网络环境,第一主节点服务器也可与管理服务器处于同一的公有云网络环境。

在一个实施例中,通知第一备用节点服务器重新访问目标数据库实例,包括:获取与第一备用节点服务器对应的备用主机地址;根据备用主机地址和虚拟连接地址确定第一备用连接地址;将第一备用连接地址反馈至第一备用节点服务器;第一备用连接地址用于指示重新访问目标数据库实例。

图7示出了一个实施例中数据库实例访问连接更新的原理示意图。参考图7,源数据库实例对应主节点服务器master1和slave1,目标数据库实例对应主节点服务器master2和slave2。master1与master2连接实现通过源数据库实例访问目标数据库实例。其中,master1可向监控服务器上报节点状态,管理服务器center从而可通过查询监控服务器中记录的运行状态来获取源数据库实例的硬件环境。当master1宕机后,center可在网络连接映射表中检查是否存在slave1与master2连接所对应的映射关系,若不存在则获取与slave1对应的备用主机地址,根据备用主机地址和虚拟连接地址确定第一备用连接地址,以创建slave1与master2连接所对应的映射关系。center可将该映射关系写入网络连接映射表中,并将第一备用连接地址反馈至slave1,slave1从而通过该第一备用连接地址与master2连接实现通过源数据库实例访问目标数据库实例。

上述实施例中,源数据库实例所对应的节点服务器采用了一主一备来保证高可用性,并在检测到主备切换时,及时更新建立连接的节点服务器,保证了数据库实例访问的高可用性。

在一个实施例中,实体连接地址用于指示源数据库实例,根据实体连接地址访问运行于第二主节点服务器上的目标数据库实例。该数据库实例管理方法还包括:当目标数据库实例变更为运行于第二备用节点服务器时,获取与实体连接地址对应的第二备用连接地址;根据地址映射请求反馈第二备用连接地址;第二备用连接地址用于指示源数据库实例,根据备用连接地址访问运行于第二备用节点服务器上的目标数据库实例。

具体地,运行目标数据库实例的第二主节点服务器可向监控服务器上报运行状态,监控服务器在接收到上报的运行状态时可进行相应记录。管理服务器从而可通过查询监控服务器中记录的运行状态来获取源数据库实例的硬件环境。运行目标数据库实例的第二主节点服务器也可直接向管理服务器上报运行状态。

当监控服务器或者管理服务器超时未接收到第二主节点服务器上报的运行状态时,可判定源数据库实例变更为运行于第二备用节点服务器,管理服务器即获取与实体连接地址对应的第二备用连接地址,将第二备用连接地址反馈至;第二备用连接地址用于指示源数据库实例,根据备用连接地址访问运行于第二备用节点服务器上的目标数据库实例。

在一个实施例中,第二主节点服务器可与监控服务器处于同一的公有云网络环境,第二主节点服务器也可与管理服务器处于同一的公有云网络环境。

再参考图7,其中,master2可向监控服务器上报节点状态,管理服务器center从而可通过查询监控服务器中记录的运行状态来获取目标数据库实例的硬件环境。当master2宕机后,center可在网络连接映射表中检查是否存在master1与slave2连接所对应的映射关系,若不存在则获取与slave2对应的备用主机地址,根据备用主机地址和虚拟连接地址确定第二备用连接地址,以创建master1与slave2连接所对应的映射关系。center可将该映射关系写入网络连接映射表中,并将第二备用连接地址反馈至master1,master1从而通过该第一备用连接地址与slave2连接实现通过源数据库实例访问目标数据库实例。

在本实施例中,目标数据库实例所对应的节点服务器采用了一主一备来保证高可用性,并在检测到主备切换时,及时更新建立连接的节点服务器,保证了数据库实例访问的高可用性。

在一个实施例中,该数据库实例管理方法还包括:在网络连接映射表中,新建虚拟连接地址对于实体连接地址的映射关系;扫描运行源数据库实例的第一节点服务器记录的连接参数;为网络连接映射表中与连接参数对应的映射关系添加标记;将网络连接映射表中未添加标记的映射关系删除。

具体地,管理服务器可定期扫描云服务网络环境中的节点服务器上的连接参数,每扫描到连接参数时,即在网络连接映射表中为该连接参数对应的映射关系添加标记。该标记表示该映射关系仍有效,在清理时需要被保留。管理服务器在扫描完成后,检测网络连接映射表中标记,对于未添加标记的映射关系进行删除。管理服务器还可删除在创建该映射关系时添加的路由策略。

在一个实施例中,该标记可以是清理标志位。图8示出了一个实施例中删除连接参数的时序图。参考图8,管理服务器在开始进行网络连接映射表清理时,对网络连接映射表中各映射关系的清理标志位初始化。管理服务器可再扫描云服务网络环境中的节点服务器上的连接参数,每扫描到连接参数时,即在网络连接映射表中设置该连接参数对应的映射关系的清理标志位。当连接参数扫描完成后,检测网络连接映射表中的清理标志位记录,如果有发现未被设置,则根据删除创建该映射关系时添加的路由路径,并在映射信息表中的删除该映射关系。

在本实施例中,对于在访问目标数据库实例时及时记录访问时的连接参数,在访问结束后即删除相关连接参数,避免了无效数据的残留浪费存储资源。

应该理解的是,虽然上述各实施例的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,上述各实施例中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

如图9所示,在一个实施例中,提供了一种数据库实例访问装置900。参照图9,该数据库实例访问装置900包括:第一获取模块901、提取模块902、第二获取模块903、确定模块904和访问模块905。

第一获取模块901,用于获取数据库实例访问请求。

提取模块902,用于从数据库实例访问请求中提取虚拟连接地址;虚拟连接地址与数据库实例访问请求所请求访问的目标数据库实例对应。

第二获取模块903,用于获取与虚拟连接地址存在映射关系的实体连接地址。

确定模块904,用于确定目标数据库实例所属的数据库类型。

访问模块905,用于根据实体连接地址,通过与数据库类型匹配的数据库插件访问目标数据库实例。

在一个实施例中,实体连接地址,通过将本地主机地址与虚拟连接地址,按照与目标数据库实例所处网络环境相应的映射方式共同映射得到的。

在一个实施例中,第二获取模块903还用于当不存在与虚拟连接地址对应的映射关系时,获取本地主机地址;将本地主机地址与虚拟连接地址发送至管理服务器;接收管理服务器反馈的实体连接地址;反馈的实体连接地址,是管理服务器根据本地主机地址与虚拟连接地址共同确定的;新建虚拟连接地址对于反馈的实体连接地址的映射关系。

在一个实施例中,第二获取模块903还用于获取与数据库实例访问请求对应的请求方标识;将请求方标识、本地主机地址及虚拟连接地址对应发送至管理服务器;当请求方标识存在对于虚拟连接地址的访问权限时,执行接收管理服务器反馈的实体连接地址的步骤。

在一个实施例中,访问模块905还用于根据实体连接地址,通过与数据库类型匹配的数据库插件,访问运行于主节点服务器上的目标数据库实例;当访问运行于主节点服务器上的目标数据库实例失败时,则获取与实体连接地址对应的备用连接地址;根据备用连接地址,通过与数据库类型匹配的数据库插件,访问运行于备用节点服务器上的目标数据库实例。

在一个实施例中,数据库实例访问请求通过代理插件拦截得到;虚拟连接地址通过代理插件从数据库实例访问请求中提取得到。第二获取模块903还用于通过代理插件查询网络连接映射表,得到与虚拟连接地址存在映射关系的实体连接地址。

在一个实施例中,第二获取模块903还用于当通过代理插件在网络连接映射表中未查询到与虚拟连接地址对应的映射关系时,将本地主机地址与虚拟连接地址发送至管理服务器;通过代理插件接收管理服务器反馈的实体连接地址;反馈的实体连接地址,是管理服务器根据本地主机地址与虚拟连接地址共同确定的;通过代理插件,在网络连接映射表中新建虚拟连接地址对于反馈的实体连接地址的映射关系。

在一个实施例中,访问模块905还用于将实体连接地址记录为数据库实例访问请求所对应的连接参数;记录的连接参数,用于保留网络连接映射表中与连接参数对应的映射关系;当结束访问运行于备用节点服务器上的目标数据库实例时,将连接参数删除。

如图10所示,在一个实施例中,提供了一种数据库实例管理装置1000。参照图10,该数据库实例管理装置1000包括:接收模块1001、映射模块1002和反馈模块1003。

接收模块1001,用于接收源主机地址和虚拟连接地址共同对应的地址映射请求;源主机地址与源数据库实例对应;虚拟连接地址与目标数据库实例对应。

映射模块1002,用于将源主机地址与虚拟连接地址共同映射为实体连接地址。

反馈模块1003,用于根据地址映射请求反馈实体连接地址;实体连接地址用于指示源数据库实例根据实体连接地址访问目标数据库实例。

在一个实施例中,映射模块1002还用于根据虚拟连接地址,确定目标数据库实例所处的网络环境;按照与网络环境相应的映射方式,将源主机地址与虚拟连接地址共同映射为实体连接地址。

在一个实施例中,映射模块1002还用于获取与地址映射请求对应的请求方标识;校验请求方标识对于虚拟连接地址的访问权限;当访问权限校验通过后,执行将源主机地址与虚拟连接地址共同映射为实体连接地址的步骤。

在一个实施例中,源数据库实例运行于第一主节点服务器。反馈模块1003还用于当源数据库实例变更为运行于第一备用节点服务器时,通知第一备用节点服务器重新访问目标数据库实例。

在一个实施例中,反馈模块1003还用于获取与第一备用节点服务器对应的备用主机地址;根据备用主机地址和虚拟连接地址确定第一备用连接地址;将第一备用连接地址反馈至第一备用节点服务器;第一备用连接地址用于指示重新访问目标数据库实例。

在一个实施例中,实体连接地址用于指示源数据库实例,根据实体连接地址访问运行于第二主节点服务器上的目标数据库实例。反馈模块1003还用于当目标数据库实例变更为运行于第二备用节点服务器时,获取与实体连接地址对应的第二备用连接地址;根据地址映射请求反馈第二备用连接地址;第二备用连接地址用于指示源数据库实例,根据备用连接地址访问运行于第二备用节点服务器上的目标数据库实例。

如图11所示,在一个实施例中,数据库实例管理装置1000还包括:清理模块1004。

清理模块1004,用于在网络连接映射表中,新建虚拟连接地址对于实体连接地址的映射关系;扫描运行源数据库实例的第一节点服务器记录的连接参数;为网络连接映射表中与连接参数对应的映射关系添加标记;将网络连接映射表中未添加标记的映射关系删除。

图12示出了一个实施例中计算机设备的内部结构图。该计算机设备具体可以是图1中的节点服务器120和管理服务器130。如图12所示,该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现数据库实例访问/管理方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行数据库实例访问/管理方法。本领域技术人员可以理解,图12中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,本申请提供的数据库实例访问/管理装置可以实现为一种计算机程序的形式,计算机程序可在如图12所示的计算机设备上运行,计算机设备的非易失性存储介质可存储组成该数据库实例访问/管理装置的各个程序模块,比如,图9所示的第一获取模块901、提取模块902、第二获取模块903、确定模块904和访问模块905等。各个程序模块组成的计算机程序使得处理器执行本说明书中描述的本申请各个实施例的数据库实例访问/管理方法中的步骤。

例如,图12所示的计算机设备可以通过如图9所示的数据库实例访问装置900中的第一获取模块901获取数据库实例访问请求。通过提取模块902从数据库实例访问请求中提取虚拟连接地址;虚拟连接地址与数据库实例访问请求所请求访问的目标数据库实例对应。通过第二获取模块903获取与虚拟连接地址存在映射关系的实体连接地址。通过确定模块904确定目标数据库实例所属的数据库类型。通过访问模块905根据实体连接地址,通过与数据库类型匹配的数据库插件访问目标数据库实例。

在一个实施例中,提供了一种数据库实例访问系统,包括节点服务器和管理服务器,其中:

节点服务器用于获取数据库实例访问请求;从数据库实例访问请求中提取虚拟连接地址;虚拟连接地址与数据库实例访问请求所请求访问的目标数据库实例对应。

节点服务器还用于向管理服务器发送源主机地址和虚拟连接地址共同对应的地址映射请求;源主机地址与源数据库实例对应;源数据库实例运行于节点服务器。

管理服务器用于将源主机地址与虚拟连接地址共同映射为实体连接地址;根据地址映射请求向节点服务器反馈实体连接地址。

节点服务器还用于确定目标数据库实例所属的数据库类型;根据实体连接地址,通过与数据库类型匹配的数据库插件访问目标数据库实例。

在一个实施例中,管理服务器还用于根据虚拟连接地址,确定目标数据库实例所处的网络环境;按照与网络环境相应的映射方式,将源主机地址与虚拟连接地址共同映射为实体连接地址。

在一个实施例中,管理服务器还用于获取与地址映射请求对应的请求方标识;校验请求方标识对于虚拟连接地址的访问权限;当访问权限校验通过后,执行将源主机地址与虚拟连接地址共同映射为实体连接地址的步骤。节点服务器还用于获取与数据库实例访问请求对应的请求方标识;将请求方标识、本地主机地址及虚拟连接地址对应发送至管理服务器;新建虚拟连接地址对于反馈的实体连接地址的映射关系。

在一个实施例中,节点服务器还用于将实体连接地址记录为数据库实例访问请求所对应的连接参数;记录的连接参数,用于保留网络连接映射表中与连接参数对应的映射关系;当结束访问运行于备用节点服务器上的目标数据库实例时,将连接参数删除。管理服务器还用于在网络连接映射表中,新建虚拟连接地址对于实体连接地址的映射关系;扫描运行源数据库实例的第一节点服务器记录的连接参数;为网络连接映射表中与连接参数对应的映射关系添加标记;将网络连接映射表中未添加标记的映射关系删除。

在一个实施例中,节点服务器还用于根据实体连接地址,通过与数据库类型匹配的数据库插件,访问运行于主节点服务器上的目标数据库实例;当访问运行于主节点服务器上的目标数据库实例失败时,则获取与实体连接地址对应的备用连接地址;根据备用连接地址,通过与数据库类型匹配的数据库插件,访问运行于备用节点服务器上的目标数据库实例。

在一个实施例中,数据库实例访问请求通过代理插件拦截得到;虚拟连接地址通过代理插件从数据库实例访问请求中提取得到。节点服务器还用于通过代理插件查询网络连接映射表,得到与虚拟连接地址存在映射关系的实体连接地址。

在一个实施例中,节点服务器还用于当通过代理插件在网络连接映射表中未查询到与虚拟连接地址对应的映射关系时,将本地主机地址与虚拟连接地址发送至管理服务器;通过代理插件接收管理服务器反馈的实体连接地址;反馈的实体连接地址,是管理服务器根据本地主机地址与虚拟连接地址共同确定的;通过代理插件,在网络连接映射表中新建虚拟连接地址对于反馈的实体连接地址的映射关系。

在一个实施例中,节点服务器包括第一主节点服务器、第一备用节点服务器、第二主节点服务器和第二备用节点服务器。第一主节点服务器用于执行上述节点服务器所执行的步骤。当源数据库实例变更为运行于第一备用节点服务器时,管理服务器还用于通知第一备用节点服务器重新访问目标数据库实例。

在一个实施例中,管理服务器还用于获取与第一备用节点服务器对应的备用主机地址;根据备用主机地址和虚拟连接地址确定第一备用连接地址;将第一备用连接地址反馈至第一备用节点服务器;第一备用连接地址用于指示重新访问目标数据库实例。

在一个实施例中,管理服务器还用于当目标数据库实例变更为运行于第二备用节点服务器时,获取与实体连接地址对应的第二备用连接地址;根据地址映射请求反馈第二备用连接地址;第二备用连接地址用于指示源数据库实例,根据备用连接地址访问运行于第二备用节点服务器上的目标数据库实例。

在一个实施例中,提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时,使得处理器执行以下步骤:获取数据库实例访问请求;从数据库实例访问请求中提取虚拟连接地址;虚拟连接地址与数据库实例访问请求所请求访问的目标数据库实例对应;获取与虚拟连接地址存在映射关系的实体连接地址;确定目标数据库实例所属的数据库类型;根据实体连接地址,通过与数据库类型匹配的数据库插件访问目标数据库实例。

在一个实施例中,实体连接地址,通过将本地主机地址与虚拟连接地址,按照与目标数据库实例所处网络环境相应的映射方式共同映射得到的。

在一个实施例中,该计算机程序被处理器执行时,还使得处理器执行以下步骤:当不存在与虚拟连接地址对应的映射关系时,获取本地主机地址;将本地主机地址与虚拟连接地址发送至管理服务器;接收管理服务器反馈的实体连接地址;反馈的实体连接地址,是管理服务器根据本地主机地址与虚拟连接地址共同确定的;新建虚拟连接地址对于反馈的实体连接地址的映射关系。

在一个实施例中,该计算机程序被处理器执行时,还使得处理器执行以下步骤:获取与数据库实例访问请求对应的请求方标识。将本地主机地址与虚拟连接地址发送至管理服务器,包括:将请求方标识、本地主机地址及虚拟连接地址对应发送至管理服务器;当请求方标识存在对于虚拟连接地址的访问权限时,执行接收管理服务器反馈的实体连接地址的步骤。

在一个实施例中,根据实体连接地址,通过与数据库类型匹配的数据库插件访问目标数据库实例,包括:根据实体连接地址,通过与数据库类型匹配的数据库插件,访问运行于主节点服务器上的目标数据库实例。该计算机程序被处理器执行时,还使得处理器执行以下步骤:当访问运行于主节点服务器上的目标数据库实例失败时,则获取与实体连接地址对应的备用连接地址;根据备用连接地址,通过与数据库类型匹配的数据库插件,访问运行于备用节点服务器上的目标数据库实例。

在一个实施例中,数据库实例访问请求通过代理插件拦截得到;虚拟连接地址通过代理插件从数据库实例访问请求中提取得到。获取与虚拟连接地址存在映射关系的实体连接地址,包括:通过代理插件查询网络连接映射表,得到与虚拟连接地址存在映射关系的实体连接地址。

在一个实施例中,该计算机程序被处理器执行时,还使得处理器执行以下步骤:当通过代理插件在网络连接映射表中未查询到与虚拟连接地址对应的映射关系时,将本地主机地址与虚拟连接地址发送至管理服务器;通过代理插件接收管理服务器反馈的实体连接地址;反馈的实体连接地址,是管理服务器根据本地主机地址与虚拟连接地址共同确定的;通过代理插件,在网络连接映射表中新建虚拟连接地址对于反馈的实体连接地址的映射关系。

在一个实施例中,该计算机程序被处理器执行时,还使得处理器执行以下步骤:将实体连接地址记录为数据库实例访问请求所对应的连接参数;记录的连接参数,用于保留网络连接映射表中与连接参数对应的映射关系;当结束访问运行于备用节点服务器上的目标数据库实例时,将连接参数删除。

在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中储存有计算机程序,计算机程序被处理器执行时,使得处理器执行以下步骤:获取数据库实例访问请求;从数据库实例访问请求中提取虚拟连接地址;虚拟连接地址与数据库实例访问请求所请求访问的目标数据库实例对应;获取与虚拟连接地址存在映射关系的实体连接地址;确定目标数据库实例所属的数据库类型;根据实体连接地址,通过与数据库类型匹配的数据库插件访问目标数据库实例。

在一个实施例中,实体连接地址,通过将本地主机地址与虚拟连接地址,按照与目标数据库实例所处网络环境相应的映射方式共同映射得到的。

在一个实施例中,该计算机程序被处理器执行时,还使得处理器执行以下步骤:当不存在与虚拟连接地址对应的映射关系时,获取本地主机地址;将本地主机地址与虚拟连接地址发送至管理服务器;接收管理服务器反馈的实体连接地址;反馈的实体连接地址,是管理服务器根据本地主机地址与虚拟连接地址共同确定的;新建虚拟连接地址对于反馈的实体连接地址的映射关系。

在一个实施例中,该计算机程序被处理器执行时,还使得处理器执行以下步骤:获取与数据库实例访问请求对应的请求方标识。将本地主机地址与虚拟连接地址发送至管理服务器,包括:将请求方标识、本地主机地址及虚拟连接地址对应发送至管理服务器;当请求方标识存在对于虚拟连接地址的访问权限时,执行接收管理服务器反馈的实体连接地址的步骤。

在一个实施例中,根据实体连接地址,通过与数据库类型匹配的数据库插件访问目标数据库实例,包括:根据实体连接地址,通过与数据库类型匹配的数据库插件,访问运行于主节点服务器上的目标数据库实例。该计算机程序被处理器执行时,还使得处理器执行以下步骤:当访问运行于主节点服务器上的目标数据库实例失败时,则获取与实体连接地址对应的备用连接地址;根据备用连接地址,通过与数据库类型匹配的数据库插件,访问运行于备用节点服务器上的目标数据库实例。

在一个实施例中,数据库实例访问请求通过代理插件拦截得到;虚拟连接地址通过代理插件从数据库实例访问请求中提取得到。获取与虚拟连接地址存在映射关系的实体连接地址,包括:通过代理插件查询网络连接映射表,得到与虚拟连接地址存在映射关系的实体连接地址。

在一个实施例中,该计算机程序被处理器执行时,还使得处理器执行以下步骤:当通过代理插件在网络连接映射表中未查询到与虚拟连接地址对应的映射关系时,将本地主机地址与虚拟连接地址发送至管理服务器;通过代理插件接收管理服务器反馈的实体连接地址;反馈的实体连接地址,是管理服务器根据本地主机地址与虚拟连接地址共同确定的;通过代理插件,在网络连接映射表中新建虚拟连接地址对于反馈的实体连接地址的映射关系。

在一个实施例中,该计算机程序被处理器执行时,还使得处理器执行以下步骤:将实体连接地址记录为数据库实例访问请求所对应的连接参数;记录的连接参数,用于保留网络连接映射表中与连接参数对应的映射关系;当结束访问运行于备用节点服务器上的目标数据库实例时,将连接参数删除。

在一个实施例中,提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时,使得处理器执行以下步骤:接收源主机地址和虚拟连接地址共同对应的地址映射请求;源主机地址与源数据库实例对应;虚拟连接地址与目标数据库实例对应;将源主机地址与虚拟连接地址共同映射为实体连接地址;根据地址映射请求反馈实体连接地址;实体连接地址用于指示源数据库实例根据实体连接地址访问目标数据库实例。

在一个实施例中,将源主机地址与虚拟连接地址共同映射为实体连接地址,包括:根据虚拟连接地址,确定目标数据库实例所处的网络环境;按照与网络环境相应的映射方式,将源主机地址与虚拟连接地址共同映射为实体连接地址。

在一个实施例中,该计算机程序被处理器执行时,还使得处理器执行以下步骤:获取与地址映射请求对应的请求方标识;校验请求方标识对于虚拟连接地址的访问权限;当访问权限校验通过后,执行将源主机地址与虚拟连接地址共同映射为实体连接地址的步骤。

在一个实施例中,源数据库实例运行于第一主节点服务器。该计算机程序被处理器执行时,还使得处理器执行以下步骤:当源数据库实例变更为运行于第一备用节点服务器时,通知第一备用节点服务器重新访问目标数据库实例。

在一个实施例中,通知第一备用节点服务器重新访问目标数据库实例,包括:获取与第一备用节点服务器对应的备用主机地址;根据备用主机地址和虚拟连接地址确定第一备用连接地址;将第一备用连接地址反馈至第一备用节点服务器;第一备用连接地址用于指示重新访问目标数据库实例。

在一个实施例中,实体连接地址用于指示源数据库实例,根据实体连接地址访问运行于第二主节点服务器上的目标数据库实例。该计算机程序被处理器执行时,还使得处理器执行以下步骤:当目标数据库实例变更为运行于第二备用节点服务器时,获取与实体连接地址对应的第二备用连接地址;根据地址映射请求反馈第二备用连接地址;第二备用连接地址用于指示源数据库实例,根据备用连接地址访问运行于第二备用节点服务器上的目标数据库实例。

在一个实施例中,该计算机程序被处理器执行时,还使得处理器执行以下步骤:在网络连接映射表中,新建虚拟连接地址对于实体连接地址的映射关系;扫描运行源数据库实例的第一节点服务器记录的连接参数;为网络连接映射表中与连接参数对应的映射关系添加标记;将网络连接映射表中未添加标记的映射关系删除。

在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中储存有计算机程序,计算机程序被处理器执行时,使得处理器执行以下步骤:接收源主机地址和虚拟连接地址共同对应的地址映射请求;源主机地址与源数据库实例对应;虚拟连接地址与目标数据库实例对应;将源主机地址与虚拟连接地址共同映射为实体连接地址;根据地址映射请求反馈实体连接地址;实体连接地址用于指示源数据库实例根据实体连接地址访问目标数据库实例。

在一个实施例中,将源主机地址与虚拟连接地址共同映射为实体连接地址,包括:根据虚拟连接地址,确定目标数据库实例所处的网络环境;按照与网络环境相应的映射方式,将源主机地址与虚拟连接地址共同映射为实体连接地址。

在一个实施例中,该计算机程序被处理器执行时,还使得处理器执行以下步骤:获取与地址映射请求对应的请求方标识;校验请求方标识对于虚拟连接地址的访问权限;当访问权限校验通过后,执行将源主机地址与虚拟连接地址共同映射为实体连接地址的步骤。

在一个实施例中,源数据库实例运行于第一主节点服务器。该计算机程序被处理器执行时,还使得处理器执行以下步骤:当源数据库实例变更为运行于第一备用节点服务器时,通知第一备用节点服务器重新访问目标数据库实例。

在一个实施例中,通知第一备用节点服务器重新访问目标数据库实例,包括:获取与第一备用节点服务器对应的备用主机地址;根据备用主机地址和虚拟连接地址确定第一备用连接地址;将第一备用连接地址反馈至第一备用节点服务器;第一备用连接地址用于指示重新访问目标数据库实例。

在一个实施例中,实体连接地址用于指示源数据库实例,根据实体连接地址访问运行于第二主节点服务器上的目标数据库实例。该计算机程序被处理器执行时,还使得处理器执行以下步骤:当目标数据库实例变更为运行于第二备用节点服务器时,获取与实体连接地址对应的第二备用连接地址;根据地址映射请求反馈第二备用连接地址;第二备用连接地址用于指示源数据库实例,根据备用连接地址访问运行于第二备用节点服务器上的目标数据库实例。

在一个实施例中,该计算机程序被处理器执行时,还使得处理器执行以下步骤:在网络连接映射表中,新建虚拟连接地址对于实体连接地址的映射关系;扫描运行源数据库实例的第一节点服务器记录的连接参数;为网络连接映射表中与连接参数对应的映射关系添加标记;将网络连接映射表中未添加标记的映射关系删除。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

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