数据库监控方法及装置与流程

文档序号:26139676发布日期:2021-08-03 14:23阅读:216来源:国知局
数据库监控方法及装置与流程

本申请涉及数据处理技术领域,尤其涉及一种数据库监控方法及装置。



背景技术:

在各种业务应用中,通常应用系统都会部署数据库来存储整个系统的数据,数据库是应用系统的重要组成,因此对数据库的监控十分重要。

现有的数据库监控主要是由数据库管理员(databaseadministrator,简称dba)负责,当生产数据库出现异常时,通常由数据库管理员人工介入,对数据库的健康状况、磁盘日志和性能容量等指标进行检查以及通过awr报告实现问题的定位,然后根据问题原因进行相应的处理;这种方式存在以下缺点:

1、dba的日常的巡检及运维监控,无法及时发现因为系统业务功能、交易量和数据量变化而导致的数据库性能容量问题,难以预测业务对数据库的影响;同时运维存在滞后性,往往是问题出现后才进行人工干预。

2、生产系统存在大量数据库,各应用数据库的系统级配置参数及数据库类型存在差异,如oracle和mysql数据库在系统级参数配置及性能视图上存在较大差异,dba无法以相同的方法或视角进行监控,只能专职某几个系统数据库的运维监控。

3、数据库的监控运维较大的依赖于dba的人工投入和个人经验,同时学习数据库的运维技术的门槛较高,需要对数据库的结构及工作原理需有深入的了解。



技术实现要素:

针对现有技术中的至少一个问题,本申请提出了一种数据库监控方法及装置,能够提高数据库监控的准确性和效率,进而能够提高数据库运行的可靠性。

为了解决上述技术问题,本申请提供以下技术方案:

第一方面,本申请提供一种数据库监控方法,包括:

获取初始监控数据集,该初始监控数据集为预设的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是本申请实施例中的数据库监控方法的第一流程示意图;

图2是本申请实施例中的数据库监控方法的第二流程示意图;

图3是本申请实施例中的数据库监控方法的第三流程示意图;

图4是本申请实施例中的数据库监控方法的第四流程示意图;

图5是本申请实施例中的数据库监控方法的第五流程示意图;

图6是本申请实施例中的数据库监控装置的结构示意图;

图7是本申请应用实例中的数据库监控装置的逻辑示意图;

图8为本申请实施例的电子设备的系统构成示意框图。

具体实施方式

为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

为了便于理解本申请提供的技术方案,下面对本方案的相关内容进行说明。

数据库管理员(databaseadministrator,简称dba),是从事管理和维护数据库管理系统(dbms)的相关工作人员的统称,属于运维工程师的一个分支,主要负责业务数据库从设计、测试到部署交付的全生命周期管理。dba的核心目标是保证数据库管理系统的稳定性、安全性、完整性和高性能。

java数据库连接,(javadatabaseconnectivity,简称jdbc)是java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法;jdbc通常是面向关系型数据库的。

命中率等于sql语句返回的数据行数/访问的数据行数,返回相同的数据行,需访问的数据量越多,命中率越低。

自动负载信息库(automaticworkloadrepository,简称awr),是oracle10g版本推出的新特性。awr是通过对比两次快照(snapshot)收集到的统计信息,来生成报表数据,生成的报表包括多个数据库性能信息。

针对传统数据就监控方法中大量依赖人工操作、个人经验和技术门槛过高等问题,本申请提供一种数据库监控方法及装置,能够提高指标监控数据和风险问题的可预测性,同时能够有效降低数据库监控中人工分析、问题处理的成本和过高的技术准入门槛。

基于此,为了提高数据库监控的准确性和效率,进而提高数据库运行的可靠性,本申请实施例提供一种数据库监控装置,该装置可以是一服务器或客户端设备,所述客户端设备可以包括智能手机、平板电子设备、网络机顶盒、便携式计算机、台式电脑、个人数字助理(pda)、车载设备和智能穿戴设备等。其中,所述智能穿戴设备可以包括智能眼镜、智能手表和智能手环等。

在实际应用中,进行数据库监控的部分可以在如上述内容所述的服务器侧执行,也可以所有的操作都在所述客户端设备中完成。具体可以根据所述客户端设备的处理能力,以及用户使用场景的限制等进行选择。本申请对此不作限定。若所有的操作都在所述客户端设备中完成,所述客户端设备还可以包括处理器。

上述的客户端设备可以具有通信模块(即通信单元),可以与远程的服务器进行通信连接,实现与所述服务器的数据传输。所述服务器可以包括任务调度中心一侧的服务器,其他的实施场景中也可以包括中间平台的服务器,例如与任务调度中心服务器有通信链接的第三方服务器平台的服务器。所述的服务器可以包括单台计算机设备,也可以包括多个服务器组成的服务器集群,或者分布式装置的服务器结构。

所述服务器与所述客户端设备之间可以使用任何合适的网络协议进行通信,包括在本申请提交日尚未开发出的网络协议。所述网络协议例如可以包括tcp/ip协议、udp/ip协议、http协议、https协议等。当然,所述网络协议例如还可以包括在上述协议之上使用的rpc协议(remoteprocedurecallprotocol,远程过程调用协议)、rest协议(representationalstatetransfer,表述性状态转移协议)等。

需要说明的是,本申请公开的数据库监控方法及装置可用于金融技术领域,也可用于除金融技术领域之外的任意领域,本申请公开的数据库监控方法及装置的应用领域不做限定。

具体通过下述各个实施例进行说明。

为了提高数据库监控的准确性和效率,进而提高数据库运行的可靠性,本实施例提供一种执行主体是数据库监控装置的数据库监控方法,该数据库监控装置包括但不限于服务器,如图1所示,该方法具体包含有如下内容:

步骤101:获取初始监控数据集,该初始监控数据集为预设的sql脚本中的多条sql语句在目标数据库中执行后生成的。

具体地,可以定时获取预设的sql脚本在目标数据库中对应的初始监控数据集,例如,每日23点定时获取;所述初始监控数据集包括:多组初始监控数据组,每组初始监控数据组可以为预设的sql脚本中的一条sql语句在目标数据库中执行后生成的,每组初始监控数据组包含有:执行时长、cpu消耗、io消耗和内存消耗数据等监控数据;同一sql语句可以对应多组初始监控数据组并且各组初始监控数据组对应的sql语句执行时间不同。所述目标数据库可以是一个或多个,目标数据库的类型可以不同,如oracle、sqlsever和mysql数据库,能够实现同时对多类数据库的监控,各类数据库对应的sql脚本不同。所述预设的sql脚本可以根据实际业务需要进行设定,可以预先存储有多条sql语句,初始监控数据集可以是一个定时周期内执行一次或多次所述预设的sql脚本后得到的。

步骤102:对所述初始监控数据集进行去重处理,得到各条sql语句各自唯一对应的目标监控数据组。

具体地,若sql语句对应唯一的初始监控数据组,则将该初始监控数据组和执行次数1组成该sql语句的目标监控数据组;若同一sql语句对应多组初始监控数据组,则可以根据预设的监控数据区间和分值关系表,确定初始监控数据组中的各个监控数据各自的得分,根据初始监控数据组中各个监控数据各自的得分及各类监控数据的预设权重,得到该初始监控数据组的总得分,总得分越高,性能越差,将总得分最高的初始监控数据组和所述sql语句对应的初始监控数据组的组数即执行次数组成所述sql语句对应的目标监控数据组,预设权重可根据实际情况进行设置;所述预设的监控数据区间和分值关系表的结构可以如表1所示。

表1

若同一sql语句对应多组初始监控数据组,还可以将同一sql语句对应的各组初始监控数据组分别输入预设的评分模型,确定各组初始监控数据组各自对应的分值,将分值最低的初始监控数据组和所述sql语句的执行次数作为所述sql语句对应的目标监控数据组,所述预设的评分模型可以是预先根据多组历史初始监控数据组及其各自的实际分值对逻辑回归模型进行训练得到的,能够进一步地提高确定目标监控数据组的准确性和智能化程度。

步骤103:根据各条sql语句各自唯一对应的目标监控数据组,确定所述预设的sql脚本中是否存在异常sql语句,若是,则将该异常sql语句输出。

具体地,所述异常sql语句可以表示在目标数据库中执行时,影响任务正常进行和/或数据库正常运行的sql语句。

为了进一步提高数据库监控数据的全面性,进而提高数据监控的准确性,参见图2,在本申请一个实施例中,所述的数据库监控方法,还包括:

步骤201:获取所述目标数据库中的各个数据表中的记录条数并根据各个数据表中的记录条数,确定所述目标数据库中是否存在大表,若是,则根据各组目标监控数据组和所述大表,确定所述预设的sql脚本中是否存在包含有所述大表的表名的异常sql语句。

具体地,可以将记录条数大于记录条数阈值的数据表作为大表,每组目标监控数据组可以包含有sql语句的执行计划,可以从执行计划获得sql语句中包含的表名,判断sql语句中包含的表名是否是大表的表名,若是,则确定该sql语句用于执行大表全量扫描,由于大表全量扫描耗时很长,容易影响任务正常运行,将用于执行大表全量扫描的sql语句作为异常sql语句。

步骤202:若所述预设的sql脚本中存在包含有所述大表的表名的异常sql语句,则将所述异常sql语句输出。

为了进一步提高数据库监控的可靠性,参见图3,在本申请一个实施例中,步骤103包括:

步骤301:根据所述sql语句的访问数据行数和返回数据行数,确定该sql语句的命中率。

具体地,sql语句的命中率=sql语句返回的数据行数/访问的数据行数;例如,返回10行数据,访问了1000行数据,则命中率为10/1000。

步骤302:若所述预设的sql脚本中存在命中率小于命中率阈值的异常sql语句,则将该异常sql语句输出;每组目标监控数据组包括:唯一对应的sql语句的访问数据行数和返回数据行数。

为了进一步提高数据库监控的准确性,参见图4,在本申请一个实施例中,步骤103包括:

步骤401:根据所述sql语句的执行时间和执行次数,得到该sql语句的执行总时长。

具体地,sql语句的执行总时长=sql语句的执行时间×执行次数。

步骤402:若所述预设的sql脚本中存在执行总时长大于执行总时长阈值的异常sql语句,则将该异常sql语句输出;每组目标监控数据组包括:唯一对应的sql语句的执行时间和执行次数。

为了提高数据库监控的准确性和及时性,参见图5,在本申请一个实施例中,所述的数据库监控方法还包括:

步骤501:获取所述目标数据库中的各个数据表的容量指标数据。

具体地,所述容量指标数据可以包含有:数据表对应的会话、死锁、索引和分区等数据中一个或多个。

步骤502:根据指标监控阈值和各个数据表的容量指标数据,确定所述目标数据库中的异常数据表。

具体地,判断所述容量指标数据是否超过指标监控阈值,若是,则确定所述容量指标数据对应的数据表为异常数据表。

步骤503:将所述异常数据表的异常信息输出显示。

具体地,所述异常信息可以包含有:超过指标监控阈值的容量指标数据和所述异常数据表的表名等。

进一步地,可以将所述异常数据表的异常信息和异常sql语句输出至一统一监控运维平台显示,该统一监控运维平台可以是计算机和笔记本等,同时,若目标数据库的个数为多个,可以根据异常数据表和异常sql语句对应的数据库,将异常数据表和异常sql语句发送至不同运维部门的终端设备中。

为了进一步说明本方案,本申请提供一种数据库监控方法的应用实例,具体包含有:

s001:同时采集数据库的临界资源指标数据和性能容量指标数据,临界资源指标数据可以相当于上述初始监控数据组,性能容量指标数据可以相当于上述容量指标数据。

具体地,通过java数据库连接(javadatabaseconnectivity,简称jdbc)方式定时接入多个应用的不同类型的数据库,采集各类数据库的临界资源指标数据和性能容量指标数据,对于oracle数据库来说,临界资源指标数据包括:sql语句的执行次数、执行时长、执行计划、cpu消耗、io消耗和内存消耗等数据,性能容量指标数据包括:序列号数据、数据表的会话、死锁、索引和分区等数据;对于mysql数据库来说,临界资源指标数据包括:sql语句的执行次数、执行时长、最大执行时长、访问的数据行、返回的数据行、影响的数据行、cpu消耗和内存消耗等数据,性能容量指标数据包括:数据表的表数据量和主备同步延时等数据,将采集的数据进行统一的时序化存储。

s002:基于不同数据类型的时序化数据各自对应的模型,对采集的海量时序化数据进行处理,得到不同维度的数据库监控结果,在海量数据中预测、挖掘存在潜在风险问题的临界资源指标数据和性能容量指标数据,进行提前预警,模型主要包含有:

降噪模型:根据生产、测试总结提取的关键字或特定规则,剔除人工操作场景,实现数据降噪处理。对采集到的相同sql语句进行去重处理,即根据处理后的sql语句hash值去除对于未绑定变量的重复语句,同一个语句根据cpu消耗、内存消耗和执行时长的综合情况,保留性能最差的记录,该性能最差的记录可以相当于上述目标监控数据组,可以根据cpu消耗、内存消耗、执行时长和预设的性能开发规范,确定同一sql语句对应的性能最差的记录,预设的性能开发规范可根据实际需要进行设置;可以将去重处理后的目标监控数据组应用于接下来的top级慢sql模型。

生产测试降噪模型:将生产环境对应的临界资源指标数据与测试环境的临界资源指标数据对比,实现测试环境降噪以及提前预警。

一般来说,测试环境的环境质量和数据质量比生产环境要差,所以测试环境的误报率比生产环境高,可以预先应用相同的sql脚本在测试环境中执行,并应用本方案提供的数据库监控方法在测试环境中确定异常sql语句和异常数据表,及时对异常sql语句和异常数据表进行维护调整,避免接下来将异常sql语句和异常数据表引入生成环境中,能够实现数据库异常的提前预警,以及提高数据库运行的可靠性;也可以把生产环境的数据库数据引入到测试环境,在异常sql语句判断的时候,去除因测试环境数据质量问题导致的异常sql误判,比如同一个sql语句在生产环境执行正常,测试环境执行异常,则认定该sql语句在测试环境是正常的,以实现测试环境降噪。

大表全表扫模型:根据获取的执行计划以及表数据量信息,提取涉及大表全表扫描的sql语句进行预警;表数据量信息表示数据表中存储的记录条数,用于判断数据表是否为大表。

隐患数据对象模型:根据采集的性能容量指标数据,实现大表未分区,索引集群因子过大,索引层次、索引数量过多和序列号耗尽等信息的预警;可以根据分区数据确定大表是否分区,索引数据包含有:数据表的索引集群因子、索引层次和索引数量,可以根据索引数据确定数据表的索引集群因子是否过大,索引层次是否过多和索引数量过多;序列号数据可以包含有:序列号开始值、最大值和当前值,可以根据序列号数据确定当前序列号是否耗尽。若数据表满足是大表分区表、索引集群因子过大、索引层次过多和索引数量过多中的至少一个条件,则将该数据表作为异常数据表,输出异常数据表的异常信息;若当前序列号已耗尽,则将当前序列号已耗尽对应的异常信息输出。

top级慢sql模型:可以根据oracle数据库中的sql语句的执行时长、次数和执行计划,确定出高风险及存在潜在隐患的sql语句;可以根据mysql数据库中sql语句访问的数据行和返回的数据行,判断sql语句的命中率及是否为大事务,若sql语句的命中率低于命中率阈值或为大事务,则将该sql语句作为异常sql语句输出。

s003:统一监控运维平台,个性化定制模板和数据分析模型,将各维度的性能容量指标和风险预警信息展示给用户。同时对高风险sql语句进行流转处理、闭环等操作。

从软件层面来说,为了提高数据库监控的准确性和效率,进而提高数据库运行的可靠性,本申请提供一种用于实现所述数据库监控方法中全部或部分内容的数据库监控装置的实施例,参见图6,所述数据库监控装置具体包含有如下内容:

第一获取模块10,用于获取初始监控数据集,该初始监控数据集为预设的sql脚本中的多条sql语句在目标数据库中执行后生成的。

第一确定模块20,用于对所述初始监控数据集进行去重处理,得到各条sql语句各自唯一对应的目标监控数据组。

监控模块30,用于根据各条sql语句各自唯一对应的目标监控数据组,确定所述预设的sql脚本中是否存在异常sql语句,若是,则将该异常sql语句输出。

在本申请一个实施例中,所述的数据库监控装置,还包括:

第二获取模块,用于获取所述目标数据库中的各个数据表中的记录条数并根据各个数据表中的记录条数,确定所述目标数据库中是否存在大表,若是,则根据各组目标监控数据组和所述大表,确定所述预设的sql脚本中是否存在包含有所述大表的表名的异常sql语句。

第二确定模块,用于若所述预设的sql脚本中存在包含有所述大表的表名的异常sql语句,则将所述异常sql语句输出。

在本申请一个实施例中,所述监控模块,包括:

确定单元,用于根据所述sql语句的访问数据行数和返回数据行数,确定该sql语句的命中率。

输出单元,用于若所述预设的sql脚本中存在命中率小于命中率阈值的异常sql语句,则将该异常sql语句输出;每组目标监控数据组包括:唯一对应的sql语句的访问数据行数和返回数据行数。

本说明书提供的数据库监控装置的实施例具体可以用于执行上述数据库监控方法的实施例的处理流程,其功能在此不再赘述,可以参照上述数据库监控方法实施例的详细描述。

为了进一步说明本方案,本申请提供一种数据库监控装置的应用实例,参见图7,在本应用实例中,所述数据库监控装置具体包含有:

指标采集、存储模块:用于采集数据库的各项性能容量指标数据,并将采集的海量性能容量指标数据进行时序化存储;指标采集、存储模块实现的功能可以包含有上述第一获取模块和第二获取模块结合实现的功能。

降噪模块:用于通过降噪模型和生产测试对比模型,剔除干扰噪音,保留有效数据;降噪模块实现的功能可以包含有上述第一确定模块实现的功能。

静态扫描模块:用于根据规范标准,对数据对象以及sql语句进行检查,发现和预警高危静态风险;静态扫描模块实现的功能可以相当于上述监控模块和第二确定模块结合实现的功能。

动态扫描模块:用于应用不同维度的模型对采集的性能容量指标数据进行分析过滤,得到各项风险信息。

监控平台模块:用于将分析后得到的风险及潜在风险信息可视化展示,以及实现风险信息及潜在风险信息的流转闭环。

由上述描述可知,本应用实例提供的数据库监控装置,通过接入应用侧数据库,根据不同的数据库类型采集对应的性能容量指标信息,按应用、数据库类型、采集时间点维度进行持久化的存储;将采集到的临界资源指标数据,通过降噪模块实现冗余数据以及干扰数据的过滤,然后通过静态扫描模块和动态扫描模块对数据进行处理,包括应用大表全表扫模型、隐患数据对象模型和top级慢sql模型等处理,发现风险信息,挖掘潜在风险信息进行提前预警;在运维监控平台中展示各维度的风险信息,实现潜在风险信息进行预警、提醒和流转处理,能够实现对数据库画像的集中监控。

由上述描述可知,本申请提供的数据库监控方法及装置,能够提高数据库监控的准确性和效率,进而能够提高数据库运行的可靠性;具体地,可以实现对数据库画像的集中监控,能够降低数据库运维监控的人工成本、技术准入门槛和不同类型数据库的差异化运维,能够实现多维度的统一监控,能够提高数据库监控的自动化程度,便于接下来对数据库的维护。

从硬件层面来说,为了提高数据库监控的准确性和效率,进而提高数据库运行的可靠性,本申请提供一种用于实现所述数据库监控方法中的全部或部分内容的电子设备的实施例所述电子设备具体包含有如下内容:

处理器(processor)、存储器(memory)、通信接口(communicationsinterface)和总线;其中,所述处理器、存储器、通信接口通过所述总线完成相互间的通信;所述通信接口用于实现所述数据库监控装置以及用户终端等相关设备之间的信息传输;该电子设备可以是台式计算机、平板电脑及移动终端等,本实施例不限于此。在本实施例中,该电子设备可以参照实施例用于实现所述数据库监控方法的实施例及用于实现所述数据库监控装置的实施例进行实施,其内容被合并于此,重复之处不再赘述。

图8为本申请实施例的电子设备9600的系统构成的示意框图。如图8所示,该电子设备9600可以包括中央处理器9100和存储器9140;存储器9140耦合到中央处理器9100。值得注意的是,该图8是示例性的;还可以使用其他类型的结构,来补充或代替该结构,以实现电信功能或其他功能。

在本申请一个或多个实施例中,数据库监控功能可以被集成到中央处理器9100中。其中,中央处理器9100可以被配置为进行如下控制:

步骤101:获取初始监控数据集,该初始监控数据集为预设的sql脚本中的多条sql语句在目标数据库中执行后生成的。

步骤102:对所述初始监控数据集进行去重处理,得到各条sql语句各自唯一对应的目标监控数据组。

步骤103:根据各条sql语句各自唯一对应的目标监控数据组,确定所述预设的sql脚本中是否存在异常sql语句,若是,则将该异常sql语句输出。

从上述描述可知,本申请的实施例提供的电子设备,能够提高数据库监控的准确性和效率,进而提高数据库运行的可靠性。

在另一个实施方式中,数据库监控装置可以与中央处理器9100分开配置,例如可以将数据库监控装置配置为与中央处理器9100连接的芯片,通过中央处理器的控制来实现数据库监控功能。

如图8所示,该电子设备9600还可以包括:通信模块9110、输入单元9120、音频处理器9130、显示器9160、电源9170。值得注意的是,电子设备9600也并不是必须要包括图8中所示的所有部件;此外,电子设备9600还可以包括图8中没有示出的部件,可以参考现有技术。

如图8所示,中央处理器9100有时也称为控制器或操作控件,可以包括微处理器或其他处理器装置和/或逻辑装置,该中央处理器9100接收输入并控制电子设备9600的各个部件的操作。

其中,存储器9140,例如可以是缓存器、闪存、硬驱、可移动介质、易失性存储器、非易失性存储器或其它合适装置中的一种或更多种。可储存上述与失败有关的信息,此外还可存储执行有关信息的程序。并且中央处理器9100可执行该存储器9140存储的该程序,以实现信息存储或处理等。

输入单元9120向中央处理器9100提供输入。该输入单元9120例如为按键或触摸输入装置。电源9170用于向电子设备9600提供电力。显示器9160用于进行图像和文字等显示对象的显示。该显示器例如可为lcd显示器,但并不限于此。

该存储器9140可以是固态存储器,例如,只读存储器(rom)、随机存取存储器(ram)、sim卡等。还可以是这样的存储器,其即使在断电时也保存信息,可被选择性地擦除且设有更多数据,该存储器的示例有时被称为eprom等。存储器9140还可以是某种其它类型的装置。存储器9140包括缓冲存储器9141(有时被称为缓冲器)。存储器9140可以包括应用/功能存储部9142,该应用/功能存储部9142用于存储应用程序和功能程序或用于通过中央处理器9100执行电子设备9600的操作的流程。

存储器9140还可以包括数据存储部9143,该数据存储部9143用于存储数据,例如联系人、数字数据、图片、声音和/或任何其他由电子设备使用的数据。存储器9140的驱动程序存储部9144可以包括电子设备的用于通信功能和/或用于执行电子设备的其他功能(如消息传送应用、通讯录应用等)的各种驱动程序。

通信模块9110即为经由天线9111发送和接收信号的发送机/接收机9110。通信模块(发送机/接收机)9110耦合到中央处理器9100,以提供输入信号和接收输出信号,这可以和常规移动通信终端的情况相同。

基于不同的通信技术,在同一电子设备中,可以设置有多个通信模块9110,如蜂窝网络模块、蓝牙模块和/或无线局域网模块等。通信模块(发送机/接收机)9110还经由音频处理器9130耦合到扬声器9131和麦克风9132,以经由扬声器9131提供音频输出,并接收来自麦克风9132的音频输入,从而实现通常的电信功能。音频处理器9130可以包括任何合适的缓冲器、解码器、放大器等。另外,音频处理器9130还耦合到中央处理器9100,从而使得可以通过麦克风9132能够在本机上录音,且使得可以通过扬声器9131来播放本机上存储的声音。

上述描述可知,本申请的实施例提供的电子设备,能够提高数据库监控的准确性和效率,进而提高数据库运行的可靠性。

本申请的实施例还提供能够实现上述实施例中的数据库监控方法中全部步骤的一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中的数据库监控方法的全部步骤,例如,所述处理器执行所述计算机程序时实现下述步骤:

步骤101:获取初始监控数据集,该初始监控数据集为预设的sql脚本中的多条sql语句在目标数据库中执行后生成的。

步骤102:对所述初始监控数据集进行去重处理,得到各条sql语句各自唯一对应的目标监控数据组。

步骤103:根据各条sql语句各自唯一对应的目标监控数据组,确定所述预设的sql脚本中是否存在异常sql语句,若是,则将该异常sql语句输出。

从上述描述可知,本申请实施例提供的计算机可读存储介质,能够提高数据库监控的准确性和效率,进而提高数据库运行的可靠性。

本申请中上述方法的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。相关之处参见方法实施例的部分说明即可。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

本申请中应用了具体实施例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

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