数据库访问的监控方法和装置与流程

文档序号:11286331阅读:236来源:国知局
数据库访问的监控方法和装置与流程

本申请涉及计算机技术领域,尤其涉及一种数据库访问的监控方法和装置。



背景技术:

目前,大部分业务处理的过程都会涉及到对数据库的访问操作,比如:读操作或写操作。一旦数据库访问出错,就会影响正常的业务处理。因此,如何对数据库访问进行监控,以便在业务异常时能够快速定位及处理已成为亟待解决的问题。



技术实现要素:

有鉴于此,本申请提供一种数据库访问的监控方法和装置。

具体地,本申请是通过如下技术方案实现的:

一种数据库访问的监控方法,所述方法包括:

接收针对数据库的访问请求;

判断是否保存有所述访问请求对应的业务信息;

当保存有所述访问请求对应的业务信息时,基于所述业务信息、所述访问请求以及所述访问请求的访问结果输出本次数据库访问的监控日志。

可选的,所述方法还包括:

生成各业务场景的业务信息;

保存各业务场景与其业务信息的对应关系;

所述判断是否保存有所述访问请求对应的业务信息,包括:

判断是否保存有所述访问请求所属的业务场景的业务信息。

可选的,所述生成各业务场景的业务信息,包括:

针对每个业务场景,获取与所述业务场景相关的sql数据文件,将所述sql数据文件和预设的数据库拆分规则作为输入数据输入模板引擎,得到所述业务场景的业务信息。

可选的,所述基于所述业务信息、所述访问请求以及所述访问请求的访问结果输出本次数据库访问的监控日志,包括:

从所述业务信息中解析出所述数据库拆分规则;

根据所述数据库拆分规则和所述访问请求的请求参数确定目标库信息;

将所述业务信息所属的业务场景、所述目标库信息、所述请求参数以及所述访问结果作为本次数据库访问的监控日志输出。

可选的,所述方法还包括:

在配置有数据库中间件时,将所述目标库信息和所述请求参数发送给所述数据库中间件,以供所述数据库中间件进行数据库访问,并通过所述数据库中间件接收所述访问结果。

一种数据库访问的监控装置,所述装置包括:

请求接收单元,接收针对数据库的访问请求;

信息判断单元,判断是否保存有所述访问请求对应的业务信息;

日志输出单元,在保存有所述访问请求对应的业务信息时,基于所述业务信息、所述访问请求以及所述访问请求的访问结果输出本次数据库访问的监控日志。

可选的,所述装置还包括:

信息生成单元,生成各业务场景的业务信息;

信息保存单元,保存各业务场景与其业务信息的对应关系;

所述信息判断单元,判断是否保存有所述访问请求所属的业务场景的业务信息。

可选的,所述信息生成单元,针对每个业务场景,获取与所述业务场景 相关的sql数据文件,将所述sql数据文件和预设的数据库拆分规则作为输入数据输入模板引擎,得到所述业务场景的业务信息。

可选的,所述日志输出单元,从所述业务信息中解析出所述数据库拆分规则,根据所述数据库拆分规则和所述访问请求的请求参数确定目标库信息,并将所述业务信息所属的业务场景、所述目标库信息、所述请求参数以及所述访问结果作为本次数据库访问的监控日志输出。

可选的,所述装置还包括:

数据库访问单元,在配置有数据库中间件时,将所述目标库信息和所述请求参数发送给所述数据库中间件,以供所述数据库中间件进行数据库访问,并通过所述数据库中间件接收所述访问结果。

由以上描述可以看出,本申请在对数据库访问进行监控时,可以结合访问请求所属的业务场景的业务信息、请求参数以及访问结果输出监控日志,从而关联将业务场景和数据库访问,在业务异常时能够通过监控日志实现快速定位和处理,提升用户体验。

附图说明

图1是本申请一示例性实施例示出的一种数据库访问的监控方法的流程图。

图2是本申请一示例性实施例示出的一种用于数据库访问的监控装置的一结构示意图。

图3是本申请一示例性实施例示出的一种数据库访问的监控装置的结构示意图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所 有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。

在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

相关技术中,在对数据库访问进行监控时,通常会为数据库设置独立的监控系统。然而,在这样的实现方式中,数据库访问监控与上层业务完全分离,一旦数据库访问出错,无法实现对异常业务的快速定位和处理。

针对上述问题,本申请提供一种数据库访问的监控方案,可以将数据库访问监控与业务场景相结合,以便在业务异常时,可以通过监控日志实现对异常业务的快速定位和处理。

图1是本申请一示例性实施例示出的一种数据库访问的监控方法的流程图。

请参考图1,所述数据库访问的监控方法可以应用在终端中,所述终端可以包括智能手机、平板电脑、pda(personaldigitalassistant,掌上电脑)、pc机等智能设备。所述数据库访问的监控方法可以理解为所述终端中装载的应用程序(application,app)执行的处理逻辑,包括有以下步骤:

步骤101,接收针对数据库的访问请求。

在本实施例中,所述访问请求包括针对数据库进行读操作或者写操作的 各种业务请求,比如:余额查询请求、转账请求、支付请求等等。所述访问请求通常由用户触发,比如:用户可以通过预设的功能按钮触发所述访问请求,用户也可以通过语音输入的方式触发所述访问请求,本申请对此不作特殊限制。

步骤102,判断是否保存有所述访问请求对应的业务信息。

在本实施例中,所述业务信息与业务场景相对应,可以包括:对应业务场景的sql(structuredquerylanguage,结构化查询语言)数据文件,数据库拆分规则等。其中,所述sql数据文件可以理解为对应业务场景的注释信息,可以包括:sql语句等文件。所述数据库拆分规则可以包括数据库的分库、分表规则等,根据所述访问请求的请求参数和所述数据库拆分规则,可以确定本次访问的目标库信息。所述业务场景通常由应用程序支持的业务功能确定,以支付宝钱包为例,所述业务场景可以包括:转账场景、支付场景等。

可选的,在本申请一个例子中,可以预先生成各业务场景的业务信息,并保存各业务场景与其业务信息的对应关系,比如:应用程序可以在安装后生成各业务场景的业务信息并保存等。

在本实施例中,针对某业务场景,在生成该业务场景的业务信息时,可以先获取与所述业务场景相关的sql数据文件和数据库拆分规则,并通过模板引擎生成所述业务场景的业务信息。具体地,开发人员可以预先设置用于生成业务信息的模板,在生成所述业务信息时,可以将所述sql数据文件和数据库拆分规则作为输入数据输入模板引擎,模板引擎进而可以基于所述预设的模板生成所述业务场景的业务信息。当然,在实际应用中,也可以采用其他的方式生成各业务场景的业务信息,本申请对此不作特殊限制。

基于前述步骤101,在接收到所述访问请求后,可以判断本地是否保存有所述访问请求对应的业务信息,比如:判断是否保存有所述访问请求所属的业务场景的业务信息。当本地保存有所述访问请求对应的业务信息时,可以执行步骤103,当本地未保存所述访问请求对应的业务信息时,可以基于 相关技术中提供的数据库访问监控方案对本地数据库访问进行监控,本申请在此不再一一赘述。

步骤103,当保存有所述访问请求对应的业务信息时,基于所述业务信息、所述访问请求以及所述访问请求的访问结果输出本次数据库访问的监控日志。

在本实施例中,基于前述步骤102,当确定保存有所述访问请求对应的业务信息时,可以基于所述业务信息、所述访问请求以及所述访问请求的访问结果输出本次数据库访问的监控日志。

可选的,在本申请一个例子中,应用程序在接收到所述访问请求后,可以基于所述访问请求进行数据库访问,并在接收到本次访问的访问结果后,输出本次数据库访问的监控日志。在本实施例中,在确定保存有所述访问请求对应的业务信息时,可以先从所述业务信息中解析出数据库拆分规则,然后根据所述数据库拆分规则和所述访问请求中携带的请求参数确定本次访问的目标库信息,所述目标库信息通常包括:本次访问的目标数据库、目标分表等信息,然后基于所述目标库信息进行数据库访问,并接收访问结果。在接收到所述访问结果后,可以将所述业务信息所属的应用场景(即,所述访问请求所属的业务场景)、所述目标库信息、所述访问请求中携带的请求参数以及所述访问结果作为本次数据库访问的监控日志输出。

举例来说,假设所述访问请求为转账请求,对于支付宝钱包而言,在接收到用户输入的转账请求后,如果确定保存有转账场景对应的业务信息,则可以从所述业务信息中解析出数据库拆分规则,并根据所述数据库拆分规则和所述转账请求中携带的请求参数确定目标库信息,比如:根据转账发起账号、目标账号等请求参数和所述数据库拆分规则确定发起账号和目标账号所在的数据库信息。在确定所述数据库信息后,可以基于所述转账请求中携带的转账金额等请求参数以及所述数据库信息进行数据库访问,比如:基于所述转账金额更新所述发起账号和目标账号的余额等,并在访问结束后返回访问结果。支付宝钱包可以在接收到所述访问结果后,将转账场景、发起账号 和目标账号所在的数据库信息、所述转账请求中携带的请求参数(包括有:发起账号、目标账号、转账金额等)以及所述访问结果作为本次数据库访问的监控日志输出。当所述访问结果为访问失败时,相关人员可以根据输出的监控日志快速定位出本次访问的数据库信息,以进行处理。

可选的,在本申请一个例子中,在应用程序配置有数据库中间件时,可以通过所述数据库中间件进行数据库访问,并通过所述数据库中间件接收访问结果。比如:在确定保存有所述访问请求对应的业务信息时,可以先从所述业务信息中解析出数据库拆分规则,然后根据所述数据库拆分规则和所述访问请求中携带的请求参数确定本次访问的目标库信息,然后将所述目标库信息和所述访问请求中携带的请求参数发送给所述数据库中间件,数据库中间件可以根据所述目标库信息和所述访问请求进行数据库访问,无需再次确定目标库信息。当然,在实际实现中,也可以由数据库中间件根据所述数据库拆分规则和所述访问请求中携带的请求参数确定本次访问的目标库信息,本申请对此不作特殊限制。

需要说明的是,在实际实现中,依据相关技术,可以基于dao(dataaccessobject,数据库访问对象)接口进行数据库访问,本申请在此不再一一赘述。

由以上描述可以看出,本申请在对数据库访问进行监控时,可以结合访问请求所属的业务场景的业务信息、请求参数以及访问结果输出监控日志,从而关联将业务场景和数据库访问,在业务异常时能够通过监控日志实现快速定位和处理,提升用户体验。

与前述数据库访问的监控方法的实施例相对应,本申请还提供了数据库访问的监控装置的实施例。

本申请数据库访问的监控装置的实施例可以应用在终端上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在终端的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而 言,如图2所示,为本申请数据库访问的监控装置所在终端的一种硬件结构图,除了图2所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的终端通常根据该终端的实际功能,还可以包括其他硬件,对此不再赘述。

图3是本申请一示例性实施例示出的一种数据库访问的监控装置的结构示意图。

请参考图3,所述数据库访问的监控装置200可以应用在前述图2所示的终端中,包括有:请求接收单元201、信息判断单元202、日志输出单元203、信息生成单元204、信息保存单元205以及数据库访问单元206。

其中,所述请求接收单元201,接收针对数据库的访问请求;

所述信息判断单元202,判断是否保存有所述访问请求对应的业务信息;

所述日志输出单元203,在保存有所述访问请求对应的业务信息时,基于所述业务信息、所述访问请求以及所述访问请求的访问结果输出本次数据库访问的监控日志。

所述信息生成单元204,生成各业务场景的业务信息;

所述信息保存单元205,保存各业务场景与其业务信息的对应关系;

可选的,所述信息判断单元202,判断是否保存有所述访问请求所属的业务场景的业务信息。

可选的,所述信息生成单元204,针对每个业务场景,获取与所述业务场景相关的sql数据文件,将所述sql数据文件和预设的数据库拆分规则作为输入数据输入模板引擎,得到所述业务场景的业务信息。

可选的,所述日志输出单元203,从所述业务信息中解析出所述数据库拆分规则,根据所述数据库拆分规则和所述访问请求的请求参数确定目标库信息,并将所述业务信息所属的业务场景、所述目标库信息、所述请求参数以及所述访问结果作为本次数据库访问的监控日志输出。

所述数据库访问单元206,在配置有数据库中间件时,将所述目标库信息和所述请求参数发送给所述数据库中间件,以供所述数据库中间件进行数 据库访问,并通过所述数据库中间件接收所述访问结果。

上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

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