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.一种数据库访问控制装置,应用于数据库系统,所述数据库系统存在至少两个数据库,所述至少两个数据库中包含第一数据库和第二数据库...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。