CN102915374B - 一种控制数据库资源访问的方法、装置及系统 - Google Patents

一种控制数据库资源访问的方法、装置及系统 Download PDF

Info

Publication number
CN102915374B
CN102915374B CN201210441742.9A CN201210441742A CN102915374B CN 102915374 B CN102915374 B CN 102915374B CN 201210441742 A CN201210441742 A CN 201210441742A CN 102915374 B CN102915374 B CN 102915374B
Authority
CN
China
Prior art keywords
database
client
access
request
resource state
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201210441742.9A
Other languages
English (en)
Other versions
CN102915374A (zh
Inventor
张辉华
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Sohu New Media Information Technology Co Ltd
Original Assignee
Beijing Sohu New Media Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Sohu New Media Information Technology Co Ltd filed Critical Beijing Sohu New Media Information Technology Co Ltd
Priority to CN201210441742.9A priority Critical patent/CN102915374B/zh
Publication of CN102915374A publication Critical patent/CN102915374A/zh
Application granted granted Critical
Publication of CN102915374B publication Critical patent/CN102915374B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明公开了一种控制数据库资源访问的方法、装置及系统,以实现有效控制客户端对数据库资源访问的目的,包括:接收客户端对已与其连接的数据库的访问请求;判断所述客户端对数据库的访问请求所对应的数据库资源状态是否超过预设阈值;如果没超过,将访问请求发送到所述数据库,如果超过,拒绝所述访问请求;由于本发明将客户端对数据库的访问请求与数据库资源状态对应,可以实现在客户所定制的服务所对应的数据库资源状态超阈值时,及时有效拦截客户端对数据库资源访问的目的。

Description

一种控制数据库资源访问的方法、装置及系统
技术领域
本发明涉及数据库领域,特别涉及一种控制数据库资源访问的方法、装置及系统。
背景技术
数据库是各种应用服务不可或缺的资源,目前对于数据库资源的控制由已经发展较为成熟的数据库管理系统实现,例如MYSQL数据库管理系统,通常一个数据库管理系统负责该系统内若干数据库的创建、访问。
但是,目前数据库管理系统对数据库资源的控制是非常有限的,一旦允许客户端与数据库系统建立连接,也就同时允许客户端对该数据库系统内的数据库资源无限制的占用。然而,对于应用服务提供者来说,例如,云平台,对数据库资源的控制是一个很重要的需求,也是其资费的一个重要标准,在云平台允许某客户端与数据库建立连接之后,需要在客户端对数据库的访问服务结束时,及时限制客户端的对数据库的访问,然而,由于数据库管理系统对于已经建立连接的客户端缺乏控制访问机制,无法及时对数据库的访问进行有效控制。即使数据库管理系统及时修改了对该客户端的连接限制,也需要重新启动服务,才能生效,对云平台需要连续提供服务这一需求来说,是不可应用的。
发明内容
有鉴于此,本发明的主要目的在于提供一种控制数据库资源访问的方法、装置及系统以实现有效控制客户端对数据库资源访问的目的。
本发明提供了一种控制数据库资源访问的方法,该方法包括:
接收客户端对已与其连接的数据库的访问请求;
判断所述客户端对数据库的访问请求所对应的数据库资源状态是否超过预设阈值;
如果没超过,将访问请求发送到所述数据库;
如果超过,拒绝所述访问请求。
优选地,所述判断数据库资源状态是否超过预设阈值具体可以包括:
判断消息队列中是否有该数据库资源状态对应的消息格式的预警消息;
如果有,则该数据库资源状态超过预设阈值;
其中,所述消息队列中的预警消息具体通过以下步骤获得:
读取所述客户端对数据库的访问请求所对应的数据库资源状态;
选择该数据库资源状态对应的预设阈值,判断是否该数据库资源状态超过所述预设阈值;
如果是,选择该数据库资源状态对应的消息格式规则,生成预警消息,将所述预警消息发送到消息队列中。
优选地,所述选择该数据库资源状态对应的预设阈值,判断是否该数据库资源状态超过所述预设阈值之后,还可以包括:
如果不是,判断消息队列中是否有该数据库资源状态对应的消息格式的预警消息;
如果有,则将所述预警消息从消息队列中删除。
优选地,所述消息队列具体可以为有发布/订阅功能的消息队列;
所述判断消息队列中是否有该数据库资源状态对应的消息格式的预警消息,具体通过以下步骤判断:
判断当前时刻是否超过该数据库资源状态的预警时刻,所述该数据库资源状态的预警时刻具体为从收到消息队列发布该数据库资源状态对应的消息格式的预警消息的时刻到预设时间范围内的时刻;
如果没超过该数据库资源装提案的预警时刻,则确定消息队列中有该数据库资源状态对应的消息格式的预警消息。
优选地,若接收客户端对已与其建立连接的数据库的访问请求具体为第一次接收,则将该数据库的该客户端写入数据流量记录和该数据库的该客户端读出数据流量记录均设置为初始状态;
在将访问请求发送到所述数据库后,还包括:
统计访问请求携带的写入数据量,将其累积到该数据库的该客户端写入数据流量记录中;
将数据库响应数据返回到客户端,并统计响应数据库的数据量,将其累积到该数据库的该客户端读出数据流量记录中。
优选地,所述数据库资源状态具体可以为所述数据库的该客户端写入数据流量记录和该数据库的该客户端读出数据流量记录。
优选地,在将操作指令发送到所述数据库之前,还可以包括:判断所述客户端对数据库的访问请求的指令,是否在所述数据库预设的指令白名单中,所述指令白名单中包括了该数据库允许该客户端执行的指令;
所述如果没超过将访问请求发送到数据库,具体可以为如果没超过且所述访问请求的指令在所述指令白名单中,将访问请求发送到所述数据库。
优选地,若接收客户端对已与其建立连接的数据库的访问请求具体为第一次接收,则将所述客户端最后一次访问所述数据库的时刻设置为初始状态;
所述将访问请求发送到所述数据库之后,还包括:将所述客户端的访问请求发送到所述数据库的时间,记录为所述客户端最后一次访问所述数据库的时刻。
优选地,所述数据库资源状态具体可以为根据记录的所述客户端最后一次访问所述数据库的时刻到当前时刻的时间间隔;
所述预设阈值具体为该数据库允许该客户端闲置的时间间隔阈值;
还包括,如果超过预设阈值,断开所述客户端与所述数据库的连接。
优选地,所述接收客户端对已与其连接的数据库的访问请求之前,还可以包括:
接收所述客户端对所述数据库的连接请求;
判断所述客户端对数据库的连接请求所对应的数据库资源状态是否超过预设阈值;
如果没超过,建立客户端与数据库的连接。
优选地,所述建立客户端与数据库的连接之后,还包括:计算所述客户端数目,将其累积到该数据库连接客户端数目记录中。
优选地,该方法还包括:接受所述客户端对所述数据库的断开连接请求;
断开客户端与所述数据库的连接。
优选地,所述接收客户端对所述数据库的连接请求之后,还可以包括:
判断所述客户端的IP地址是否在所述数据库预设的IP白名单中,所述IP白名单中包括了该数据库允许连接的客户端IP地址;
所述如果没超过,建立客户端与数据库的连接具体为如果没超过且客户端的IP地址在IP白名单中,则建立客户端与数据库的连接。
优选地,在断开客户端与所述数据库的连接之后,还可以包括:在该数据库连接客户端数目中减去所述断开的客户端数目。
优选地,该方法还可以包括:
接受运维平台对所述数据库的创建指令;
根据所述创建指令,创建所述数据库。
优选地,该方法还可以包括:
接受运维平台对所述数据库的删除指令;
根据所述删除指令,删除所述数据库。
优选地,在接收指令之前,还可以包括:
接收验证密钥;
判断验证密钥是否正确,如果正确,则接受指令,否则拒绝。
在本发明的一个优选实施例中,所述接收客户端对已与其连接的数据库的访问请求具体包括:接收客户端对云平台上已与其连接的数据库的访问请求,根据所述访问请求获得所述数据库在云平台上的唯一标识;
所述将访问请求发送到所述数据库具体包括:将访问请求发送到所述唯一标识所标识的数据库。
本发明还提供一种控制数据库资源访问的装置,包括:
访问接收单元:用于接收客户端对已与其连接的数据库的访问请求;
访问控制单元:用于判断客户端对数据库的访问请求所对应的数据库资源状态是否超过预设阈值,如果没超过,将所述访问请求发送到所述数据库;如果超过,拒绝所述访问请求。
本发明又提供一种控制数据库资源访问的系统,包括:
至少1个如上述的一种控制数据库资源访问的装置:用于接收客户端对已与其连接的数据库的访问请求,判断所述客户端对数据库的访问请求所对应的数据库资源状态是否超过预设阈值,如果没超过,将访问请求发送到所述数据库;
代理服务器:用于接收客户端对已与其连接的数据库的访问请求,指定所述一种控制数据库资源访问的装置的IP端口信息,将所述客户端对所述数据库的访问请求发送到所述IP端口信息对应的一种控制数据库资源访问的装置。
可见本发明具有如下有益效果:
由于本发明将客户端对数据库的访问请求与数据库资源状态相对应,可以实现根据客户端定制的服务,将客户端对数据库的访问请求对应到相适应的数据库资源状态,进而在客户端与数据库建立连接之后,通过判断所述客户端对数据库的访问请求所对应的数据库资源状态是否超预设阈值,将未超阈值时所接收的操作指令发送到数据库,将超过阈值时所接收的访问请求拦截,可以实现根据客户所定制的服务所对应的数据库资源状态超阈值时,及时有效拦截客户端对数据库资源访问的目的。
附图说明
图1是本发明一种控制数据库资源访问的方法的流程图;
图2是本发明判断数据库资源状态是否超过预设阈值的一个实施例的步骤流程图;
图3是本发明生成预警消息的流程图;
图4是本发明一种控制数据库资源访问的装置组成图;
图5是本发明一种控制数据库资源访问的系统组成图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明实施例作进一步详细的说明。
从限制客户端对数据库的访问角度出发实现控制数据库资源,包括以下实施例:
参见图1,为本发明提供的一种控制数据库资源访问的方法的流程图,如图1所示,该方法包括:
S101、接收客户端对已与其连接的数据库的访问请求;
S102、判断所述客户端对数据库的访问请求所对应的数据库资源状态是否超过预设阈值;
需要说明的是,在本发明所指的客户端对数据库的访问请求所对应的数据库资源状态,根据客户端对数据库的访问请求的控制需求,本领域技术人员可以理解的是,所对应的数据库资源状态可以包括,例如:数据库连接客户端数目、该客户端从连接该数据库开始到目前为止在该数据库上的数据流量、该数据库的该客户端某一时间段内的数据流量、该数据库占用磁盘空间、该数据库占用CPU时间、该数据库的慢查询、该数据库的表行数、该数据库的表个数等等;在本发明所指的预设阈值,根据数据库资源状态不同,预设的阈值也不同,例如,数据库资源状态具体为数据库数据流量,则预设阈值就是数据库数据流量阈值等等。
S103、如果没超过,将访问请求发送到所述数据库;
S104、如果超过,拒绝所述访问请求。
可以理解的是,客户端与数据库建立连接之后,步骤S101到步骤S104可以循环重复执行,也就是说,本发明在客户端与数据库建立连接之后,可以不断接收客户端对数据库的访问请求,在客户端对数据库的访问请求所对应的数据库资源状态未超阈值时所接收的访问请求均被发送到数据库,在数据库资源状态超阈值时所接收的访问请求被拦截,以实现根据客户端对数据库的访问请求对应的数据库资源状态,及时限制客户端对数据库资源访问的目的,例如,在一个实际应用场景中,客户端在云平台上制定了固定数据流量限额的服务,要对该客户端对数据库资源的访问进行控制,则可以将该数据库的该客户端的数据流量作为该客户端对该数据库访问请求对应的数据库资源状态,将该客户端制定的固定数据流量限额作为预设阈值,利用本发明实现对数据库资源根据控制需求及时限制客户端访问,控制数据库资源访问的目的。
其中,所述步骤S102、判断数据库资源状态是否超过预设阈值,具体地,例如,可以通过以下两种实施方式实现该步骤,一种实施方式是:通过直接读取数据库资源状态判断所述数据库资源状态是否超过预设阈值;另一种实施方式是:通过消息队列中的预警消息判断所述数据库资源状态是否超过预设阈值。
下面,着重介绍通过消息队列中的预警消息判断所述数据库资源状态是否超过预设阈值的实施方式,参见图2,具体实现为:
S201、判断消息队列中是否有该数据库资源状态对应的消息格式的预警消息;
S202、如果有,则该数据库资源状态超过预设阈值。
在该实施例中,在接收客户端对数据库的访问请求后,判断数据库资源状态是否超过预设阈值具体通过判断消息队列中是否有该数据库资源状态对应的消息格式的预警消息来判断,因此,在本发明该实施例中,还包括通过以下步骤生成预警消息,并将该预警消息发送到消息队列中,参见图3,具体实现为:
S301、读取所述客户端对数据库的访问请求所对应的数据库资源状态;
在该步骤中的读取所述客户端对数据库的访问请求所对应的数据库资源状态,具体可以通过读取统计日志实现,在统计日志中更新每个数据库的每个客户端写入数据流量记录、读出数据流量记录、写入数据流量和读出数据流量之和记录等数据。
在该步骤中的读取所述客户端对数据库的访问请求所对应的数据库资源状态,具体还可以通过读取性能数据接口实现,在这里所述性能数据接口,本领域的技术人员可以理解其具体指的是读取各个数据库属性或者各个数据库服务器运行状态的统一接口,一般能够读取的数据库资源状态包括:该数据库占用磁盘空间、该数据库占用CPU时间、该数据库的慢查询、该数据库的表行数、该数据库的表个数等。
S302、选择该数据库资源状态对应的预设阈值,判断是否该数据库资源状态超过所述预设阈值;
S303、如果是,选择该数据库资源状态对应的消息格式规则,生成预警消息,将所述预警消息发送到消息队列中。
可见,在本发明该实施例中,读取数据库资源状态,判断数据库资源状态是否超过预设阈值的具体步骤可以在接收客户端对数据库的访问之前进行,甚至可以定时进行,因此,在接收客户端对数据库的访问之后,节省了读取数据库资源状态和相关计算超阈值的计算步骤,只要判断消息队列中是否有预警消息即可,使客户端访问数据库的效率得以提高。
另外,为了在数据库资源状态变化时,从超过预设阈值状态恢复为未超过预设阈值状态时,消息队列中的留存的预警消息不会妨碍客户端的正常访问,本发明提出两种解决办法:
一种解决办法通过将预警消息从消息队列中删除实现,具体实现为:
所述步骤S202判断是否数据库资源状态超过预设阈值之后还包括:如果不是,判断消息队列中是否有该数据库资源状态对应的消息格式的预警消息;
如果有,则将所述预警消息从消息队列中删除;
所述判断消息队列中是否有该数据库资源状态对应的消息格式的预警消息具体通过读取消息队列中的消息判断。
另一种解决办法通过计算预警时间实现,具体实现为:
所述消息队列具体为有发布/订阅功能的消息队列;
所述判断消息队列中是否有该数据库资源状态对应的消息格式的预警消息,具体通过以下步骤判断:
判断当前时刻是否超过该数据库资源状态的预警时刻,所述该数据库资源状态的预警时刻具体为从收到消息队列发布该数据库资源状态对应的消息格式的预警消息的时刻到预设时间范围内的时刻,例如,收到消息队列发布该数据库资源状态对应的消息格式的预警消息的时刻为00:00,所述预设时间范围为5分钟,则该数据库资源状态的预警时刻为00:00到00:05内的时刻;
如果没超过该数据库资源状态的预警时刻,则确定消息队列中有该数据库资源状态对应的消息格式的预警消息。
下面,对本发明数据库资源状态的获取进行详细说明,以一种情况为例,在该实施例中的数据库资源状态,可以是写入数据流量、读出数据流量,具体可以通过接收客户端对数据库访问请求获取写入数据流量,向客户端返回数据库响应数据获取读出数据流量,具体实现为:
若步骤S101接收客户端对已与其建立连接的数据库的访问请求具体为第一次接收,则将该数据库的该客户端写入数据流量记录和该数据库的该客户端读出数据流量记录均设置为初始状态;
在将访问请求发送到所述数据库后,还包括:
统计访问请求携带的写入数据量,将其累积到该数据库的该客户端写入数据流量记录中;
将数据库的响应数据返回到客户端,并统计响应数据的数据量,将其累积到该数据库的该客户端读出数据流量记录中。
具体实施时,例如,可以建立统计日志,在统计日志中更新每个数据库的每个客户端写入数据流量记录、读出数据流量记录、写入数据流量和读出数据流量之和记录等数据。
在本发明的一个优选实施例中,还提出从限制客户端对数据库的访问请求的指令的角度出发实现对数据库资源的控制,例如,SQL请求只有在SQL白名单内才给予转发,具体实现为:
在步骤S103中将访问请求发送到所述数据库之前,还包括:判断所述客户端对数据库的访问请求的指令,是否在所述数据库预设的指令白名单中,所述指令白名单中包括了该数据库允许该客户端执行的指令;
所述步骤S103中如果没超过,将访问请求发送到数据库具体为:如果没超过且所述访问请求的指令在所述指令白名单中,将访问请求发送到所述数据库。
可以理解的是,如果不在指令白名单中,则可以拦截所述访问请求的指令。
在本发明的另一个优选实施例中,还可以通过释放闲置客户端对数据库的连接,达到控制数据库资源的目的,具体实现为:
若所述步骤S101接收客户端对已与其建立连接的数据库的访问请求具体为第一次接收,则将所述客户端最后一次访问所述数据库的时刻设置为初始状态;
所述步骤S103将访问请求发送到所述数据库之后,还包括:将所述客户端的访问请求发送到所述数据库的时间,记录为所述客户端最后一次访问所述数据库的时刻。
所述步骤S102中的数据库资源状态具体为根据记录的所述客户端最后一次访问所述数据库的时刻到当前时刻的时间间隔;
所述步骤S102中的预设阈值具体为该数据库允许该客户端闲置的时间间隔阈值;
还包括,如果超过预设阈值,断开所述客户端与所述数据库的连接。
进一步地,还可以包括:将该数据库的闲置连接放回连接池内。
需要说明的是,在本发明的基础之上,还可以从限制客户端对数据库连接的角度进一步根据控制需求及时限制客户端访问的目的,下面进行详细说明:
考虑到数据库资源状态不仅可以在客户端与数据库连接之后用于对数据库资源的控制,还可以用于限制客户端对数据库的连接控制,例如,在该实施例中,所述步骤S101接收客户端对已与其连接的数据库的访问请求之前,还包括例如以下建立所述客户端与所述数据库的连接的步骤,具体实现为:
S101.a、接收所述客户端对所述数据库的连接请求;
S101.b、判断所述客户端对数据库的连接请求所对应的数据库资源状态是否超过预设阈值;
S101.c、如果没超过,建立客户端与数据库的连接。
在该实施例中,所述数据库资源状态在这里具体可以指所述数据库连接客户端数目记录,可以在建立客户端与所述数据库的连接时,通过累计所述数据库连接客户端的数目获取,具体实现为:
在步骤S101.c如果没超过,建立客户端与数据库的连接之后,还包括:计算所述客户端数目,将其累积到该数据库连接客户端数目记录中,当然,如上述实施例,还可以将该数据库资源状态写入统计日志中。
另外,对于客户端的断开连接请求,也需要控制,例如,还包括:
接受所述客户端对所述数据库的断开连接请求;
断开客户端与所述数据库的连接。
可以理解的是,在断开客户端与所述数据库的连接之后,还应包括:在该数据库连接客户端数目中减去所述断开的客户端数目。
不仅数据库资源状态可以用于限制客户端对数据库的连接,客户端的身份信息也可以用来限制客户端对数据库的连接,例如:
所述步骤S101.a、接收所述客户端对所述数据库的连接请求之后,还可以包括:判断所述客户端的IP地址是否在所述数据库预设的IP白名单中,所述IP白名单中包括了该数据库允许连接的客户端IP地址;
所述步骤S101.c、如果没超过,建立客户端与数据库的连接具体为如果没超过且客户端的IP地址在IP白名单中,则执行步骤S102建立客户端与数据库的连接。
其次,从控制运维平台对数据库的创建角度出发实现控制数据库资源,例如,还可以包括:
接受运维平台对所述数据库的创建指令;
根据所述创建指令,创建所述数据库。
再例如,还可以包括:
接受运维平台对所述数据库的删除指令;
根据所述删除指令,删除所述数据库。
在上述两个实施例中,所述创建所述数据库或者删除所述数据库具体可以通过性能数据接口向数据库服务器发送创建或者删除所述数据库的消息,与性能数据接口通信时,采用对参数排序并全签名方式通信,另外,在接受运维平台对所述数据库的创建指令或删除指令之前,还包括:
接收验证密钥;
判断验证密钥是否正确,如果正确,则接受指令,否则拒绝。
需要说明的是,本发明的方法还可以应用在云平台上,具体地,例如:
所述接收客户端对已与其连接的数据库的访问请求具体包括:接收客户端对云平台上已与其连接的数据库的访问请求,根据所述访问请求获得所述数据库在云平台上的唯一标识,在这里所指的唯一标识可以是数据库名称或者编号等能够唯一确定数据库并与之通讯的标识;
所述将访问请求发送到所述数据库具体包括:将访问请求发送到所述唯一标识所标识的数据库。
本发明还提供一种控制数据库资源访问的装置,如图4所示,该装置具体可以包括:
访问接收单元401:用于接收客户端对已与其连接的数据库的访问请求;
访问控制单元402:用于判断所述客户端对数据库的访问请求所对应的数据库资源状态是否超过预设阈值,如果没超过,将访问请求发送到所述数据库;如果超过,拒绝所述访问请求。
本发明还提供一种控制数据库资源访问的系统,如图5所示,该系统具体可以包括:
至少1个如上述实施例中的一种控制数据库资源访问的装置501和502:用于接收客户端对已与其连接的数据库的访问请求,判断所述客户端对数据库的访问请求所对应的数据库资源状态是否超过预设阈值,如果没超过,将访问请求发送到所述数据库;
代理服务器503:用于接收客户端对已与其连接的数据库的访问请求,指定所述一种控制数据库资源访问的装置的IP端口信息,将所述客户端对所述数据库的访问请求发送到所述IP端口信息对应的一种控制数据库资源访问的装置。
可见,该系统通过代理服务器为客户端的访问请求指定控制数据库资源装置的IP端口,进而,可以将大量的客户端对数据库的访问请求分散到各个控制数据库资源访问装置进行处理,以提高处理效率,例如,可以在云平台不同的服务器上配置如上所述的一种控制数据库资源访问的装置来实现对数据库资源的高效率控制。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (19)

1.一种控制数据库资源访问的方法,其特征在于,包括:
接收客户端对云平台上已与其连接的数据库的访问请求;
判断所述客户端对数据库的访问请求所对应的数据库资源状态是否超过所述客户端在云平台上制定的服务的预设阈值;所述数据库资源状态包括:数据库连接客户端数目、该客户端从连接该数据库开始到目前为止在该数据库上的数据流量、该数据库的该客户端某一时间段内的数据流量、该数据库占用磁盘空间、该数据库占用CPU时间、该数据库的慢查询、该数据库的表行数、该数据库的表个数中一种或多种;不同的数据库资源状态对应的预设阈值也不同;
如果没超过,将所述访问请求发送到所述数据库;
如果超过,拒绝所述访问请求;
其中,所述判断数据库资源状态是否超过预设阈值具体包括:
判断消息队列中是否有该数据库资源状态对应的消息格式的预警消息;
如果有,则该数据库资源状态超过预设阈值;
其中,所述消息队列中的预警消息具体通过以下步骤获得:
读取数据库资源状态;
选择数据库资源状态对应的预设阈值,判断是否数据库资源状态超过所述预设阈值;
如果是,选择数据库资源状态对应的消息格式规则,生成预警消息,将所述预警消息发送到消息队列中。
2.根据权利要求1所述的方法,其特征在于,所述选择数据库资源状态对应的预设阈值,判断是否数据库资源状态超过所述预设阈值之后,还包括:
如果不是,判断消息队列中是否有该数据库资源状态对应的消息格式的预警消息;
如果有,则将所述预警消息从消息队列中删除。
3.根据权利要求1所述的方法,其特征在于,所述消息队列具体为有发布/订阅功能的消息队列;
所述判断消息队列中是否有该数据库资源状态对应的消息格式的预警消息,具体通过以下步骤判断:
判断当前时刻是否超过该数据库资源状态的预警时刻,所述该数据库资源状态的预警时刻具体为从收到消息队列发布该数据库资源状态对应的消息格式的预警消息的时刻到预设时间范围内的时刻;
如果没超过该数据库资源状态的预警时刻,则确定消息队列中有该数据库资源状态对应的消息格式的预警消息。
4.根据权利要求1所述的方法,其特征在于,
若接收客户端对已与其建立连接的数据库的访问请求具体为第一次接收,则将该数据库的该客户端写入数据流量记录和该数据库的该客户端读出数据流量记录均设置为初始状态;
在将访问请求发送到所述数据库后,还包括:
统计访问请求携带的写入数据量,将其累积到该数据库的该客户端写入数据流量记录中;
将数据库响应数据返回到客户端,并统计响应数据的数据量,将其累积到该数据库的该客户端读出数据流量记录中。
5.根据权利要求4所述的方法,其特征在于,所述数据库资源状态具体为所述数据库的该客户端写入数据流量记录和该数据库的该客户端读出数据流量记录。
6.根据权利要求1所述的方法,其特征在于,
在将访问请求发送到所述数据库之前,还包括:判断所述客户端对数据库的访问请求的指令,是否在所述数据库预设的指令白名单中,所述指令白名单中包括了该数据库允许该客户端执行的指令;
所述如果没超过将访问请求发送到数据库,具体为如果没超过且所述访问请求的指令在所述指令白名单中,将访问请求发送到所述数据库。
7.根据权利要求1所述的方法,其特征在于,
若接收客户端对已与其建立连接的数据库的访问请求具体为第一次接收,则将所述客户端最后一次访问所述数据库的时刻设置为初始状态;
所述将访问请求发送到所述数据库之后,还包括:将所述客户端的访问请求发送到所述数据库的时间,记录为所述客户端最后一次访问所述数据库的时刻。
8.根据权利要求7所述的方法,其特征在于,所述数据库资源状态具体为根据记录的所述客户端最后一次访问所述数据库的时刻到当前时刻的时间间隔;
所述预设阈值具体为该数据库允许该客户端闲置的时间间隔阈值;
还包括,如果超过预设阈值,断开所述客户端与所述数据库的连接。
9.根据权利要求1所述的方法,其特征在于,所述接收客户端对已与其连接的数据库的访问请求之前,还包括:
接收所述客户端对所述数据库的连接请求;
判断所述客户端对数据库的连接请求所对应的数据库资源状态是否超过预设阈值;
如果没超过,建立客户端与数据库的连接。
10.根据权利要求9所述的方法,其特征在于,所述建立客户端与数据库的连接之后,还包括:计算所述客户端数目,将其累积到该数据库连接客户端数目记录中。
11.根据权利要求10所述的方法,其特征在于,还包括:
接受所述客户端对所述数据库的断开连接请求;
断开客户端与所述数据库的连接。
12.根据权利要求9所述的方法,其特征在于,所述接收客户端对所述数据库的连接请求之后,还包括:
判断所述客户端的IP地址是否在所述数据库预设的IP白名单中,所述IP白名单中包括了该数据库允许连接的客户端IP地址;
所述如果没超过,建立客户端与数据库的连接具体为如果没超过且客户端的IP地址在IP白名单中,则建立客户端与数据库的连接。
13.根据权利要求8或11所述的方法,其特征在于,在断开客户端与所述数据库的连接之后,还包括:在该数据库连接客户端数目中减去所述断开的客户端数目。
14.根据权利要求1所述的方法,其特征在于,还包括:
接受运维平台对所述数据库的创建指令;
根据所述创建指令,创建所述数据库。
15.根据权利要求1所述的方法,其特征在于,还包括:
接受运维平台对所述数据库的删除指令;
根据所述删除指令,删除所述数据库。
16.根据权利要求14或15所述的方法,其特征在于,在接受指令之前,还包括:
接收验证密钥;
判断验证密钥是否正确,如果正确,则接受指令,否则拒绝。
17.根据权利要求1所述的方法,其特征在于,
所述接收客户端对已与其连接的数据库的访问请求具体包括:接收客户端对云平台上已与其连接的数据库的访问请求,根据所述访问请求获得所述数据库在云平台上的唯一标识;
所述将访问请求发送到所述数据库具体包括:将访问请求发送到所述唯一标识所标识的数据库。
18.一种控制数据库资源访问的装置,其特征在于,包括:
访问接收单元:用于接收客户端对云平台上已与其连接的数据库的访问请求;
访问控制单元:用于判断所述客户端对数据库的访问请求所对应的数据库资源状态是否超过所述客户端在云平台上制定的服务的预设阈值,如果没超过,将所述访问请求发送到所述数据库;如果超过,拒绝所述访问请求;所述数据库资源状态包括:数据库连接客户端数目、该客户端从连接该数据库开始到目前为止在该数据库上的数据流量、该数据库的该客户端某一时间段内的数据流量、该数据库占用磁盘空间、该数据库占用CPU时间、该数据库的慢查询、该数据库的表行数、该数据库的表个数中一种或多种;不同的数据库资源状态对应的预设阈值也不同;所述判断数据库资源状态是否超过预设阈值具体包括:判断消息队列中是否有该数据库资源状态对应的消息格式的预警消息;如果有,则该数据库资源状态超过预设阈值;其中,所述消息队列中的预警消息具体通过以下步骤获得:读取数据库资源状态;选择数据库资源状态对应的预设阈值,判断是否数据库资源状态超过所述预设阈值;如果是,选择数据库资源状态对应的消息格式规则,生成预警消息,将所述预警消息发送到消息队列中。
19.一种控制数据库资源访问的系统,其特征在于,包括:
至少1个如权利要求18所述的一种控制数据库资源访问的装置:用于接收客户端对云平台上已与其连接的数据库的访问请求,判断所述客户端对数据库的访问请求所对应的数据库资源状态是否超过所述客户端在云平台上制定的服务的预设阈值,如果没超过,将访问请求发送到所述数据库,如果超过,拒绝所述访问请求;所述数据库资源状态包括:数据库连接客户端数目、该客户端从连接该数据库开始到目前为止在该数据库上的数据流量、该数据库的该客户端某一时间段内的数据流量、该数据库占用磁盘空间、该数据库占用CPU时间、该数据库的慢查询、该数据库的表行数、该数据库的表个数中一种或多种;不同的数据库资源状态对应的预设阈值也不同;所述判断数据库资源状态是否超过预设阈值具体包括:判断消息队列中是否有该数据库资源状态对应的消息格式的预警消息;如果有,则该数据库资源状态超过预设阈值;其中,所述消息队列中的预警消息具体通过以下步骤获得:读取数据库资源状态;选择数据库资源状态对应的预设阈值,判断是否数据库资源状态超过所述预设阈值;如果是,选择数据库资源状态对应的消息格式规则,生成预警消息,将所述预警消息发送到消息队列中;
代理服务器:用于接收客户端对已与其连接的数据库的访问请求,指定所述一种控制数据库资源访问的装置的IP端口信息,将所述客户端对所述数据库的访问请求发送到所述IP端口信息对应的一种控制数据库资源访问的装置。
CN201210441742.9A 2012-11-07 2012-11-07 一种控制数据库资源访问的方法、装置及系统 Active CN102915374B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210441742.9A CN102915374B (zh) 2012-11-07 2012-11-07 一种控制数据库资源访问的方法、装置及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210441742.9A CN102915374B (zh) 2012-11-07 2012-11-07 一种控制数据库资源访问的方法、装置及系统

Publications (2)

Publication Number Publication Date
CN102915374A CN102915374A (zh) 2013-02-06
CN102915374B true CN102915374B (zh) 2016-04-06

Family

ID=47613740

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210441742.9A Active CN102915374B (zh) 2012-11-07 2012-11-07 一种控制数据库资源访问的方法、装置及系统

Country Status (1)

Country Link
CN (1) CN102915374B (zh)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103309986B (zh) * 2013-06-18 2016-05-25 阔地教育科技有限公司 一种网页访问控制方法及系统
CN104331406A (zh) * 2013-12-20 2015-02-04 乐视网信息技术(北京)股份有限公司 一种数据库容量控制方法及装置
CN103731362A (zh) * 2014-01-02 2014-04-16 浙江网新恩普软件有限公司 一种带有流量控制的异地就医系统
CN104767689B (zh) * 2014-01-07 2018-11-09 腾讯科技(深圳)有限公司 控制网络访问接入量的方法及服务器
CN106294423A (zh) * 2015-05-25 2017-01-04 阿里巴巴集团控股有限公司 数据库分表的写入方法及装置
CN106326750A (zh) * 2015-07-02 2017-01-11 阿里巴巴集团控股有限公司 数据库安全性分析方法及系统
CN105512244B (zh) * 2015-11-30 2019-03-01 北京京东尚科信息技术有限公司 基于消息队列实现数据库事务处理的方法及装置
CN106257456A (zh) * 2016-07-08 2016-12-28 北京京东尚科信息技术有限公司 高并发请求下提高数据库稳定性的方法、装置及系统
CN106302390A (zh) * 2016-07-27 2017-01-04 福建富士通信息软件有限公司 一种基于nginx访问频率限制的方法以及系统
CN106230627B (zh) * 2016-07-28 2019-05-07 浪潮软件股份有限公司 一种基于可定制策略的web访问高峰缓解方法
CN106330754B (zh) * 2016-08-31 2020-02-21 东软集团股份有限公司 访问请求的控制方法和装置
CN106375472B (zh) * 2016-09-29 2019-09-17 北京三快在线科技有限公司 访问请求处理方法、装置和服务器
CN106650501B (zh) * 2016-12-30 2019-12-06 迈普通信技术股份有限公司 数据库访问控制方法和装置
CN106815354A (zh) * 2017-01-22 2017-06-09 上海易贷网金融信息服务有限公司 一种数据库数据缓冲处理方法
CN108345594A (zh) * 2017-01-22 2018-07-31 中国移动通信集团安徽有限公司 数据库访问请求的控制方法、控制装置及控制系统
CN106775499B (zh) * 2017-02-07 2019-02-05 无锡华云数据技术服务有限公司 一种对公共存储空间进行合理化暴露的方法、暴露控制系统及一种云存储系统
CN106899690B (zh) * 2017-03-16 2019-10-25 福建星瑞格软件有限公司 数据库连线与保护综合管理系统
CN108989369B (zh) * 2017-05-31 2021-07-06 北京京东尚科信息技术有限公司 对用户请求进行限流的方法及其系统
CN107707488A (zh) * 2017-10-25 2018-02-16 北京数码视讯支付技术有限公司 支付联机交易流量控制方法、限流服务端及客户端
CN108183833B (zh) * 2017-11-29 2021-08-10 努比亚技术有限公司 一种响应处理方法、装置及计算机可读存储介质
CN108038372A (zh) * 2017-12-08 2018-05-15 郑州云海信息技术有限公司 一种数据库访问管理方法和装置
CN108270693A (zh) * 2017-12-29 2018-07-10 珠海国芯云科技有限公司 网站访问的自适应优化疏导方法及装置
CN108551465B (zh) * 2018-03-09 2020-06-09 平安科技(深圳)有限公司 服务器并发数控制方法、装置、计算机设备及存储介质
CN109257293B (zh) * 2018-08-01 2022-02-18 北京明朝万达科技股份有限公司 一种用于网络拥堵的限速方法、装置及网关服务器
CN109067770B (zh) * 2018-09-05 2021-04-23 高新兴科技集团股份有限公司 物联网系统的流量攻击控制方法及计算机存储介质
CN109522327A (zh) * 2018-11-16 2019-03-26 北京京东金融科技控股有限公司 信息生成方法、装置和系统
CN110716794B (zh) * 2019-10-14 2020-09-29 网银在线(北京)科技有限公司 信息处理方法、装置、系统和可读存储介质
CN113220767A (zh) * 2021-05-28 2021-08-06 中国工商银行股份有限公司 数据库连接管理方法及装置
CN113452780B (zh) * 2021-06-26 2023-05-02 未鲲(上海)科技服务有限公司 针对客户端的访问请求处理方法、装置、设备及介质
CN114741422A (zh) * 2022-06-09 2022-07-12 深圳华锐分布式技术股份有限公司 查询请求方法、装置、设备及介质
CN116150785B (zh) * 2023-01-06 2024-03-19 国网山东省电力公司 一种远程数据安全存储方法及系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102289463A (zh) * 2011-07-15 2011-12-21 北京邮电大学 一种控制用户使用容量的方法及代理服务器

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102346891B (zh) * 2010-07-30 2016-05-11 阿里巴巴集团控股有限公司 一种网络交易方法及服务器

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102289463A (zh) * 2011-07-15 2011-12-21 北京邮电大学 一种控制用户使用容量的方法及代理服务器

Also Published As

Publication number Publication date
CN102915374A (zh) 2013-02-06

Similar Documents

Publication Publication Date Title
CN102915374B (zh) 一种控制数据库资源访问的方法、装置及系统
CN102982141B (zh) 一种实现分布式数据库代理的方法及装置
CN101853287B (zh) 数据压缩快速检索文件系统及其方法
JP6444405B2 (ja) ソフトウェア更新方法、システム及びデバイス
CN108108286A (zh) 数据收集方法和装置、服务器、存储介质
CN101394307B (zh) 一种统计在线用户数量的方法、装置及系统
US20110004917A1 (en) Integration Platform for Collecting Security Audit Trail
CN108259421B (zh) 一种用户活跃度的统计方法及系统
CN104219069A (zh) 访问频率控制方法、装置及控制系统
CN109740089A (zh) 数据采集方法、装置、系统、可读存储介质及电子设备
CN108520004B (zh) 基于方法参数切面多租户数据源切换系统
CN111064634A (zh) 海量物联网终端在线状态的监测方法及装置
CN113225339B (zh) 网络安全监测方法、装置、计算机设备及存储介质
US9814012B2 (en) Method, node and system for managing resources of machine type communication application
US20220191279A1 (en) IoT Device Data Management Method, Apparatus, and System
CN103747028A (zh) 一种授予用户临时root权限的方法
CN109246769A (zh) 一种pdu会话建立方法及装置
CN103874051A (zh) 物联网预置资源处理方法及装置
CN103686688A (zh) 移动终端用户通讯录的保护处理方法与装置、移动终端
CN103530335A (zh) 电力计量采集系统的入库操作方法及装置
CN109947081B (zh) 网联车辆控制方法及装置
CN105491507A (zh) 一种m2m中管理应用资源的方法和注册节点
CN103905226A (zh) 一种业务平台的自动部署方法和装置
CN105138372A (zh) 一种基于Android系统的后台服务管控系统及方法
CN112671572A (zh) 智能设备配网的方法、装置、存储介质及电子装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CP02 Change in the address of a patent holder

Address after: 100086 12, 1201, 3 building, 2 South Road, Haidian District Academy of Sciences, Beijing.

Patentee after: Beijing Sohu New Media Information Technology Co., Ltd.

Address before: 100084 Beijing Haidian District Zhongguancun East Road 1 hospital 9 building Sohu cyber Building 8 floor 802 room.

Patentee before: Beijing Sohu New Media Information Technology Co., Ltd.

CP02 Change in the address of a patent holder