一种基于数据库节点的数据访问方法及系统的制作方法

文档序号:6632557阅读:165来源:国知局
一种基于数据库节点的数据访问方法及系统的制作方法
【专利摘要】本发明公开了一种基于数据库节点的数据访问方法及系统,其中,基于数据库节点的数据访问方法包括:接收客户端发送的数据库访问请求消息,并从所述数据库访问请求消息中提取出待执行的SQL语句;解析所述SQL语句,并根据预设的匹配规则匹配出与所述解析后的SQL语句匹配的至少一个目标数据库节点;在所述匹配出的目标数据库节点上执行所述解析后的SQL语句;合并多个目标数据库节点返回的执行结果,并将合并后的执行结果反馈给客户端。通过本发明提供的方法,能够实现数据库的并行访问,加快了数据库查询的速度。
【专利说明】一种基于数据库节点的数据访问方法及系统

【技术领域】
[0001]本发明涉及数据库访问【技术领域】,具体涉及一种基于数据库节点的数据访问方法及系统。

【背景技术】
[0002]对于目前的集中式数据库,将数据均存放在数据库管理中心,可以参见图1,比如,每个应用营业场所都要定时的将自己监控获取的网络日志通过应用程序接口提供到市管理中心,市管理中心提供接口将数据插入到市管理中心数据库,市管理中心按照接口将数据传输到省管理中心,一级一级上传。另外,当上级管理中心下达数据审计指令时,下级管理中心提供接收数据审计指令接口,下级管理中心将数据审计指令存储到本地,然后将数据审计指令达到当前管理中心的下级管理中心,一级一级下达。
[0003]目前的集中式数据库,对硬件的存储空间要求比较高,数据库管理中心无法进行存储空间的扩容处理;对硬件的处理性能要求比较高,所有的下级管理中心都需要将自己的日志传输到上级管理中心,每天日志量非常大;数据库管理中心检索数据的速度慢,需要从巨大的数据量中检索查询,效率低下;数据库管理中心的数据严重滞后,实时性不高,且数据上传接口复杂,对没有上传的数据无法监控;所有的工作都依赖于上级数据库管理中心,一旦上级数据库管理中心出现故障,所有的工作将会无法运行。


【发明内容】

[0004]本发明所要解决的技术问题是提供一种基于数据库节点的数据访问方法及系统,实现数据库的并行访问,加快数据查询检索的速度。
[0005]依据本发明的一个方面,提供了一种基于数据库节点的数据访问方法,包括:
[0006]接收客户端发送的数据库访问请求消息,并从所述数据库访问请求消息中提取出待执行的SQL语句;
[0007]解析所述SQL语句,并根据预设的匹配规则匹配出与所述解析后的SQL语句匹配的至少一个目标数据库节点;
[0008]在所述匹配出的目标数据库节点上执行所述解析后的SQL语句;
[0009]合并多个目标数据库节点返回的执行结果,并将合并后的执行结果反馈给客户端。
[0010]依据本发明的另一个方面,提供了一种基于数据库节点的数据访问系统,包括:
[0011]请求消息接收单元,用于接收客户端发送的数据库访问请求消息,并从所述数据库访问请求消息中提取出待执行的SQL语句;
[0012]节点匹配单元,用于解析所述SQL语句,并根据预设的匹配规则匹配出与所述解析后的SQL语句匹配的至少一个目标数据库节点;
[0013]执行单元,用于在所述匹配出的目标数据库节点上执行所述解析后的SQL语句;
[0014]执行结果合并单元,用于合并多个目标数据库节点返回的执行结果,并将合并后的执行结果反馈给客户端。
[0015]本发明提供的一种基于数据库节点的数据访问方法及系统,首先从客户端发送的数据库访问请求中提取出待执行的SQL语句,并对该SQL语句进行解析,使之成为能够执行的SQL语句;然后根据预设的匹配规则从众多的数据库节点中匹配出与该SQL匹配的至少一个数据库节点,并在匹配出的数据库节点上执行该SQL语句;最后将多个数据库节点返回的执行结果进行合并,并将合并后的执行结果反馈给客户端。通过本发明提供的方法,数据库管理中心将数据查询SQL语句发送到各个数据库节点,各个数据库节点根据根据SQL语句进行检索查询,然后将检索查询的结果合并后返回给数据库管理中心,解决了数据检索速度慢的问题,提升了海量数据检索的性能。

【专利附图】

【附图说明】
[0016]图1为现有技术方案数据库网络架构图;
[0017]图2为本实施例一的一种基于数据库节点的数据访问方法流程图;
[0018]图3为本发明实施例一中的基于数据库节点的分布式数据库的网络架构图;
[0019]图4为本发明实施例一的一种基于数据库节点的数据访问方法中数据处理的整体架构图;
[0020]图5为本发明实施例一中当SQL语句为事务语句时的处理流程图;
[0021]图6为本发明实施例一种当SQL语句为非事务语句时的处理流程图;
[0022]图7为本发明实施例以的一种基于数据库节点的数据访问方法的整体流程图;
[0023]图8为本发明实施例二的一种基于数据库节点的数据访问系统示意图。

【具体实施方式】
[0024]以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
[0025]实施例一、一种基于数据库节点的数据访问方法。下面结合图2-图6对本发明提供的方法进行详细描述。
[0026]图2中,S201、接收客户端发送的数据库访问请求消息,并从该数据库访问请求消息中提取出待执行的SQL语句。
[0027]具体的,可以参见图3,本实施例的数据库是基于多级分布式数据库且是基于MySQL数据库,即每一级数据库管理中心均存在多个数据库节点,并且每一级数据库均存有子节点数据库。因此,首先需要建立一个分布式集群数据库,在数据库管理中心安装存储节点数据库,设置下级存储节点数据库,并通过设置访问数据库的IP、用户名、密码和端口信息等,来设置访问数据的权限;统一各个节点数据库中数据存储的模型;然后搭建上级数据库管理中心,在上级数据库管理中心中创建访问分布式数据库的用户名和密码以及默认的连接数据库。若建立的本数据库管理中心需要上级数据库管理中心,可以再搭建本级数据库管理中心的上级数据库管理中心,搭建的本数据库管理中心作为上级数据库管理中心的子数据库节点,其中,每一个数据库节点中均存在若干个数据库,数据库的IP、用户名、密码或端口信息与本数据库所在的数据库节点的IP、用户名、密码以及端口信息对应。其中,数据库存储节点的配置由配置管理服务器来完成。
[0028]搭建了分布式数据库之后,参见图4,代理服务器会将大量的数据进行数据切分处理,将整个数据切分成若干块数据,然后按照一定的规则将切分后的数据分别存储到相应的节点数据库中。配置管理器还会对切分后的数据进行检测,检测数据切分是否正确,如果不正确,发出异常警告。另外,下级子数据库节点配置表数据同步,上级数据库管理中心所做的任何数据库操作,下级子数据库节点都能够实时同步。
[0029]若客户端(也可以称为客户端应用程序)希望访问数据库,客户端的应用程序向数据库代理服务器发送数据库访问请求消息,数据库代理服务器接收到客户端发送的数据库访问请求消息,根据MySQL数据库协议标准从数据库访问请求消息中提取出待执行的SQL语句。另外,客户端发送的数据库访问请求消息中还携带有客户端的标识信息,以便后续可以根据客户端的标识信息找到与该客户端匹配的数据库节点。
[0030]S202、解析上述SQL语句,并根据预设的匹配规则匹配出与解析后的SQL语句匹配的至少一个目标数据库节点。
[0031]具体的,步骤S201中,数据库代理服务器从客户端发送的数据库访问请求消息中提取出待执行的SQL语句,该提取出的SQL语句是不能够在数据库执行的SQL语句,因此,本步骤数据库代理服务器对提取出的SQL语句进行解析,解析出的SQL语句能够直接在数据库上执行。
[0032]解析SQL语句后,数据库代理服务器根据预设的匹配规则匹配找到与解析后的SQL语句匹配(也可以说与该SQL语句对应的客户端匹配)的数据库节点(以下称为目标数据库节点),比如,根据客户端标识与目标数据库节点标识的对应关系匹配出客户端(由客户端而来的SQL语句)对应的目标数据库节点,该目标数据库节点可能有一个也可能有多个,客户端对应的目标数据库节点的个数由预设的匹配规则决定。
[0033]当匹配出的客户端(SQL语句)对应的目标数据库节点后,数据库代理服务器对匹配出的所有目标数据库节点进行心跳检测,即检测这些目标数据库节点是否处于在线状态。数据库代理服务器会定时向所有的数据库节点握手,检测它们的连接状态,当匹配出的目标数据库节点处于离线状态时,就不将SQL语句发送给处于离线状态的数据库节点,只将SQL发送给处于在线状态的数据库节点。在具体实现的过程中,当匹配出的数据库节点只有一个时,检测该数据库节点是否处于在线状态,若处于在线状态,数据库代理服务器向该数据库节点发送SQL语句。当匹配出的数据库节点有多个时,有两种方式,第一种方式可以称为强一致性策略,即只有通过预设的匹配规则匹配出的与客户端对应的所有目标数据库节点都同时处于在线状态时,才能向其中的数据库节点发送SQL语句;若其中的某一个数据库节点处于离线状态时,就不允许向这些数据库节点中的任何一个数据库节点发送SQL语句。第二种方式可以称为弱一致性策略,即可以允许所有匹配的目标数据库节点中的部分数据库节点处于离线状态时,可以向处于在线状态的数据库节点发送SQL语句。其中,所有的数据库节点均存储在数据存储服务器中。
[0034]S203、在匹配出的目标数据库节点上执行解析后的SQL语句。
[0035]具体的,上述步骤通过预设的匹配规则匹配出与客户端对应的目标数据库节点,由于每一个数据库节点中均存在若干个数据库,因此需要通过预设的路由规则从每个数据库节点(即与客户端匹配且处于在线状态的目标数据库节点)中找到与客户端对应的具体数据库(即具体访问的数据库)。预设的路由规则可以有多种,比如,可以按照数据库的负载来进行路由,即根据数据库存储的数据量来分配,将SQL语句分配给数据库量小的数据库;也可以按照数据库的访问量来进行路由,将SQL语句分配给访问量小的数据库。
[0036]在通过预设的路由规则在每个数据库节点中找到具体的数据库后,参见图5,判断需要发送的SQL语句是否为事务语句,如果该SQL语句为事务语句,则将对应的数据库节点的当前连接标记为事务连接,以便下一次SQL语句也为事务语句时,可以采用同一条数据库连接进行数据库的访问。将数据库连接进行事务连接标记后,数据库代理服务器向匹配的数据库节点发送SQL语句,数据库节点接收到SQL语句后,将该SQL语句转发给通过预设的路由规则找到的对应的数据库,对应的数据库接收到SQL语句,在数据库当前的连接上执行SQL语句。当事务SQL语句在对应的数据库当前连接上执行完毕后,将数据库的当前连接进行回收至数据库连接池,提高复用率。
[0037]参见图6,若判断获知需要发送的SQL语句为非事务语句时,不对对应的数据库当前的连接进行标记,直接将SQL语句发送匹配的数据库节点,数据库节点接收到SQL语句后,将该SQL语句转发给通过预设的路由规则找到的对应的数据库,对应的数据库在当前连接上执行SQL语句。
[0038]需要说明的是,在数据库代理服务器将客户端发送的SQL语句发送给对应的数据库节点前,还会进行客户端对数据库访问的权限验证,只有客户端对数据库访问的权限验证通过时,才能对数据库进行访问,即只有客户端对数据库访问的权限验证通过时,数据库代理服务器才会将客户端发送的SQL语句传输给匹配的数据库节点,然后数据库节点将SQL语句转发给该数据库节点中对应的数据库。
[0039]当步骤S202通过预设的匹配规则匹配出的目标数据库节点只有一个且这个目标数据库节点处于在线状态时,然后再通过预设的路由规则在该数据库节点下找到对应的数据库(即执行SQL语句的数据库)。数据库代理服务器将解析后的SQL语句发送给匹配的数据库节点,该数据库节点将该SQL语句转发给该数据库节点下对应的数据库,并在该数据库的当前数据库连接上执行SQL语句。当该SQL语句为事务语句时,SQL执行完毕后,将执行该SQL语句的数据库连接回收至数据库连接池中。
[0040]当步骤S202通过预设的匹配规则匹配出的目标数据库节点有多个且这多个目标数据库节点均处于在线状态时,数据库代理服务器将解析后的SQL语句按照一定的规则发送给每一个匹配的数据库节点,每一个数据库节点将接收到的SQL语句转发给通过预设的路由规则找到的对应数据库,并在该对应的数据库的当前连接上执行SQL语句;若匹配出的多个数据库节点只有部分数据库节点处于在线状态时,数据库代理服务器将需要发送的SQL语句按照一定的规则发送给处于在线状态的数据库节点,每一个数据库节点将接收到的SQL语句转发给通过预设的路由规则找到的对应数据库,并在该对应的数据库的当前连接上执行SQL语句。当执行的SQL语句为事务语句时,SQL执行完毕后,将执行该SQL语句的数据库连接回收至数据库连接池中。
[0041]S204、合并多个目标数据库节点返回的执行结果,并将合并后的执行结果反馈给客户端。
[0042]具体的,当目标数据库节点只有一个时,数据库节点直接将SQL语句的执行结果返回给数据库代理服务器,数据库代理服务器将执行结果反馈给客户度;当目标数据库节点为多个时,多个目标数据库节点将各自的SQL语句的执行结果返回给数据库代理服务器,数据库代理服务器接收到多个目标数据库节点发送的执行结果,对多个执行结果进行合并封装,并将合并封装后的执行结果反馈给客户端。
[0043]另外,当各个数据库节点中数据库中的数据出现异常时,各个数据库节点会将数据异常告警信息发送给上级数据库管理中心,上级数据库中心可以及时了解各个数据库节点中数据库的数据异常情况。
[0044]以上对本发明提供的方法进行了详细的介绍,为了更好的理解本发明提供的方法,下面结合图7对本发明提供的方法的整个流程图进行说明。
[0045]图7中,首先,若客户端希望访问数据库,客户端应用程序向数据库代理服务器发送数据库访问请求消息,数据库代理服务器接收到客户端应用程序发送的数据库访问请求消息后,根据数据库协议标准从数据库访问请求消息中提取出待执行的SQL语句;解析待执行的SQL语句,得到可执行的SQL语句,并根据预设的匹配规则匹配出与解析后的SQL语句对应的目标数据库节点;当匹配出的目标数据库节点只有一个且当前处于在线状态时,数据库代理服务器将解析出的SQL语句发送给该目标数据库节点,然后该数据库节点将该SQL语句转发给根据预设的路由规则在该数据库节点下找到的数据库,数据库接收到SQL语句后,在数据库当前的连接上执行该SQL语句,该数据库将执行结果发送给数据库代理服务器,数据库代理服务器将该执行结果反馈给客户端,若该SQL语句为事务语句,执行完该SQL语句,将执行该SQL语句的数据库连接回收至数据库连接池;当匹配出的目标数据库节点为多个时,则按照一定的规则将解析后的SQL语句分配发送给这多个数据库节点中处于在线状态的数据库节点,这些处于在线状态的数据库节点将接收到的SQL语句转发给根据预设的路由规则找到的该数据库节点下的具体对应的数据库,数据库接收到SQL语句后,在该数据库的当前连接上执行该SQL语句,多个数据库节点将SQL语句的执行结果返回给数据库代理服务器,数据库代理服务器将接收到的多个执行结果合并处理,并将合并后的执行结果反馈给客户端,若执行的SQL语句为事务语句,执行完该SQL语句,将执行该SQL语句的数据库连接回收至数据库连接池。
[0046]实施例二、一种基于数据库节点的数据访问系统。下面结合图8对本发明提供的系统进行详细说明。
[0047]图8中,本发明提供的系统包括请求消息接收单元801、节点匹配单元802、心跳检测单元803、判断单元804、权限验证单元805、执行单元806、连接回收单元807和执行结果合并单元808。
[0048]其中,请求消息接收单元801主要用于接收客户端发送的数据库访问请求消息,并从该数据库访问请求消息中提取出待执行的SQL语句。
[0049]具体的,本实施例的数据库是基于多级分布式数据库且是基于MySQL数据库,即每一级数据库管理中心均存在多个数据库节点,并且每一级数据库均存在子节点数据库。若用户客户端(也可以称为客户端应用程序)希望访问数据库,客户端的应用程序向数据库代理服务器发送数据库访问请求消息,设置于数据库代理服务器中的请求消息接收单元801接收到客户端发送的数据库访问请求消息,根据MySQL数据库协议标准从数据库访问请求消息中提取出待执行的SQL语句。另外,客户端发送的数据库访问请求消息中还携带有客户端的标识信息,以便后续可以根据客户端的标识信息找到与该客户端匹配的数据库节点。
[0050]节点匹配单元802主要用于解析请求消息接收单元801提取出的待执行SQL语句,并根据预设的匹配规则匹配出与解析后的SQL语句匹配的至少一个目标数据库节点。
[0051]心跳检测单元803主要用于对节点匹配单元802匹配出的所有目标数据库节点进行心跳检测。
[0052]具体的,节点匹配单元802对提取出的SQL语句进行解析,解析出的SQL语句能够直接在数据库上执行。解析SQL语句后,节点匹配单元802根据预设的匹配规则匹配找到与该客户端(也可以说又客户端而来的SQL语句)对应的数据库节点(以下称为目标数据库节点),比如,根据客户端标识与目标数据库节点标识的对应关系匹配出客户端对应的目标数据库节点,该目标数据库节点可能有一个也可能有多个,客户端对应的目标数据库节点的个数由预设的匹配规则决定。
[0053]当节点匹配单元802匹配出客户端对应的目标数据库节点后,心跳检测单元803对匹配出的所有目标数据库节点进行心跳检测,即检测这些目标数据库节点是否处于在线状态。心跳检测单元803会定时向所有的数据库节点握手,检测它们的连接状态,当匹配出的目标数据库节点处于离线状态时,就不将SQL语句发送给处于离线状态的数据库节点,只将SQL发送给处于在线状态的数据库节点。
[0054]判断单元804主要用于判断解析后的SQL语句是否为事务语句;在解析后的SQL语句为事务语句的情况下,对数据库当前连接进行事务标记。
[0055]权限验证单元805主要用于对客户端的数据库访问权限进行验证;当客户端的数据库访问权限验证通过时,在节点匹配单元802匹配出的目标数据库节点上执行解析后的SQL语句。
[0056]执行单元806主要用于在匹配出的目标数据库节点上执行解析后的SQL语句。
[0057]连接回收单元807主要用于当解析后的SQL语句为事务语句且在相应的数据库当前连接上执行后时,将据库当前连接回收至数据库连接池。
[0058]具体的,节点匹配单元802通过预设的匹配规则匹配出与客户端(SQL语句)对应的目标数据库节点,由于每一个数据库节点中均存在若干个数据库,因此需要通过预设的路由规则从每个数据库节点(即与客户端匹配且处于在线状态的目标数据库节点)中找到与客户端对应的具体数据库。另外,节点匹配单元802匹配出的目标数据库节点可能为一个也可能为多个。
[0059]在通过预设的路由规则在每个数据库节点中找到具体的数据库后,判断单元804判断客户端发送的SQL语句是否为事务语句,如果该SQL语句为事务语句,则将对应的数据库节点的当前连接标记为事务连接,以便下一次SQL语句也为事务语句时,可以采用同一条数据库连接进行数据库的访问。将数据库连接进行事务连接标记后,数据库代理服务器向匹配的数据库节点发送SQL语句,数据库节点接收到SQL语句后,将该SQL语句转发给通过预设的路由规则找到的对应的数据库,对应的数据库接收到SQL语句,设置于数据库中的执行单元806在数据库当前的连接上执行SQL语句。当事务SQL语句在对应的数据库当前连接上执行完毕后,连接回收单元807将数据库的当前连接进行回收至数据库连接池,提高连接的复用率。
[0060]若判断单元804判断获知需要发送的SQL语句为非事务语句时,不对对应的数据库当前的连接进行标记,直接将SQL语句发送匹配的数据库节点,数据库节点接收到SQL语句后,将该SQL语句转发给通过预设的路由规则找到的对应的数据库,执行单元806在对应的数据库在当前连接上执行SQL语句。
[0061]需要说明的是,在数据库代理服务器将客户端发送的SQL语句发送给对应的数据库节点前,权限验证单元805还会进行客户端对数据库访问的权限验证,只有客户端对数据库访问的权限验证通过时,才能对数据库进行访问,即只有客户端对数据库访问的权限验证通过时,数据库代理服务器才会将客户端发送的SQL语句传输给匹配的数据库节点,然后数据库节点将SQL语句转发给该数据库节点中对应的数据库。
[0062]执行结果合并单元808主要用于合并多个目标数据库节点返回的执行结果,并将合并后的执行结果反馈给客户端。
[0063]具体的,当目标数据库节点只有一个时,数据库节点直接将SQL语句的执行结果返回给数据库代理服务器,数据库代理服务器将执行结果反馈给客户度;当目标数据库节点为多个时,多个目标数据库节点将各自的SQL语句的执行结果返回给数据库代理服务器,数据库代理服务器接收到多个目标数据库节点发送的执行结果,设置于其中的执行结果合并单元808对多个执行结果进行合并封装,并将合并封装的结果反馈给客户端。
[0064]本发明提供的一种基于数据库节点的数据访问方法及系统,通过将从客户端发送的数据库访问请求消息中解析出来的SQL语句发送给多个数据库节点,在多个数据库节点上执行SQL语句,并将多个数据库节点返回的执行结果合并封装,将合并封装后的执行结果反馈给客户端。通过并行计算的方式检索查询数据,上级管理中心可以将客户端需要访问的SQL语句发送到各数据库节点,各数据库节点根据SQL语句进行检索处理,加快了数据查询的速度;在多个数据库节点上按照条件查询数据,相比现有的集中式数据库在一个数据库中查询数据,提高了数据查询的实时性。
[0065]另外,在上级数据库管理中心中设置多个下级数据库管理中心,解决了上级数据库管理中心的负载和存储空间的问题。
[0066]对于数据库中异常数据的检测,上级数据库管理中心可以定时扫描下级数据库节点的告警数据,将告警数据同步到上级数据库管理中心,上级数据库管理中心可以及时了解下级数据库节点中数据库的数据异常情况,以便及时采取相应的措施。
[0067]以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种基于数据库节点的数据访问方法,其特征在于,包括: 步骤S201、接收客户端发送的数据库访问请求消息,并从所述数据库访问请求消息中提取出待执行的SQL语句; 步骤S202、解析所述SQL语句,并根据预设的匹配规则匹配出与所述解析后的SQL语句匹配的至少一个目标数据库节点; 步骤S203、在所述匹配出的目标数据库节点上执行所述解析后的SQL语句; 步骤S204、合并多个目标数据库节点返回的执行结果,并将合并后的执行结果反馈给客户端。
2.如权利要求1所述的数据访问方法,其特征在于,执行所述步骤S203之前还包括: 判断所述解析后的SQL语句是否为事务语句; 在所述解析后的SQL语句为事务语句的情况下,对数据库当前连接进行事务标记。
3.如权利要求1所述的数据访问方法,其特征在于,执行所述步骤S203之前还包括: 对所述匹配出的所有目标数据库节点进行心跳检测; 所述步骤S203包括: 将所述解析后的SQL语句传输给所述匹配出的目标数据库节点中处于在线状态的数据库节点,并根据预设的路由规则从所述处于在线状态的数据库节点中匹配出与所述解析后的SQL语句对应的数据库,在该数据库的当前连接上执行所述解析后的SQL语句。
4.如权利要求1所述的数据访问方法,其特征在于,执行步骤S203之前还包括: 对客户端的数据库访问权限进行验证; 当客户端的数据库访问权限验证通过时,在所述匹配出的目标数据库节点上执行所述解析后的SQL语句。
5.如权利要求1所述的数据访问方法,其特征在于,执行所述步骤S203之后还包括: 所述解析后的SQL语句为事务语句且在相应的数据库当前连接上执行后,将所述数据库当前连接回收至数据库连接池。
6.一种基于数据库节点的数据访问系统,其特征在于,包括: 请求消息接收单元,用于接收客户端发送的数据库访问请求消息,并从所述数据库访问请求消息中提取出待执行的SQL语句; 节点匹配单元,用于解析所述SQL语句,并根据预设的匹配规则匹配出与所述解析后的SQL语句匹配的至少一个目标数据库节点; 执行单元,用于在所述匹配出的目标数据库节点上执行所述解析后的SQL语句; 执行结果合并单元,用于合并多个目标数据库节点返回的执行结果,并将合并后的执行结果反馈给客户端。
7.如权利要求6所述的数据访问系统,其特征在于,还包括: 判断单元,用于判断所述解析后的SQL语句是否为事务语句; 在所述解析后的SQL语句为事务语句的情况下,对数据库当前连接进行事务标记。
8.如权利要求6所述的数据访问系统,其特征在于,还包括: 心跳检测单元,用于对所述匹配出的所有目标数据库节点进行心跳检测; 所述执行单元用于在所述匹配出的目标数据库节点上执行所述解析后的SQL语句具体包括: 将所述解析后的SQL语句传输给所述匹配出的目标数据库节点中处于在线状态的数据库节点,并根据预设的路由规则从所述处于在线状态的数据库节点中匹配出与所述解析后的SQL语句对应的数据库,在该数据库的当前连接上执行所述解析后的SQL语句。
9.如权利要求6所述的数据访问系统,其特征在于,还包括: 权限验证单元,用于对客户端的数据库访问权限进行验证; 当客户端的数据库访问权限验证通过时,在所述匹配出的目标数据库节点上执行所述解析后的SQL语句。
10.如权利要求6所述的数据访问系统,其特征在于,还包括: 连接回收单元,用于当所述解析后的SQL语句为事务语句且在相应的数据库当前连接上执行后时,将所述数据库当前连接回收至数据库连接池。
【文档编号】G06F17/30GK104331457SQ201410602245
【公开日】2015年2月4日 申请日期:2014年10月31日 优先权日:2014年10月31日
【发明者】王虎 申请人:北京思特奇信息技术股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1