CN113127505A - 结构化查询语言sql系统的监控方法、装置及电子设备 - Google Patents
结构化查询语言sql系统的监控方法、装置及电子设备 Download PDFInfo
- Publication number
- CN113127505A CN113127505A CN202110534846.3A CN202110534846A CN113127505A CN 113127505 A CN113127505 A CN 113127505A CN 202110534846 A CN202110534846 A CN 202110534846A CN 113127505 A CN113127505 A CN 113127505A
- Authority
- CN
- China
- Prior art keywords
- sql
- connection
- client
- operation result
- statement
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 61
- 238000012544 monitoring process Methods 0.000 title claims abstract description 52
- 230000002159 abnormal effect Effects 0.000 claims abstract description 56
- 238000012806 monitoring device Methods 0.000 claims abstract description 6
- 238000012545 processing Methods 0.000 claims description 28
- 238000004590 computer program Methods 0.000 claims description 11
- 230000005856 abnormality Effects 0.000 claims description 10
- 238000004458 analytical method Methods 0.000 claims description 2
- 230000008569 process Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 4
- 238000013507 mapping Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000004806 packaging method and process Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000009545 invasion Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/302—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请实施例提供了一种结构化查询语言SQL系统的监控方法、装置及电子设备,方法包括:通过连接,向SQL数据库发送SQL语句;通过连接,获取针对SQL语句的运行结果;当运行结果指示SQL系统中存在异常时,利用连接关联的异常拦截器,对运行结果进行解析,得到SQL系统的异常信息。应用本申请实施例的技术方案,能够拦截发送的SQL语句,或拦截接收的运行结果,可以对整个SQL系统进行监控,无需封装所有相关的SQL语句操作,降低了代码侵入性,提高了SQL系统的监控灵活性。
Description
技术领域
本申请涉及客户端侧监控的技术领域,特别是涉及一种结构化查询语言SQL系统的监控方法、装置及电子设备。
背景技术
SQL(结构化查询语言,Structured Query Language)数据库的使用非常广泛,为了更加清楚的了解SQL数据库调用的详细状态,需要对SQL系统的调用情况进行监控。SQL系统包括客户端、SQL数据库、客户端与SQL数据库之间的连接等。
目前,为了解决上述问题,多采用代理模式的SQL系统的监控方法,具体为:代理设备内部封装所有相关的SQL语句操作,在发送SQL语句之前记录发送时间,SQL数据库返回运行结果后,对监控数据进行收集。
这种SQL系统的监控方法,代码侵入性太大。一旦更换SQL数据库的连接池,或者更换表结构到对象之间的映射方式,代理设备内部的实现码也需要同步调整。
发明内容
本申请实施例的目的在于提供一种SQL系统的监控方法、装置及电子设备,以降低代码侵入性,提高SQL系统的监控灵活性。具体技术方案如下:
第一方面,本申请实施例提供了一种SQL系统的监控方法,应用于客户端,所述客户端上设置有异常拦截器,所述异常拦截器与所述客户端和SQL数据库之间的连接关联,所述方法包括:
通过所述连接,向所述SQL数据库发送SQL语句;
通过所述连接,获取针对所述SQL语句的运行结果;
当所述运行结果指示所述SQL系统中存在异常时,利用所述连接关联的所述异常拦截器,对所述运行结果进行解析,得到所述SQL系统的异常信息。
可选的,所述客户端设置有语句拦截器,所述语句拦截器与所述客户端和SQL数据库之间的连接关联;所述方法还包括:
在向所述SQL数据库发送SQL语句之前,利用所述连接关联的所述语句拦截器,记录所述SQL系统的第一系统时间;
在获取到所述运行结果之后,利用所述连接关联的所述语句拦截器,记录所述SQL系统的第二系统时间;
根据所述第一系统时间和所述第二系统时间,确定所述SQL系统的运行状态。
可选的,所述通过所述连接,获取针对所述SQL语句的运行结果的步骤,包括:
若当前时刻通过所述连接未接收到所述SQL数据库反馈的运行结果,且所述第一系统时间与所述当前时刻之间的时间差超过预设等待时长,则确定通过所述连接,获取到指示所述SQL系统中存在网络超时的运行结果。
可选的,所述方法还包括:
当利用所述连接关联的所述异常拦截器,得到指示所述SQL系统中存在网络超时的异常信息后,切断所述连接,并与所述SQL数据库建立新的连接。
可选的,所述根据所述第一系统时间和所述第二系统时间,确定所述SQL系统的运行状态的步骤,包括:
计算所述第一系统时间与所述第二系统时间之间的差值,作为所述SQL语句的处理延迟;
根据预设统计时长内多条所述SQL语句的处理延迟,确定所述SQL系统的SQL语句处理速率。
可选的,所述通过所述连接,获取针对所述SQL语句的运行结果的步骤,包括:
通过所述连接,接收所述SQL数据库反馈的所述SQL语句的运行结果;
若所述运行结果中包括预设错误码,则确定获取到指示所述SQL系统存在异常的运行结果。
第二方面,本申请实施例提供了一种SQL系统的监控装置,应用于客户端,所述客户端上设置有异常拦截器,所述异常拦截器与所述客户端和SQL数据库之间的连接关联,所述装置包括:
发送单元,用于通过所述连接,向所述SQL数据库发送SQL语句;
获取单元,用于通过所述连接,获取针对所述SQL语句的运行结果;
解析单元,用于当所述运行结果指示所述SQL系统中存在异常时,利用所述连接关联的所述异常拦截器,对所述运行结果进行解析,得到所述SQL系统的异常信息。
可选的,所述客户端设置有语句拦截器,所述语句拦截器与所述客户端和SQL数据库之间的连接关联;所述装置还包括:
第一记录单元,用于在向所述SQL数据库发送SQL语句之前,利用所述连接关联的所述语句拦截器,记录所述SQL系统的第一系统时间;
第二记录单元,用于在获取到所述运行结果之后,利用所述连接关联的所述语句拦截器,记录所述SQL系统的第二系统时间;
确定单元,用于根据所述第一系统时间和所述第二系统时间,确定所述SQL系统的运行状态。
可选的,所述获取单元,具体用于:
若当前时刻通过所述连接未接收到所述SQL数据库反馈的运行结果,且所述第一系统时间与所述当前时刻之间的时间差超过预设等待时长,则确定通过所述连接,获取到指示所述SQL系统中存在网络超时的运行结果。
可选的,所述装置还包括:
切换单元,用于当利用所述连接关联的所述异常拦截器,得到指示所述SQL系统中存在网络超时的异常信息后,切断所述连接,并与所述SQL数据库建立新的连接。
可选的,所述确定单元,具体用于:
计算所述第一系统时间与所述第二系统时间之间的差值,作为所述SQL语句的处理延迟;
根据预设统计时长内多条所述SQL语句的处理延迟,确定所述SQL系统的SQL语句处理速率。
可选的,所述获取单元,具体用于:
通过所述连接,接收所述SQL数据库反馈的所述SQL语句的运行结果;
若所述运行结果中包括预设错误码,则确定获取到指示所述SQL系统存在异常的运行结果。
第三方面,本申请实施例提供了一种电子设备,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器被所述机器可执行指令促使:实现第一方面提供的任一SQL系统的监控方法步骤。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现第一方面提供的任一SQL系统的监控方法步骤。
本申请实施例中还提供了一种计算机程序,当其在计算机上运行时,使得计算机执行上述任一所述的SQL系统的监控方法步骤。
本申请实施例有益效果:
本申请实施例提供的技术方案中,在客户端和SQL数据库之间的连接上关联一个异常拦截器,利用该异常拦截器对运行结果进行解析,得到SQL系统的异常信息。本申请实施例中,只需拦截发送的SQL语句,以及接收的运行结果,就可以对整个SQL系统进行监控,无需封装所有相关的SQL语句操作,降低了代码侵入性,提高了SQL系统的监控灵活性。
当然,实施本申请的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
图1为本申请实施例提供的SQL系统的一种结构图;
图2为本申请实施例提供的SQL系统的监控方法的第一种流程示意图;
图3为本申请实施例提供的SQL系统的监控方法的第二种流程示意图;
图4为本申请实施例提供的SQL系统的监控方法的第三种流程示意图;
图5为本申请实施例提供的SQL系统的监控方法的第四种流程示意图;
图6为本申请实施例提供的SQL系统的监控装置的一种结构示意图;
图7为本申请实施例提供的电子设备的一种结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为便于理解,下面对本申请实施例中出现的词语进行解释说明。
SQL系统,包括客户端和SQL数据库。客户端为用户设备。用户可以通过客户端访问SQL数据库,获取到需要的SQL语句的运行结果。
目前,公司内部的SQL服务,都有比较完善的监控,但是仅涵盖了SQL数据库(如MySQL数据库)的指标,无法监控客户端到SQL之间的网络问题和应用程序自身的问题。
此外,常规的客户端侧的监控方案的做法是代理模式,相当于代理内部封装所有相关的SQL语句操作,代理内部对监控数据进行收集。这种方式的缺点是代码侵入性太大,一旦更换数据库连接池,或者更换表结构到对象之间的映射方式,代理内部实现码也需要同步进行调整。
为解决上述问题,本申请实施例中,客户端与SQL数据库间建立连接,该连接又可以称为Connection。创建好Connection之后,客户端可以发送用户名和密码等给SQL数据库。SQL数据库对根据用户名和密码等对客户端进行认证。在对客户端认证通过后,客户端就可以通过这个Connection将select、update等SQL语句发送给SQL数据库。
本申请实施例中,在该Connection上关联拦截器,如图1所示。客户端上可以设置一个或多个拦截器,图1中仅示出了拦截器1和拦截器2这两个拦截器为例进行说明,并不做限定。
本申请实施例中,利用Connection关联的拦截器,对客户端、SQL数据库以及二者之间的网络进行监控,得到相应的监控信息。这里,利用拦截器直接对连接进行拦截,对业务代码无任何影响。使用本申请实施例提供的技术方案,对不同的SQL系统进行监控时,只需调整下创建连接的配置,就可以获取到上述监控信息。本申请实施例提供的技术方案,使用简洁、对业务无感知、涵盖了整个请求链路。
另外,无论使用任何数据库连接池、任何数据库表结构到对象之间的映射框架(Object Relational Mapping,ORM),最终都要通过连接,发送SQL语句以及接收执行结果。因此,本申请实施例提供的技术方案可以支持任何数据库连接池和ORM。
具体可参见图2,图2为本申请实施例提供的SQL系统的监控方法的第一种流程示意图,该方法应用于客户端,客户端上设置有异常拦截器,异常拦截器可以由图1中的拦截器1表示,异常拦截器与客户端和SQL数据库之间的连接关联,该方法包括如下步骤:
步骤S21,通过连接,向SQL数据库发送SQL语句;
步骤S22,通过连接,获取针对SQL语句的运行结果;
步骤S23,当运行结果指示SQL系统中存在异常时,利用连接关联的异常拦截器,对运行结果进行解析,得到SQL系统的异常信息。
本申请实施例提供的技术方案中,在客户端和SQL数据库之间的连接上关联一个异常拦截器,利用异常拦截器拦截发送的SQL语句,或拦截接收的运行结果,实现对整个SQL系统的监控。本申请实施例中,通过在客户端和SQL数据库之间的连接上关联一个异常拦截器,对发送的SQL语句或接收的运行结果进行拦截,就可以使得对整个SQL系统的异常信息监控,无需封装所有相关的SQL语句操作,降低了代码侵入性,提高了SQL系统的监控灵活性。
另外,本申请实施例中,在发送SQL语句之后的任何阶段,如果SQL系统发生了异常,异常拦截器均可以截取到相应的异常信息,这便可以收集SQL语句执行过程中任何阶段的异常信息,可以实现对更为全面的获取到SQL系统的异常信息,进而尽快的发现SQL系统中存在的异常。
上述步骤S21中,当用户想要调用SQL数据库时,用户向客户端输入SQL语句,客户端接收到用户输入的SQL语句后,通过客户端和SQL数据库之间的连接,向SQL数据库发送该SQL语句。
可以理解的是,异常拦截器与客户端和SQL数据库之间的连接关联。因此,客户端在通过客户端和SQL数据库之间的连接向SQL数据库发送该SQL语句时,SQL语句流经异常拦截器,但异常拦截器并未对SQL语句进行任何处理。
上述步骤S22中,在客户端通过客户端和SQL数据库之间的连接向SQL数据库发送SQL语句之后,通过客户端和SQL数据库之间的连接,获取SQL语句的运行结果。该运行结果可以为SQL数据库生成的,也可以为客户端自身生成的。对此进行限定。
例如,SQL数据库通过客户端和SQL数据库之间的连接,接收客户端发送的SQL语句,运行该SQL语句,得到该SQL语句的运行结果,并将该SQL语句的运行结果反馈给客户端。客户端通过客户端和SQL数据库之间的连接,接收SQL数据库反馈的SQL语句的运行结果。
上述情况中,如果在运行该SQL语句过程中出现异常,SQL数据库向客户端反馈的运行结果会携带该异常对应的预设错误码,以便客户端根据运行结果中包括预设错误码,则确定获取到指示SQL系统存在异常的运行结果,进而基于预设错误码,确定SQL系统存在的异常信息。
上述步骤S23中,当客户端获取到的运行结果指示SQL系统中存在异常时,客户端利用客户端和SQL数据库之间的连接相关联的异常拦截器,对运行结果进行解析,得到SQL系统的异常信息。其中,异常信息可以用于指出SQL系统发生异常的原因和发生异常的模块。异常信息可以包括但不限于:网络超时、服务端执行SQL失败、SQL语法有问题等。
可以理解的是,客户端在通过客户端和SQL数据库之间的连接获取SQL语句的运行结果时,运行结果流经异常拦截器。当运行结果指示SQL系统中存在异常时,如运行结果中包括预设的错误码时,异常拦截器对该运行结果进行解析,得到SQL系统的异常信息。
若运行结果指示SQL系统正常时,即运行结果中不包括预设的错误码,则异常拦截器可以对该运行结果不做任何处理。
本申请实施例中,上述SQL系统的异常信息为SQL系统的一项监控指标。
基于上述SQL系统的监控方法,本申请实施例还提供了一种SQL系统的监控方法,参见图3,图3为本申请实施例提供的一种SQL系统的监控方法的第二种流程示意图,该方法应用于客户端,客户端上还可以设置有语句拦截器,语句拦截器可以由图1中的拦截器2表示,语句拦截器与客户端和SQL数据库之间的连接关联,该方法还可以包括如下步骤:
步骤S31,在向SQL数据库发送SQL语句之前,利用连接关联的语句拦截器,记录SQL系统的第一系统时间;
步骤S32,在获取到运行结果之后,利用连接关联的语句拦截器,记录SQL系统的第二系统时间;
步骤S33,根据第一系统时间和第二系统时间,确定SQL系统的运行状态。
本申请实施例提供的技术方案中,在客户端和SQL数据库之间的连接上关联一个语句拦截器,利用语句拦截器,拦截发送的SQL语句,或拦截接收的运行结果,实现对整个SQL系统的监控。本申请实施例中,通过在客户端和SQL数据库之间的连接上关联一个语句拦截器,对发送的SQL语句或接收的运行结果进行拦截,就可以使得对整个SQL系统的正常信息监控,无需封装所有相关的SQL语句操作,降低了代码侵入性,提高了SQL系统的监控灵活性。
本申请实施例中,对语句拦截器和异常拦截器中的信息汇总,得到的监控信息。该汇总得到的监控信息可以完整的覆盖到客户端、SQL数据库及二者之间的网络状况。
上述步骤S31中,在客户端向SQL数据库发送SQL语句时,利用与客户端和SQL数据库的连接相关联的语句拦截器,记录SQL系统中的当前时刻,作为SQL系统的第一系统时间。
可以理解的是,语句拦截器与客户端和SQL数据库之间的连接关联。因此,客户端接收到用户输入的SQL语句后,该SQL语句流经语句拦截器,进而通过客户端和SQL数据库之间的连接,发送给SQL数据库。SQL语句流经语句拦截器时,语句拦截器记录SQL系统中的当前时刻,作为SQL系统的第一系统时间。
上述步骤S32中,在客户端通过客户端和SQL数据库之间的连接,向SQL数据库发送SQL语句之后,通过客户端和SQL数据库之间的连接,获取SQL系统的运行结果。客户端在获取SQL系统的运行结果时,利用与客户端和SQL数据库的连接相关联的语句拦截器,记录SQL系统中的当前时刻,作为SQL系统的第二系统时间。
可以理解的是,客户端在获取SQL系统的运行结果时,运行结果流经语句拦截器。而在运行结果流经语句拦截器时,语句拦截器记录SQL系统中的当前时刻,作为SQL系统的第二系统时间。
上述步骤S33中,客户端根据SQL系统的语句拦截器中记录的第一系统时间和第二系统时间,确定SQL系统的运行状态。
SQL系统的运行状态可以为SQL系统的一项监控指标。SQL系统的运行状态可以包括但不限于:累计处理成功的请求数、处理成功的请求速率、累计异常的请求数、异常的请求速率等。其中,处理成功的请求指的是:发送了SQL语句,并获取到该SQL语句的运行结果,则该SQL语句处理成功,记录为一次处理成功的请求。异常的请求指的是:发送了SQL语句,但获取到该SQL语句的运行结果指示SQL系统中存在异常,则该SQL语句处理异常,记录为一次异常的请求。
在本申请的一个实施例中,客户端计算第一系统时间与第二系统时间之间的差值,作为SQL语句的处理延迟,根据预设统计时长内多条SQL语句的处理延迟,确定SQL系统的SQL语句处理速率。
其中,预设统计时长可以根据实际需求进行设定。例如,预设统计时长可以为1分钟、1天、1个星期、1个月等。上述SQL语句的处理延迟可以理解为,一次处理成功的请求所消耗的时长。SQL语句处理速率可以为每秒成处理成功的请求的数量,也可以为预设统计时长内处理成功的请求的总数量。该SQL语句处理速率可以作为SQL系统的运行状态。
基于上述SQL语句处理速率,可以很好的获知当前SQL系统的运行状态是否良好。SQL语句处理速率越大,表示SQL系统的运行状态越好。
本申请实施例中,客户端和SQL数据库之间的连接关联了异常拦截器和语句拦截器。在设置异常拦截器和语句拦截器时,可以将语句拦截器设置在异常拦截器之上。这种情况下,客户端通过客户端和SQL数据库之间的连接,向SQL数据库发送SQL语句时,SQL语句先流经语句拦截器,再流经异常拦截器,之后,发送给SQL数据库。同理,客户端通过客户端和SQL数据库之间的连接,获取运行结果时,运行结果先流经异常拦截器,再流经语句拦截器,之后反馈给用户。
在设置异常拦截器和语句拦截器时,还可以将异常拦截器设置在语句拦截器之上。这种情况下,客户端通过客户端和SQL数据库之间的连接,向SQL数据库发送SQL语句时,SQL语句先流经异常拦截器,再流经语句拦截器。同理,客户端通过客户端和SQL数据库之间的连接,获取运行结果时,运行结果先流经语句拦截器,再流经异常拦截器,之后反馈给用户。
本申请实施例对异常拦截器和语句拦截器设置结果不做限定。
基于上述SQL系统的监控方法,本申请实施例还提供了一种SQL系统的监控方法。参见图4,图4为本申请实施例提供的SQL系统的监控方法的第三种流程示意图,步骤S22可以细化为如下步骤S221:
步骤S221,若当前时刻通过连接未接收到SQL数据库反馈的运行结果,且第一系统时间与当前时刻之间的时间差超过预设等待时长,则确定通过连接,获取到指示SQL系统中存在网络超时的运行结果。
本申请实施例提供的技术方案中,在客户端中设置预设等待时长。基于预设等待时长,便于对客户端和SQL数据库间的网络进行监控,确定SQL系统中是否存在网络超时。
上述步骤S221中,若从发送SQL语句至当前时刻,客户端一直未接收到SQL数据库反馈的运行结果,则客户端判断当前第一系统时间与当前时刻之间的时间差是否超过预设等待时长。
若当前第一系统时间与当前时刻之间的时间差未超过预设等待时长,则客户端继续等待接收SQL数据库反馈的运行结果,并判断当前第一系统时间与当前时刻之间的时间差是否超过预设等待时长。
若当前第一系统时间与当前时刻之间的时间差超过预设等待时长,则客户端可确定SQL系统中存在网络超时的异常,生成指示SQL系统中存在网络超时的运行结果,并通过客户端和SQL数据库间的连接,对该运行结果进行处理。
例如,若从发送SQL语句至当前时刻,客户端的操作系统一直未接收到SQL数据库反馈的运行结果,则操作系统判断当前第一系统时间与当前时刻之间的时间差是否超过预设等待时长。若当前第一系统时间与当前时刻之间的时间差超过预设等待时长,则操作系统生成指示SQL系统中存在网络超时的运行结果,并通过客户端和SQL数据库间的连接,将运行结果由操作系统上传至客户端的上层应用。
本申请实施例中,预设等待时长可以根据实际需求进行设定,例如,预设等待时长可以为3秒、4秒、5秒等,对此不作具体限定。
在图4所示的实施例的基础上,本申请实施例还提供了一种SQL系统的监控方法。参见图5,图5为本申请实施例提供的SQL系统的监控方法的第四种流程示意图,该方法还可以包括如下步骤:
步骤S24,当利用连接关联的异常拦截器,得到指示SQL系统中存在网络超时的异常信息后,切断连接,并与SQL数据库建立新的连接。
本申请实施例提供的技术方案中,在当前时刻客户端得到SQL系统存在网络超时的异常信息的情况下,客户端切断与SQL数据库之间的连接,并与SQL数据库建立新的连接,从而使客户端能够访问SQL数据库。
上述步骤S24中,当客户端利用异常拦截器得到指示SQL系统中存在网络超时的异常信息后,可确定客户端与SQL数据库间的连接存在故障,通过该连接,客户端无法正常访问SQL数据库。因此,客户端切断当前其与SQL数据库间的连接,并与SQL数据库建立新的连接,以便通过该新的连接,正常访问SQL数据库。
在本申请的一个实施例中,当客户端利用异常拦截器得到指示SQL系统中存在网络超时的异常信息后,可直接切断当前其与SQL数据库间的连接,并与SQL数据库建立新的连接,以保证后续正常访问SQL数据库,快速得到需要的SQL语句的运行结果。
在本申请的另一个实施例中,当客户端利用异常拦截器得到指示SQL系统中存在网络超时的异常信息后,客户端通过客户端与SQL数据库间的连接,可连续向SQL数据库发送预设数量个SQL语句。若利用该连接关联的异常拦截器,均得到这预设数量个SQL语句对应的、指示SQL系统中存在网络超时的异常信息,则客户端再切断当前其与SQL数据库间的连接,并与SQL数据库建立新的连接,以保证后续正常访问SQL数据库,快速得到需要的SQL语句的运行结果。
否则,客户端可认为:利用该连接关联的异常拦截器,得到某个SQL语句对应的指示SQL系统中存在网络超时的异常信息,为由网络抖动等因素导致的偶然事件,客户端与SQL数据库间的连接正常,不需要切断该连接,节约客户端与SQL数据库间的连接资源。
一个可选的实施例中,客户端中可以设置连接池。连接池用于对客户端与SQL数据库间的连接进行管理。
异常拦截器得到指示SQL系统中存在网络超时的异常信息后,连接池获取到该异常信息,并通过客户端与SQL数据库间的该连接,连续向SQL数据库发送预设数量个SQL语句。若利用该连接关联的异常拦截器,均得到这预设数量个SQL语句对应的、指示SQL系统中存在网络超时的异常信息,则连接池切断当前客户端与SQL数据库间的该连接,并重新建立客户端与SQL数据库间的连接。否则,连接池不做其他处理。
与上述SQL系统的监控方法对应,本申请实施例还提供了一种SQL系统的监控装置,参见图6,SQL系统的监控装置包括:
发送单元601,用于通过所述连接,向所述SQL数据库发送SQL语句;
获取单元602,用于通过所述连接,获取针对所述SQL语句的运行结果;
解析单元603,用于当所述运行结果指示所述SQL系统中存在异常时,利用所述连接关联的所述异常拦截器,对所述运行结果进行解析,得到所述SQL系统的异常信息。
一个可选的实施例中,所述客户端设置有语句拦截器,所述语句拦截器与所述客户端和SQL数据库之间的连接关联;
这种情况下,上述SQL系统的监控装置还可以包括:
第一记录单元,用于在向所述SQL数据库发送SQL语句之前,利用所述连接关联的所述语句拦截器,记录所述SQL系统的第一系统时间;
第二记录单元,用于在获取到所述运行结果之后,利用所述连接关联的所述语句拦截器,记录所述SQL系统的第二系统时间;
确定单元,用于根据所述第一系统时间和所述第二系统时间,确定所述SQL系统的运行状态。
一个可选的实施例中,获取单元602,具体可以用于:
若当前时刻通过所述连接未接收到所述SQL数据库反馈的运行结果,且所述第一系统时间与所述当前时刻之间的时间差超过预设等待时长,则确定通过所述连接,获取到指示所述SQL系统中存在网络超时的运行结果。
一个可选的实施例中,上述SQL系统的监控装置还可以包括:
切换单元,用于当利用所述连接关联的所述异常拦截器,得到指示所述SQL系统中存在网络超时的异常信息后,切断所述连接,并与所述SQL数据库建立新的连接。
一个可选的实施例中,所述确定单元,具体还可以用于:
计算所述第一系统时间与所述第二系统时间之间的差值,作为所述SQL语句的处理延迟;
根据预设统计时长内多条所述SQL语句的处理延迟,确定所述SQL系统的SQL语句处理速率。
一个可选的实施例中,获取单元602,具体可以用于:
通过所述连接,接收所述SQL数据库反馈的所述SQL语句的运行结果;
若所述运行结果中包括预设错误码,则确定获取到指示所述SQL系统存在异常的运行结果。
本申请实施例提供的技术方案中,在客户端和SQL数据库之间的连接上关联一个异常拦截器,利用该异常拦截器对运行结果进行解析,得到SQL系统的异常信息。本申请实施例中,只需拦截发送的SQL语句,或拦截接收的运行结果,就可以对整个SQL系统进行监控,无需封装所有相关的SQL语句操作,降低了代码侵入性,提高了SQL系统的监控灵活性。
与上述SQL系统的监控方法对应,本申请实施例还提供了一种电子设备,如图7所示,包括处理器701和机器可读存储介质702,机器可读存储介质702存储有能够被处理器701执行的机器可执行指令,处理器被机器可执行指令促使:实现上述SQL系统的监控方法的任一步骤。
机器可读存储介质可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,机器可读存储介质还可以是至少一个位于远离前述处理器的存储装置。
处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本申请提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,计算机程序被处理器执行时实现上述任一SQL系统的监控方法的步骤。
在本申请提供的又一实施例中,还提供了一种计算机程序,当其在计算机上运行时,使得计算机执行上述实施例中任一SQL系统的监控方法步骤。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备、计算机可读存储介质和计算机程序实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的较佳实施例,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本申请的保护范围内。
Claims (10)
1.一种结构化查询语言SQL系统的监控方法,其特征在于,应用于客户端,所述客户端上设置有异常拦截器,所述异常拦截器与所述客户端和SQL数据库之间的连接关联,所述方法包括:
通过所述连接,向所述SQL数据库发送SQL语句;
通过所述连接,获取针对所述SQL语句的运行结果;
当所述运行结果指示所述SQL系统中存在异常时,利用所述连接关联的所述异常拦截器,对所述运行结果进行解析,得到所述SQL系统的异常信息。
2.根据权利要求1所述的方法,其特征在于,所述客户端设置有语句拦截器,所述语句拦截器与所述客户端和SQL数据库之间的连接关联;所述方法还包括:
在向所述SQL数据库发送SQL语句之前,利用所述连接关联的所述语句拦截器,记录所述SQL系统的第一系统时间;
在获取到所述运行结果之后,利用所述连接关联的所述语句拦截器,记录所述SQL系统的第二系统时间;
根据所述第一系统时间和所述第二系统时间,确定所述SQL系统的运行状态。
3.根据权利要求1所述的方法,其特征在于,所述通过所述连接,获取针对所述SQL语句的运行结果的步骤,包括:
若当前时刻通过所述连接未接收到所述SQL数据库反馈的运行结果,且所述第一系统时间与所述当前时刻之间的时间差超过预设等待时长,则确定通过所述连接,获取到指示所述SQL系统中存在网络超时的运行结果。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
当利用所述连接关联的所述异常拦截器,得到指示所述SQL系统中存在网络超时的异常信息后,切断所述连接,并与所述SQL数据库建立新的连接。
5.根据权利要求2所述的方法,其特征在于,所述根据所述第一系统时间和所述第二系统时间,确定所述SQL系统的运行状态的步骤,包括:
计算所述第一系统时间与所述第二系统时间之间的差值,作为所述SQL语句的处理延迟;
根据预设统计时长内多条所述SQL语句的处理延迟,确定所述SQL系统的SQL语句处理速率。
6.根据权利要求1所述的方法,其特征在于,所述通过所述连接,获取针对所述SQL语句的运行结果的步骤,包括:
通过所述连接,接收所述SQL数据库反馈的所述SQL语句的运行结果;
若所述运行结果中包括预设错误码,则确定获取到指示所述SQL系统存在异常的运行结果。
7.一种结构化查询语言SQL系统的监控装置,其特征在于,应用于客户端,所述客户端上设置有异常拦截器,所述异常拦截器与所述客户端和SQL数据库之间的连接关联,所述装置包括:
发送单元,用于通过所述连接,向所述SQL数据库发送SQL语句;
获取单元,用于通过所述连接,获取针对所述SQL语句的运行结果;
解析单元,用于当所述运行结果指示所述SQL系统中存在异常时,利用所述连接关联的所述异常拦截器,对所述运行结果进行解析,得到所述SQL系统的异常信息。
8.根据权利要求7所述的装置,其特征在于,所述客户端设置有语句拦截器,所述语句拦截器与所述客户端和SQL数据库之间的连接关联;所述装置还包括:
第一记录单元,用于在向所述SQL数据库发送SQL语句之前,利用所述连接关联的所述语句拦截器,记录所述SQL系统的第一系统时间;
第二记录单元,用于在获取到所述运行结果之后,利用所述连接关联的所述语句拦截器,记录所述SQL系统的第二系统时间;
确定单元,用于根据所述第一系统时间和所述第二系统时间,确定所述SQL系统的运行状态。
9.一种电子设备,其特征在于,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器被所述机器可执行指令促使:实现权利要求1-6任一所述的方法步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-6任一所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110534846.3A CN113127505B (zh) | 2021-05-17 | 2021-05-17 | 结构化查询语言sql系统的监控方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110534846.3A CN113127505B (zh) | 2021-05-17 | 2021-05-17 | 结构化查询语言sql系统的监控方法、装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113127505A true CN113127505A (zh) | 2021-07-16 |
CN113127505B CN113127505B (zh) | 2024-04-23 |
Family
ID=76782106
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110534846.3A Active CN113127505B (zh) | 2021-05-17 | 2021-05-17 | 结构化查询语言sql系统的监控方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113127505B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114237699A (zh) * | 2022-02-24 | 2022-03-25 | 四川信用通数字科技股份有限公司 | 一种配置脚本的导出方法、装置及存储介质 |
CN114296734A (zh) * | 2021-12-23 | 2022-04-08 | 广东悦伍纪网络技术有限公司 | Sql语句解析方法、装置、计算机设备和存储介质 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050050039A1 (en) * | 2003-08-29 | 2005-03-03 | Dietmar Theobald | System and method for a database access statement interceptor |
CN102902798A (zh) * | 2012-10-11 | 2013-01-30 | 德讯科技股份有限公司 | 一种针对Informix数据库的SQL信息采集和审计方法及其系统 |
CN103338208A (zh) * | 2013-07-16 | 2013-10-02 | 五八同城信息技术有限公司 | 一种sql注入防御的方法和系统 |
CN106294075A (zh) * | 2016-08-17 | 2017-01-04 | 浪潮软件股份有限公司 | 一种对sql进行监控的方法、装置及系统 |
US20180137184A1 (en) * | 2016-11-15 | 2018-05-17 | Spirent Communications, Inc. | Sql interceptor for use with third party data analytics packages |
CN108762966A (zh) * | 2018-06-05 | 2018-11-06 | 中国平安人寿保险股份有限公司 | 系统异常拦截方法、装置、计算机设备及存储介质 |
CN109213789A (zh) * | 2017-07-07 | 2019-01-15 | 北京京东尚科信息技术有限公司 | 一种关于业务sql的分析方法及装置 |
US20190306191A1 (en) * | 2018-03-30 | 2019-10-03 | Beijing Baidu Netcom Science And Technology Co., Ltd. | Sql injection interception detection method and device, apparatus and computer readable medium |
CN111078501A (zh) * | 2019-12-16 | 2020-04-28 | 深圳市随手科技有限公司 | 基于orm的数据库监控方法、系统、服务器及存储介质 |
CN111753320A (zh) * | 2020-06-23 | 2020-10-09 | 深圳壹账通智能科技有限公司 | 基于拦截器的数据加密方法、装置及计算机设备 |
CN112783979A (zh) * | 2021-01-28 | 2021-05-11 | 北京读我网络技术有限公司 | 分布式数据库访问方法、装置及分布式数据库管理系统 |
-
2021
- 2021-05-17 CN CN202110534846.3A patent/CN113127505B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050050039A1 (en) * | 2003-08-29 | 2005-03-03 | Dietmar Theobald | System and method for a database access statement interceptor |
CN102902798A (zh) * | 2012-10-11 | 2013-01-30 | 德讯科技股份有限公司 | 一种针对Informix数据库的SQL信息采集和审计方法及其系统 |
CN103338208A (zh) * | 2013-07-16 | 2013-10-02 | 五八同城信息技术有限公司 | 一种sql注入防御的方法和系统 |
CN106294075A (zh) * | 2016-08-17 | 2017-01-04 | 浪潮软件股份有限公司 | 一种对sql进行监控的方法、装置及系统 |
US20180137184A1 (en) * | 2016-11-15 | 2018-05-17 | Spirent Communications, Inc. | Sql interceptor for use with third party data analytics packages |
CN109213789A (zh) * | 2017-07-07 | 2019-01-15 | 北京京东尚科信息技术有限公司 | 一种关于业务sql的分析方法及装置 |
US20190306191A1 (en) * | 2018-03-30 | 2019-10-03 | Beijing Baidu Netcom Science And Technology Co., Ltd. | Sql injection interception detection method and device, apparatus and computer readable medium |
CN108762966A (zh) * | 2018-06-05 | 2018-11-06 | 中国平安人寿保险股份有限公司 | 系统异常拦截方法、装置、计算机设备及存储介质 |
CN111078501A (zh) * | 2019-12-16 | 2020-04-28 | 深圳市随手科技有限公司 | 基于orm的数据库监控方法、系统、服务器及存储介质 |
CN111753320A (zh) * | 2020-06-23 | 2020-10-09 | 深圳壹账通智能科技有限公司 | 基于拦截器的数据加密方法、装置及计算机设备 |
CN112783979A (zh) * | 2021-01-28 | 2021-05-11 | 北京读我网络技术有限公司 | 分布式数据库访问方法、装置及分布式数据库管理系统 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114296734A (zh) * | 2021-12-23 | 2022-04-08 | 广东悦伍纪网络技术有限公司 | Sql语句解析方法、装置、计算机设备和存储介质 |
CN114237699A (zh) * | 2022-02-24 | 2022-03-25 | 四川信用通数字科技股份有限公司 | 一种配置脚本的导出方法、装置及存储介质 |
CN114237699B (zh) * | 2022-02-24 | 2022-05-03 | 四川信用通数字科技股份有限公司 | 一种配置脚本的导出方法、装置及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113127505B (zh) | 2024-04-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11442803B2 (en) | Detecting and analyzing performance anomalies of client-server based applications | |
EP3379419B1 (en) | Situation analysis | |
US10200506B2 (en) | Method, system and device for monitoring data | |
US7065767B2 (en) | Managed hosting server auditing and change tracking | |
US8352589B2 (en) | System for monitoring computer systems and alerting users of faults | |
US9342438B2 (en) | Method and system for data-triggered dynamic log level control | |
US20210351978A1 (en) | Implementation of compliance settings by a mobile device for compliance with a configuration scenario | |
US20150120914A1 (en) | Service monitoring system and service monitoring method | |
CN113127505B (zh) | 结构化查询语言sql系统的监控方法、装置及电子设备 | |
US11093349B2 (en) | System and method for reactive log spooling | |
US20070168696A1 (en) | System for inventing computer systems and alerting users of faults | |
US20140089493A1 (en) | Minimally intrusive cloud platform performance monitoring | |
US11463362B2 (en) | Dynamic token bucket method adaptive to opaque server limits | |
US11003400B2 (en) | Resource service system, control method, and storage medium | |
WO2015187001A2 (en) | System and method for managing resources failure using fast cause and effect analysis in a cloud computing system | |
EP3188022B1 (en) | System monitoring device | |
KR101824924B1 (ko) | 실시간 부하량에 따른 웹 사이트 성능 측정을 위한 시스템 및 방법 | |
US9645877B2 (en) | Monitoring apparatus, monitoring method, and recording medium | |
US10339019B2 (en) | Packet capturing system, packet capturing apparatus and method | |
US11929869B2 (en) | Scalable and real-time anomaly detection | |
US20170223136A1 (en) | Any Web Page Reporting and Capture | |
CN108880920B (zh) | 云服务管理方法、装置以及电子设备 | |
US11223578B2 (en) | System and control method to direct transmission of event data to one of a plurality of reception queues | |
JP5974905B2 (ja) | 応答時間監視プログラム、方法および応答時間監視装置 | |
JP6488600B2 (ja) | 情報処理システム、プログラム及び情報処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |