一种数据库访问控制方法,及装置制造方法及图纸

技术编号:15253879 阅读:79 留言:0更新日期:2017-05-02 19:36
一种数据库访问控制方法,及装置,其中方法应用于数据库系统,所述数据库系统存在至少两个数据库,所述至少两个数据库中包含第一数据库和第二数据库;应用与第一数据库之间建立有数据库连接,包括:数据访问层接收来自所述应用的访问请求,确定所述访问请求发往的目标数据库为第二数据库;所述数据访问层建立连接代理与所述第二数据库之间的数据库连接,通过所述连接代理将所述访问请求发往所述第二数据库;所述数据访问层确定所述访问请求发往的目标数据库为第一数据库;所述数据访问层将所述访问请求通过所述应用与所述第一数据库之间的数据库连接发往所述第一数据库。可以用于实现数据库应用的线性扩展,并节省数据库连接资源。

Database access control method and device

Access control method and device, a database, the method is applied to the database system, there are at least two database the database system, the database contains at least two of the first database and the second database; data base connection between the application and the establishment of the first database includes: data access layer receives the application access request, the target database determines that the access request is sent to the second database; between the data access layer to establish a connection with the second agent database connection, the agent will be the access request sent to the second database through the target database connection; the data access layer determines the access request. To the first database; the data access layer between the access request through the application and the first database The database connection is sent to the first database. Can be used to achieve linear expansion of database applications, and save the database connection resources.

【技术实现步骤摘要】

本专利技术涉及计算机
,特别涉及一种数据库访问控制方法,及装置。
技术介绍
面向互联网海量高并发服务的系统架构,主要有几个核心的关注点:性能、可用性、伸缩性、可扩展性。为了达到以上各关注点的系统设计目标,在数据层通常会引入多种数据库技术,如内存库数据库、关系数据库、非结构化查询语言(NotOnlyStructuredQueryLanguage,NOSQL)等等。NOSQL泛指非关系型的数据库,内存库产品如oracle出品的TT(TimesTen)。各种数据库为了保证自身的安全和性能指标,通常对单节点设置指标上限。如:数据库连接数的上限,TimesTen最多支持2048个连接,Oracle(一种关系数据库)数据库则可以支持的连接数较多;但是数据库连接数增多会导致Oracle数据库响应变慢,因此在保证性能的前提下Oracle数据库也存在数据库连接数瓶颈。随着业务的复杂化、多样化的发展,结合数据库分布式部署(scaleout)的发展,应用与数据库关系表现为如下特征:1、多种类型的数据库并存,关系数据库,内存数据库,NOSQL等;典型产品如Oracle,TimesTen,Fastore,Hadoop等等。2、为了适应应用的集群化和高可行性,数据库一般通过分区拆分的方式部署在多个分区节点,提供高并发和高可用的能力;3、由于应用日益复杂,一项应用可能需要同时访问多种数据库和多个分区节点来获取信息。面对海量增长的数据和业务请求,大型应用系统的数据库架构如下:数据库架构中包含多个数据库,应用所需要的数据以分区拆分的方式存放在上述多个数据库中;应用分别与上述多个数据库建立有数据库连接。需要扩展时候,纵向扩展应用数量和数据库数量,数据库连接的总数是应用数量与数据库数量的乘积,单个数据库的数据库连接数等于应用数,单个应用的数据库连接数等于数据库数量。在以上数据库架构下,每个数据库连接数等于需要对其访问的应用数(或者进程数);因为数据库连接数受限,应用无法线性扩展;应用占用每个数据库一个专用数据库连接,造成数据库连接资源浪费。
技术实现思路
本专利技术实施例提供了一种数据库访问控制方法,及装置,用于实现数据库应用的线性扩展,并节省数据库连接资源。一方面,本申请的实施例提供了一种数据库访问控制方法,应用于数据库系统,所述数据库系统存在至少两个数据库,所述至少两个数据库中包含第一数据库和第二数据库;应用与第一数据库之间建立有数据库连接;数据访问层接收来自所述应用的访问请求,确定所述访问请求发往的目标数据库为第二数据库;所述数据访问层建立连接代理与所述第二数据库之间的数据库连接,通过所述连接代理将所述访问请求发往所述第二数据库;所述数据访问层确定所述访问请求发往的目标数据库为第一数据库;所述数据访问层将所述访问请求通过所述应用与所述第一数据库之间的数据库连接发往所述第一数据库。以上访问请求仅需要具备确定其目标数据库的作用就可以了,不应做更多限定性的理解;第一数据库的连接不需要经连接代理中转属于高速直连的高速连接,第二数据库的连接需要经连接代理中转属于低速连接;在一个可能的设计中,高速直连的数据库连接,可以是预先配置的也可以是由数据访问层集中管理的,其中采用数据访问层直接管理的方式可以更方便于后期对高速直连的数据库连接进行增加和删除管理,预配置的方案则在应用对数据库具有较为固定的高速访问需求的应用场景下使用,会使整个数据库系统架构管理更为简洁,具体为:所述应用与第一数据库之间建立有数据库连接,包括:确定所述访问请求的访问速度需求,若所述访问速度需求属于高速直连类,则建立所述应用与第一数据库之间的数据库连接;或者,所述应用的主库为第一数据库,所述应用与第一数据库之间的数据库连接为预配置的数据库连接。在一个可能的设计中,还提供了由数据访问层集中管理高速直连的数据库连接方案下,如何建立高速直连的方案,如下:所述建立所述应用与第一数据库之间的数据库连接之前,所述方法还包括:确定当前不存在所述应用与第一数据库之间的数据库连接,并且所述第一数据库未达到最大连接数,则建立所述应用与第一数据库之间的数据库连接。如果已经存在所述应用与第一数据库之间的数据库连接,那么不需要创建新的高速直连;如果第一数据库已经达到了其支持的最大连接数,那么则无法建立高速直连。在一个可能的设计中,还提供了采用连接代理实现的低速数据库访问,向采用高速直连的高速数据库访问切换,如下:在所述数据访问层建立连接代理与所述第二数据库之间的数据库连接之前,所述方法还包括:确定所述第二数据库的连接数是否小于第二阈值,并且所述应用对所述第二数据库的访问量或者频率是否大于第三阈值,若是则建立所述应用与第二数据库之间的数据库连接;否则执行所述建立连接代理与所述第二数据库之间的数据库连接。本实施例提供的是:在数据库负荷较低,并且应用对数据库的访问较多的情况下,可以考虑为应用提供更快速的访问通道,第二阈值和第三阈值用于控制从连接代理向高速直连切换的临界点,阈值的具体设定将会导致的效果是可以进行理论推导获得了,阈值的具体取值可以依经验设定,也可以依系统的负载能力来确定。在一个可能的设计中,在建立所述应用与第二数据库之间的数据库连接之后,所述方法还包括:确定所述第二数据库的连接数是否大于第四阈值,并且所述应用对所述第二数据库的访问量或者频率是否小于第五阈值,所述第四阈值大于或等于所述第二阈值,所述第五阈值小于或等于所述第三阈值;若是,则拆除所述应用与第二数据库之间的数据库连接,建立连接代理与所述第二数据库之间的数据库连接。第四阈值和第五阈值的具体取值可以依经验设定,也可以依系统的负载能力来确定,本实施例对其具体取值不作唯一性限定。在一个可能的设计中,所述数据访问层建立连接代理与所述第二数据库之间的数据库连接之前,所述方法还包括:所述数据访问层获取当前存在的连接代理的工作状态,确定目标连接代理;所述目标连接代理为当前工作状态为空闲的连接代理;建立所述应用与所述目标连接代理之间的通信连接,或者,若无空闲的连接代理并且所述第二数据库已建立的连接数未超过所述第二数据库支持的最大连接数,则建立新的连接代理作为目标连接代理;所述数据访问层建立连接代理与所述第二数据库之间的数据库连接,通过所述连接代理将所述访问请求发往所述第二数据库,包括:建立所述目标连接代理与所述第二数据库之间的数据库连接,所述目标连接代理将所述访问请求发往所述第二数据库。在本实施例中,如果没有空闲的连接代理,并且不支持建立新的连接代理,那么可以等待空闲的连接代理出现,直到等待时间超时。在一个可能的设计中,所述方法还包括:记录当前已有的连接代理,并记录连接代理上报的当前工作状态;在连接代理的当前工作状态空闲量大于第一阈值时,删除冗余连接代理;所述冗余连接代理依据各数据库的连接数均衡原则确定。第一阈值的设定可以是一个比例,即空闲的连接代理占总连接代理的比例;第一阈值也可以是个数的数值,例如空闲的连接代理超过多少个,则删除一些连接代理。在一个可能的设计中,所述方法还包括:接收对应于所述访问请求的结果数据,若所述结果数据的源端与所述应用之间存在数据库连接,则将所述结果数据路由发往所述应用;否则,则将所述结果数据通过所述连接代理发往所述应用。本文档来自技高网
...

【技术保护点】
一种数据库访问控制方法,应用于数据库系统,所述数据库系统存在至少两个数据库,所述至少两个数据库中包含第一数据库和第二数据库;应用与第一数据库之间建立有数据库连接,其特征在于,包括:数据访问层接收来自所述应用的访问请求,确定所述访问请求发往的目标数据库为第二数据库;所述数据访问层建立连接代理与所述第二数据库之间的数据库连接,通过所述连接代理将所述访问请求发往所述第二数据库;所述数据访问层确定所述访问请求发往的目标数据库为第一数据库;所述数据访问层将所述访问请求通过所述应用与所述第一数据库之间的数据库连接发往所述第一数据库。

【技术特征摘要】
1.一种数据库访问控制方法,应用于数据库系统,所述数据库系统存在至少两个数据库,所述至少两个数据库中包含第一数据库和第二数据库;应用与第一数据库之间建立有数据库连接,其特征在于,包括:数据访问层接收来自所述应用的访问请求,确定所述访问请求发往的目标数据库为第二数据库;所述数据访问层建立连接代理与所述第二数据库之间的数据库连接,通过所述连接代理将所述访问请求发往所述第二数据库;所述数据访问层确定所述访问请求发往的目标数据库为第一数据库;所述数据访问层将所述访问请求通过所述应用与所述第一数据库之间的数据库连接发往所述第一数据库。2.根据权利要求1所述方法,其特征在于,所述应用与第一数据库之间建立有数据库连接,包括:确定所述访问请求的访问速度需求,若所述访问速度需求属于高速直连类,则建立所述应用与第一数据库之间的数据库连接;或者,所述应用的主库为第一数据库,所述应用与第一数据库之间的数据库连接为预配置的数据库连接。3.根据权利要求2所述方法,其特征在于,所述建立所述应用与第一数据库之间的数据库连接之前,所述方法还包括:确定当前不存在所述应用与第一数据库之间的数据库连接,并且所述第一数据库未达到最大连接数,则建立所述应用与第一数据库之间的数据库连接。4.根据权利要求1至3任意一项所述方法,其特征在于,在所述数据访问层建立连接代理与所述第二数据库之间的数据库连接之前,所述方法还包括:确定所述第二数据库的连接数是否小于第二阈值,并且所述应用对所述第二数据库的访问量或者频率是否大于第三阈值,若是则建立所述应用与第二数据库之间的数据库连接;否则执行所述建立连接代理与所述第二数据库之间的数据库连接。5.根据权利要求4所述方法,其特征在于,在建立所述应用与第二数据库之间的数据库连接之后,所述方法还包括:确定所述第二数据库的连接数是否大于第四阈值,并且所述应用对所述第二数据库的访问量或者频率是否小于第五阈值,所述第四阈值大于或等于所述第二阈值,所述第五阈值小于或等于所述第三阈值;若是,则拆除所述应用与第二数据库之间的数据库连接,建立连接代理与所述第二数据库之间的数据库连接。6.根据权利要求1至3任意一项所述方法,其特征在于,所述数据访问层建立连接代理与所述第二数据库之间的数据库连接之前,所述方法还包括:所述数据访问层获取当前存在的连接代理的工作状态,确定目标连接代理;所述目标连接代理为当前工作状态为空闲的连接代理;建立所述应用与所述目标连接代理之间的通信连接,或者,若无空闲的连接代理并且所述第二数据库已建立的连接数未超过所述第二数据库支持的最大连接数,则建立新的连接代理作为目标连接代理;所述数据访问层建立连接代理与所述第二数据库之间的数据库连接,通过所述连接代理将所述访问请求发往所述第二数据库,包括:建立所述目标连接代理与所述第二数据库之间的数据库连接,所述目标连接代理将所述访问请求发往所述第二数据库。7.根据权利要求6所述方法,其特征在于,还包括:记录当前已有的连接代理,并记录连接代理上报的当前工作状态;在连接代理的当前工作状态空闲量大于第一阈值时,删除冗余连接代理;所述冗余连接代理依据各数据库的连接数均衡原则确定。8.根据权利要求1至3任意一项所述方法,其特征在于,还包括:接收对应于所述访问请求的结果数据,若所述结果数据的源端与所述应用之间存在数据库连接,则将所述结果数据路由发往所述应用;否则,则将所述结果数据通过所述连接代理发往所述应用。9.一种数据库访问控制装置,应用于数据库系统,所述数据库系统存在至少两个数据库,所述至少两个数据库中包含第一数据库和第二数据库...

【专利技术属性】
技术研发人员:房厚波
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东;44

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

1