一种数据库监控方法及系统的制作方法

文档序号:6524538阅读:251来源:国知局
一种数据库监控方法及系统的制作方法
【专利摘要】本发明公开了一种数据库监控方法及系统,首先根据应用服务器的配置规范,将SQL监控程序嵌入到应用服务器的启动加载目录中,并设置SQL监控程序的监控结果输出格式和输出路径;在启动应用服务器,加载SQL监控程序,根据用户的操作请求执行SQL语句时,截获数据库中JDBC驱动的SQL语句,并对截获的SQL语句进行加工,将截获的SQL语句加工成输出配置模块所配置的输出格式,最后将加工后的SQL语句按照配置的输出路径输出。通过本发明所述的方法及系统,使在没有程序开发背景的操作人员可以快速的获取数据库执行日志,以帮助完成对应用程序的修改、分析、调优等相关工作。
【专利说明】一种数据库监控方法及系统
【技术领域】
[0001]本发明涉及计算机数据处理领域,具体涉及一种数据库监控方法及系统。
【背景技术】
[0002]SQL TRACE是Oracle公司提供的用于进行SQL跟踪的技术手段,在日常的数据库SQL问题诊断和解决中,SQL TRACE的纯Dos界面操作、复杂的SQL命令撰写(包含SQLTRACE的启用、禁用、范围界定等等)让一些无软件程序开发基础或是初级程序开发人员在日常的工作中无法得到应用。
[0003]SQL TRACE—次跟踪可以分为以下几步:
[0004]1、界定需要跟踪的目标范围
[0005]2、使命令启用所需跟踪
[0006]3、经过一段时间后,停止跟踪。此时应该产生了一个跟踪结果文件。
[0007]4、找到跟踪文件,并对其进行格式化,然后阅读或分析
[0008]由于SQL TRACE无简单清晰的界面操作,使用过程全部由命令行进行控制输入输出,操作起来会有一定的难度,只有专业的软件高级开发人员可以利用SQL TRACE进行SQL问题诊断和操作,由于工具周期使用过程复杂,而对于一些软件初级开发人员、测试人员、实施人员却不能应用。SQL TRACE无法通过用户配置的SQL执行效率阈值进行智能输出;t匕如,用户只想查找数据库执行耗时大于8000毫秒的SQL语句,低于8000毫秒的SQL语句不在输出,目的是想分析哪些SQL语句更耗时,以最快的速度解除数据库查询瓶颈,提高查询效率进行系统优化,而使用SQL TRACE并不能够实现该功能。
[0009]此外,SQL TRACE输出的文件类型单一且无法定制,比如用户想把输出结果以某一个扩展名的形式展现出来(比如.HTML、.SQL、DOC、.TXT的类型文件),在SQL TRACE无法定制。SQL TRACE输出的结果中也无法确定某一句SQL语句的执行开始时间、结束时间以及SQL的数据库真正的执行耗时,比如SQL语句“SELECT*FR0M TABLEA"是何时执行、何时结束、合计耗时是多少,在SQL TRACE中无法直观的看到。SQL TRACE输出的结果阅读、分析困难,大多数用户喜欢使用第三方工具Tkprof格式化SQL TRACE产生的文件,以方便可以容易的看懂SQL TRACE生成的内容。SQL TRACE输出的结果是以Session为范围,在生成的SQL文件中无法获取到某个操作部分SQL语言,最后呈现给用户的时候某个范围中所有的SQL,而与业务系统无法取得联系,比如,用户进行业务系统,只想看到审核按钮执行了哪些SQL在SQL TRACE无法单独获取。

【发明内容】

[0010]针对现有技术中存在的缺陷,本发明的目的在于提供一种数据库监控方法及系统,使操作人员不必用于程序开发背景,即可快速获取数据库执行日志。
[0011]为实现上述目的,本发明采用的技术方案为:一种数据库监控方法,包括以下步骤:[0012](I)根据应用服务器的配置规范,将SQL监控程序嵌入到应用服务器的启动加载目录中;所述的SQL监控程序包括输出配置模块、SQL语句截获模块、SQL语句加工模块和监控结果输出模块;
[0013](2)通过输出配置模块设置SQL监控程序的监控结果输出格式和输出路径;
[0014](3)启动应用服务器,加载SQL监控程序,在根据用户的操作请求执行SQL语句时,SQL语句截获模块截获数据库中JDBC驱动的SQL语句;
[0015](4)SQL语句加工模块对截获的SQL语句进行加工,将截获的SQL语句加工成输出配置模块所配置的输出格式;
[0016](5)通过监控结果输出模块将加工后的SQL语句按照输出配置模块所配置的输出路径输出。
[0017]进一步,如上所述的一种数据库监控方法,步骤(2)中,所述的监控结果输出格式包括SQL格式、html格式、word格式和xml格式。
[0018]进一步,如上所述的一种数据库监控方法,步骤(2)中,监控结果输出模块还用于设置SQL监控程序的监控时间阈值。
[0019]再进一步,如上所述的一种数据库监控方法,步骤(4)中,将截获的SQL语句加工成监控结果输出模块所配置的输出格式的具体方式为:
[0020]获取截获的SQL语句的查询参数和运行参数,并将查询参数和运行参数将截获的SQL语句组合成监控结果输出模块所配置的输出格式;所述的运行参数包括SQL语句开始时间和结束时间。
[0021]更进一步,如上所述的一种数据库监控方法,步骤(I)中,所述的应用服务器包括Tomcat服务器和Weblogic服务器。
[0022]一种数据库监控系统,包括:
[0023]监控程序嵌入模块,根据应用服务器的配置规范,将SQL监控程序嵌入到应用服务器的启动加载目录中;所述的SQL监控程序包括输出配置模块、SQL语句截获模块、SQL语句加工模块和监控结果输出模块;其中:
[0024]输出配置模块,用于设置SQL监控程序的监控结果输出格式和输出路径;
[0025]SQL语句截获模块,用于启动应用服务器用于加载SQL监控程序,在根据用户的操作请求执行SQL语句时,SQL语句截获模块截获数据库中JDBC驱动的SQL语句;
[0026]SQL语句加工模块,用于对截获的SQL语句进行加工,将截获的SQL语句加工成输出配置模块所配置的输出格式;
[0027]监控结果输出模块,用于将加工后的SQL语句按照输出配置模块所配置的输出路径输出。
[0028]进一步,所述的一种数据库监控系统,所述的SQL语句加工模块包括:
[0029]参数获取单元,用于获取截获的SQL语句的查询参数和运行参数;所述的运行参数包括SQL语句开始时间和结束时间;
[0030]语句转换单元,用于将查询参数和运行参数将截获的SQL语句组合成监控结果输出模块所配置的输出格式。
[0031]本发明的有益效果在于:通过本发明所述的方法,软件开发人员、软件测试人员、软件性能调优人员、软件实施人员可以快速的获取数据库执行日志,以帮助完成对应用程序的修改、分析、调优等相关工作;使在没有程序开发背景的软件测试人员、软件实施人员能快速使用该工具,用户不用安装、用户不写一句代码、不写一行命令,要求配置简洁、生成的结果一看即懂。
【专利附图】

【附图说明】
[0032]图1为本发明【具体实施方式】中一种数据库监控系统的结构框图;
[0033]图2为本发明【具体实施方式】中一种数据库监控方法的流程图。
【具体实施方式】
[0034]下面结合说明书附图与【具体实施方式】对本发明做进一步的详细说明。
[0035]图1示出了本发明【具体实施方式】中一种数据库监控系统的结构框图,该系统包括监控程序嵌入模块11、输出配置模块12、SQL语句截获模块13、SQL语句加工模块14和监控结果输出模块15,其中:
[0036]监控程序嵌入模块11根据应用服务器的配置规范,将SQL监控程序嵌入到应用服务器的启动加载目录中;所述的SQL监控程序包括输出配置模块、SQL语句截获模块、SQL语句加工模块和监控结果输出模块;其中:
[0037]输出配置模块12用于设置SQL监控程序的监控结果输出格式和输出路径;
[0038]SQL语句截获模块13用于启动应用服务器用于加载SQL监控程序,在根据用户的操作请求执行SQL语句时,SQL语句截获模块截获数据库中JDBC驱动的SQL语句;
[0039]SQL语句加工模块14用于对截获的SQL语句进行加工,将截获的SQL语句加工成输出配置模块所配置的输出格式;用于获取截获的SQL语句的查询参数和运行参数的参数获取单元,所述的运行参数包括SQL语句开始时间和结束时间;以及用于将查询参数和运行参数将截获的SQL语句组合成监控结果输出模块所配置的输出格式的语句转换单元;
[0040]监控结果输出模块15用于将加工后的SQL语句按照输出配置模块所配置的输出路径输出。
[0041]图2示出本【具体实施方式】中了基于图1中所示系统的一种数据库监控方法的流程图,该方法包括以下步骤:
[0042]步骤S21:将SQL监控程序嵌入到应用服务器的启动加载目录中;
[0043]根据应用服务器的配置规范,将SQL监控程序嵌入到应用服务器的启动加载目录中;所述的SQL监控程序包括输出配置模块、SQL语句截获模块、SQL语句加工模块和监控结果输出1吴块。
[0044]本发明目的在于能够记录应用服务器在启动到结束整个生命周期内,能够记录用户在业务系统所有业务操作(如数据库中业务数据的增加、删除、修改、查询、刷新或其它自动任务等)的SQL语句,为实现该目的,本【具体实施方式】中需要将所述的SQL监控程序嵌入到应用服务器的启动加载目录中,以便在启动应用服务器进行上述业务操作时,能够在动启动SQL监控程序进行SQL语句的监控。
[0045]本【具体实施方式】中的应用服务器包括但不限于Tomcat服务器和Weblogic服务器(也可称为Tomcat中间件和Weblogic中间件),Tomcat服务器是一个免费的开放源代码的Web应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用;WebLogic是美商Oracle的主要产品之一,是商业市场上主要的Java (J2EE)应用服务器软件(application server)之一。在将SQL监控程序日嵌入到Tomcat中间件或Weblogic中间件的启动加载目录时,需要严格遵从Tomcat或Weblogic的配置规范,只有遵从其配置规范,应用中间件Tomcat或Weblogic在启动时,才会去加载上述SQL监控程序。
[0046]本【具体实施方式】中将SQL监控程序称为DBListener,在具体实现时,可以将DBListener以标准的第三方jar包形式对外公布,在将SQL监控程序嵌入到应用服务器的启动加载目录中时将其程序主包DBListener.jar嵌入即可。如在将DBListener嵌入到Tomcat中间件的启动加载目录时,是将DBListener.jar放入到“apache_tomcat-\webapps\project\WEB_INF\lib” 下即可。在将 DBListener 嵌入到 Weblogic 中间件的启动加载目录时,以Weblogic中间件的版本10系列为例,将DBListener.jar直接放到“ \weblogiclO\pro ject\domains\test_domain\lib” 下即可。
[0047]SQL监控程序的输出配置模块其作用主要是让用户可手工配置SQL监控程序输出结果的形式,比如输出到控制台、输出到HTML、输出到Word文件、输出到XML文件等类,以及配置SQL监控工具输出结果的路径信息;及配置SQL监控工具运行的阈值,比如过滤筛选设定时间的SQL语句;监控结果输出模块则是将SQL语句按照输出配置模块的配置输出监控结果。
[0048]在具体实施时,在Windows系统中可将输出配置模块和监控结果输出模块设置为.exe文件,,即DBListener.exe文件,而因为在Linux系统以及Unix系统中是不支持.exe文件,可根据需要将输出配置模块和监控结果输出模块设置为.sh文件,即DBListener.shD
[0049]步骤S22:设置SQL监控程序的监控结果输出格式和输出路径;
[0050]通过输出配置模块设置SQL监控程序的监控结果输出格式和输出路径,由步骤S21可知,可以通过运行上述的DBListener.exe文件或DBListener.sh文件,设置SQL监控程序的输出格式和输出格式,其中,输出格式包括但不限于SQL格式、html格式、word格式和xml格式等,在设置输出格式和输出路径的同时,也可以根据需要设置SQL监控程序的监控时间阈值,即监控的时间段,获取对应时间段的SQL语句信息。
[0051]步骤S23:启动应用服务器,加载SQL监控程序,截获应用服务器中JDBC驱动的SQL语句;
[0052]启动应用服务器,加载SQL监控程序,在根据用户的操作请求执行SQL语句时,SQL语句截获模块截获数据库中JDBC驱动的SQL语句。
[0053]用户在业务系统进行相关业务操作时,由于SQL监控程序已经嵌入到了应用服务器的启动加载目录中,所以在启动应用服务器时,会加载SQL监控程序,在根据用户的操作请求执行SQL语句期间,SQL语句截获模块会截获数据库中JDBC驱动的SQL语句。其中,本【具体实施方式】中的数据库是用户业务系统中存储业务数据的数据库。
[0054]JDBC (Java Data Base Connectivity, java 数据库连接)是一种用于执行 SQL 语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。本【具体实施方式】中,为了实现对SQL语句实时监控截获,通过SQL语句截获模块截获JDBC的SQL语句前,必须首先向SQL监控程序注册JDBC驱动,也就是说更改应用服务器的数据库驱动为SQL监控程序的驱动,注册成功后再利用java著名的有界缓冲区(生产者-消费者问题)技术进入7*24待命状态,只要一旦发现用户提交SQL语句,即可马上截获、马上输出到用户端。
[0055]步骤S24:将截获的SQL语句加工成输出配置模块所配置的输出格式;
[0056]步骤S25:将加工后的SQL语句按照配置的输出路径输出。
[0057]SQL语句加工模块对截获的SQL语句进行加工,将截获的SQL语句加工成输出配置模块所配置的输出格式,并通过监控结果输出模块将加工后的SQL语句按照输出配置模块所配置的输出路径输出。其中,将截获的SQL语句加工成输出配置模块所配置的输出格式的方式可以采用现有技术实现。本【具体实施方式】中将截获的SQL语句加工成监控结果输出模块所配置的输出格式的具体方式为:
[0058]获取截获的SQL语句的查询参数和运行参数,并将查询参数和运行参数将截获的SQL语句组合成监控结果输出模块所配置的输出格式;所述的运行参数包括SQL语句开始时间和结束时间。
[0059]在实际操作中,在将截获的SQL语句按照用户设置的输出格式和输出路径输出后,再将原始的SQL语句即加工前的SQL语句重新发送给原来的JDBC驱动(应用服务器的数据库驱动)进行相应的工作,根据用户操作请求完成相应的操作。
[0060]本发明所述的方法及系统可为软件开发人员、软件测试人员、软件性能调优人员、软件实施人员使用的一种快速获取数据库执行日志,以帮助完成对应用程序的修改、分析、调优等相关工作,使在没有程序开发背景的软件测试人员、软件实施人员能快速使用该工具,用户不写一句代码、不写一行命令,即可根据自己的需要得到相应的监控结果,本发明的SQL监控程序的可移植性和跨平台性,可适应不同的数据库、中间件、操作系统,工具与用户的交互,实现用户对工具的个性化定制,该程序可以对外界以轻量级第三方Jar包的形式发布。本发明的监控工具DBListener目前已广泛应用到主流的Tomcat中间件以及Weblogic中间件中。
[0061]显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其同等技术的范围之内,则本发明也意图包含这些改动和变型在内。
【权利要求】
1.一种数据库监控方法,包括以下步骤: (1)根据应用服务器的配置规范,将SQL监控程序嵌入到应用服务器的启动加载目录中;所述的SQL监控程序包括输出配置模块、SQL语句截获模块、SQL语句加工模块和监控结果输出1吴块; (2)通过输出配置模块设置SQL监控程序的监控结果输出格式和输出路径; (3)启动应用服务器,加载SQL监控程序,在根据用户的操作请求执行SQL语句时,通过SQL语句截获模块截获数据库中JDBC驱动的SQL语句; (4)SQL语句加工模块对截获的SQL语句进行加工,将截获的SQL语句加工成输出配置模块所配置的输出格式; (5)通过监控结果输出模块将加工后的SQL语句按照输出配置模块所配置的输出路径输出。
2.如权利要求1所述的一种数据库监控方法,其特征在于,步骤(2)中,所述的监控结果输出格式包括SQL格式、html格式、word格式和xml格式。
3.如权利要求1所述的一种数据库监控方法,其特征在于,步骤(2)中,监控结果输出模块还用于设置SQL监控程序的监控时间阈值。
4.如权利要求1至3之一所述的一种数据库监控方法,其特征在于,步骤(4)中,将截获的SQL语句加工成监控结果输出模块所配置的输出格式的具体方式为: 获取截获的SQL语句的查询参数和运行参数,并将查询参数和运行参数将截获的SQL语句组合成监控结果输出模块所配置的输出格式;所述的运行参数包括SQL语句开始时间和结束时间。
5.如权利要求1所述的一种数据库监控方法,其特征在于,步骤(I)中,所述的应用服务器包括Tomcat服务器和Weblogic服务器。
6.一种数据库监控系统,包括: 监控程序嵌入模块,根据应用服务器的配置规范,将SQL监控程序嵌入到应用服务器的启动加载目录中;所述的SQL监控程序包括输出配置模块、SQL语句截获模块、SQL语句加工模块和监控结果输出模块;其中: 输出配置模块,用于设置SQL监控程序的监控结果输出格式和输出路径; SQL语句截获模块,用于启动应用服务器用于加载SQL监控程序,在根据用户的操作请求执行SQL语句时,通过SQL语句截获模块截获数据库中JDBC驱动的SQL语句; SQL语句加工模块,用于对截获的SQL语句进行加工,将截获的SQL语句加工成输出配置模块所配置的输出格式; 监控结果输出模块,用于将加工后的SQL语句按照输出配置模块所配置的输出路径输出。
7.如权利要求6所述的一种数据库监控系统,其特征在于,所述的SQL语句加工模块包括: 参数获取单元,用于获取截获的SQL语句的查询参数和运行参数;所述的运行参数包括SQL语句开始时间和结束时间; 语句转换单元,用于将查询参数和运行参数将截获的SQL语句组合成监控结果输出模块所配置的输出格式。
【文档编号】G06F17/30GK103678630SQ201310704049
【公开日】2014年3月26日 申请日期:2013年12月19日 优先权日:2013年12月19日
【发明者】冯德贞, 于贵锁, 陈欣, 胡锦锋 申请人:北京用友政务软件有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1