Oracle数据库故障分析方法和装置与流程

文档序号:11864560阅读:255来源:国知局

本发明涉及数据库技术领域,尤其是涉及一种Oracle数据库故障分析方法和装置。



背景技术:

数据库是指长期保存在计算机的存储设备上、并按照某种模型组织起来的、可以被各种用户或应用共享的数据的集合。数据库在日常工作和生产中的作用日趋显著,相关的数据库技术也得到迅猛发展。在众多数据库产品当中,Oracle系列数据库凭借其完善的性能被广泛应用于企业办公、网站建设等各个领域。Oracle数据库也应用于各种操作系统平台。

为了全面、集中、主动和有效地管理和优化企业的IT基础架构,在大型企业后台都有一个支撑企业业务运转的IT数据中心(以下简称数据中心),数据中心是企业的大脑,对企业的信息化管理,保障企业业务的顺畅运行和服务具有重要的作用。数据中心随着业务的更新和增加而增加数据库服务器,随着服务器的增加故障也会跟着多起来。

目前,Oracle数据库在很多企业和行业广泛使用,使用者对oracle的熟练程度也参差不齐,当系统出现性能问题,应用程序缓慢等一些常见问题时,工程师不知道具体原因,也无从下手分析;也可能由于手工误操作导致更繁琐的问题。如果业务系统要求实时处理比较高的时候,快速定位问题,分析问题就成为数据中心的短板;一旦出现故障就会导致客户的经济损失,政治影响。



技术实现要素:

针对以上缺陷,本发明提供一种Oracle数据库故障分析方法和装置,便于工作人员分析故障,使工作人员能够快速定位问题,提高故障处理效率。

第一方面,本发明提供的Oracle数据库故障分析方法包括:

获取所述数据库中各个当前会话在当前执行的SQL语句及所述SQL语句的执行时长并显示在终端显示屏上,对执行时长超出预设时长的SQL语句进行标记;

获取所述数据库中等待资源的会话并显示在所述终端显示屏上,若判断等待相同资源的会话个数超出预设个数则对等待相同资源的会话进行标记;

获取各个表空间的使用率并显示在所述终端显示屏上,对使用率超出第一预设值的表空间进行标记;

获取临时表空间中的会话和/或SQL语句并显示在终端显示屏上,对占用所述临时表空间的大小超过第二预设值的会话和/或SQL语句进行标记

获取撤销表空间中的会话并显示在终端显示屏上,对占用所述撤销表空间大小超出第三预设值的会话进行标记。

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

获取占用内存的大小超出预设值的进程及其所占用的内存大小,并显示在所述终端显示屏上。

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

获取所述数据库中的等待锁及被所述等待锁阻塞的线程,并显示在所述终端显示屏上。

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

根据在预设时间段内活动会话的历史记录,绘制活动会话个数的变化曲线,根据所述变化曲线判断数据库是否出现异常;和/或

获取当前SQL语句在内存中的执行计划及生成该执行计划时所传入的绑定变量值,并显示在所述终端显示屏上。

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

获取数据库的性能分析报告,并显示在所述终端显示屏上;及

获取所述数据库的性能分析报告中存储的SQL语句的历史执行计划及生成所述历史执行计划时所传入的绑定变量值,并显示在所述终端显示屏上。

第二方面,本发明提供的Oracle数据库故障分析装置包括:

第一处理模块,用于获取所述数据库中各个当前会话在当前执行的SQL语句及所述SQL语句的执行时长并显示在终端显示屏上,对执行时长超出预设时长的SQL语句进行标记;

第二处理模块,用于获取所述数据库中等待资源的会话并显示在所述终端显示屏上,若判断等待相同资源的会话个数超出预设个数则对等待相同资源的会话进行标记;

第三处理模块,用于获取各个表空间的使用率并显示在所述终端显示屏上,对使用率超出第一预设值的表空间进行标记;

第四处理模块,用于获取临时表空间中的会话和/或SQL语句并显示在终端显示屏上,对占用所述临时表空间的大小超过第二预设值的会话和/或SQL语句进行标记

第五处理模块,用于获取撤销表空间中的会话并显示在终端显示屏上,对占用所述撤销表空间大小超出第三预设值的会话进行标记。

可选的,该装置还包括:

第六处理模块,用于获取占用内存的大小超出预设值的进程及其所占用的内存大小,并显示在所述终端显示屏上。

可选的,该装置还包括:

第七处理模块,用于获取所述数据库中的等待锁及被所述等待锁阻塞的线程,并显示在所述终端显示屏上。

可选的,该装置还包括:

第八处理模块,用于根据在预设时间段内活动会话的历史记录,绘制活动会话个数的变化曲线,根据所述变化曲线判断数据库是否出现异常;

第九处理模块,用于获取当前SQL语句在内存中的执行计划及生成该执行计划时所传入的绑定变量值,并显示在所述终端显示屏上。

可选的的,该装置还包括:

第十处理模块,用于获取数据库的性能分析报告,并显示在所述终端显示屏上;及

第十一处理模块,用于获取所述数据库的性能分析报告中存储的SQL语句的历史执行计划及生成所述历史执行计划时所传入的绑定变量值,并显示在所述终端显示屏上。

本发明提供的Oracle数据库故障分析方法和装置中,对执行时长超出预设时长的SQL语句进行标记、若等待相同资源的会话个数超出预设个数则对等待相同资源的会话进行标记、对使用率超出第一预设值的表空间进行标记、对占用所述临时表空间的大小超过第二预设值的会话和/或SQL语句进行标记及对占用所述撤销表空间大小超出第三预设值的会话进行标记,因此对于可能出现异常的SQL语句、会话、表空间等进行标记,便于工作人员分析故障,使工作人员能够快速定位问题,提高故障处理效率,提高处理故障的实时性,减少因为不能及时处理故障而导致的客户的经济损失等。

附图说明

通过参考附图会更加清楚的理解本发明的特征信息和优点,附图是示意性的而不应理解为对本发明进行任何限制,在附图中:

图1示出了根据本发明一实施例中Oracle数据库故障分析方法的流程示意图。

具体实施方式

为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。

在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明的保护范围并不受下面公开的具体实施例的限制。

本发明提供一种Oracle数据库故障分析方法,如图1所示,该方法包括:

S101、获取数据库中各个当前会话在当前执行的SQL语句及SQL语句的执行时长并显示在终端显示屏上,对执行时长超出预设时长的SQL语句进行标记;

其中,SQL语句是指采用结构化查询语言(Structured Query Language,简称SQL)所写的语句。

可理解的是,若SQL语句的执行时间过长,说明SQL语句的执行过程出现异常,所以对其进行标记。

S102、获取数据库中等待资源的会话并显示在终端显示屏上,若判断等待相同资源的会话个数超出预设个数则对等待相同资源的会话进行标记;

通常情况下,等待某一资源的时间的会话个数是比较少的,例如少于10个。然而,若等待某一资源的时间的会话个数比较多,例如51个,说明会话开始堆积,数据库出现异常。

S103、获取各个表空间的使用率并显示在终端显示屏上,对使用率超出第一预设值的表空间进行标记;

可理解的是,数据库中至少包括一个表空间,表空间用于存储多个表,而表中存储有数据库对象。当表空间的使用率超出一定值时,会影响数据库的正常工作。

在实际应用时,还可以对存在自动扩展数据文件的表空间进行显示,便于工作人员查看表空间是否自动扩展。

S104、获取临时表空间中的会话和/或SQL语句并显示在终端显示屏上,对占用临时表空间的大小超过第二预设值的会话和/或SQL语句进行标记;

可理解的是,由于Oracle数据库工作时经常需要一些临时的磁盘空间,这些空间主要用作查询时带有排序算法所用,当用完后就立即释放,对记录在磁盘区的信息不再使用,因此叫临时表空间。

可理解的是,若某个会话或SQL语句在临时表空间中的占用空间过大,说明该会话或SQL语句的执行出现问题,故这里对其进行标记。

S105、获取撤销表空间中的会话并显示在终端显示屏上,对占用撤销表空间大小超出第三预设值的会话进行标记。

可理解的是,撤销表空间即undo表空间,在undo表空间中会自动分配undo段,这些undo段用来保存事务中的undo信息,也就是来保存数据在被修改之前的值。

可理解的是,若某个会话或SQL语句在撤销表空间中的占用空间过大,说明该会话或SQL语句的执行出现问题,故这里对其进行标记。

可理解的是,上述各个步骤之间没有先后顺序。

本发明提供的数据库故障分析方法中,对执行时长超出预设时长的SQL语句进行标记、若等待相同资源的会话个数超出预设个数则对等待相同资源的会话进行标记、对使用率超出第一预设值的表空间进行标记、对占用临时表空间的大小超过第二预设值的会话和/或SQL语句进行标记及对占用撤销表空间大小超出第三预设值的会话进行标记,因此对于可能出现异常的SQL语句、会话、表空间等进行标记,便于工作人员分析故障,使工作人员能够快速定位问题,提高故障处理效率,提高处理故障的实时性,减少因为不能及时处理故障而导致的客户的经济损失等。

在具体实施时,本发明提供的方法还可以包括:

获取占用内存的大小超出预设值的进程及其所占用的内存大小,并显示在终端显示屏上。

若某一进程占用的内存过大,有可能是因为该进程的执行出现问题,因此这里将其显示在显示屏上,便于工作人员观察。

在具体实施时,本发明提供的方法还可以包括:

获取数据库中的等待锁及被等待锁阻塞的线程,并显示在终端显示屏上。

这里,将等待锁及被阻塞的线程显示在显示屏上,便于工作人员查找问题。

在具体实施时,本发明提供的方法还可以包括:

根据在预设时间段内活动会话的历史记录,绘制活动会话个数的变化曲线,根据变化曲线判断数据库是否出现异常。

通常情况下,活动会话的个数不会过高,例如50个,往往在20个以下,因此若从变化曲线中看到活动会话的个数持续增加并超过预设数量,说明数据库出现异常,进程开始堆积。

这里,通过绘制活动会话个数的变化曲线,通过变化曲线可以判断出数据库是否出现异常,以便于及时发现故障,及时对故障进行定位。

在具体实施时,本发明提供的方法还可以包括:

获取当前SQL语句在内存中的执行计划及生成该执行计划时所传入的绑定变量值,并显示在终端显示屏上。

这里,将执行计划及生成该执行计划时的绑定变量值显示出来,便于工作人员查看。

在具体实施时,本发明提供的方法还可以包括:

获取数据库的性能分析报告,并显示在终端显示屏上;及

获取数据库的性能分析报告中存储的SQL语句的历史执行计划及生成历史执行计划时所传入的绑定变量值,并显示在终端显示屏上。

其中,性能分析报告即AWR报告。

这里,将性能分析报告显示出来,便于工作人员了解数据库的工作性能。同时,还将报告中存储的历史执行计划及生成该历史执行计划时的绑定变量值显示出来,便于工作人员进行查看。

在具体实施时,还可将SQL语句在过去每个小时的执行时间、逻辑读以及在CPU/IO等各个环节的时间显示出来,便于工作人员查看。

在具体实施时,还可以查找到最消耗临时表空间的程序的排名情况,最消耗撤销表空间的程序,最消耗内存的程序。

基于相同的发明构思,本发明还提供一种Oracle数据库故障分析装置,该装置包括:

第一处理模块,用于获取数据库中各个当前会话在当前执行的SQL语句及SQL语句的执行时长并显示在终端显示屏上,对执行时长超出预设时长的SQL语句进行标记;

第二处理模块,用于获取数据库中等待资源的会话并显示在终端显示屏上,若判断等待相同资源的会话个数超出预设个数则对等待相同资源的会话进行标记;

第三处理模块,用于获取各个表空间的使用率并显示在终端显示屏上,对使用率超出第一预设值的表空间进行标记;

第四处理模块,用于获取临时表空间中的会话和/或SQL语句并显示在终端显示屏上,对占用临时表空间的大小超过第二预设值的会话和/或SQL语句进行标记;

第五处理模块,用于获取撤销表空间中的会话并显示在终端显示屏上,对占用撤销表空间大小超出第三预设值的会话进行标记。

可选的,该装置还包括:

第六处理模块,用于获取占用内存的大小超出预设值的进程及其所占用的内存大小,并显示在终端显示屏上。

可选的,该装置还包括:

第七处理模块,用于获取数据库中的等待锁及被等待锁阻塞的线程,并显示在终端显示屏上。

可选的,该装置还包括:

第八处理模块,用于根据在预设时间段内活动会话的历史记录,绘制活动会话个数的变化曲线,根据变化曲线判断数据库是否出现异常;

第九处理模块,用于获取当前SQL语句在内存中的执行计划及生成该执行计划时所传入的绑定变量值,并显示在终端显示屏上。

可选的,该装置还包括:

第十处理模块,用于获取数据库的性能分析报告,并显示在终端显示屏上;及

第十一处理模块,用于获取数据库的性能分析报告中存储的SQL语句的历史执行计划及生成历史执行计划时所传入的绑定变量值,并显示在终端显示屏上。

本发明提供的Oracle数据库故障分析装置为Oracle数据库故障分析方法的功能架构模块,具有相同的技术效果,在此不再赘述。

可理解的是,各个模块中的预设值、预设个数、预设时长等预设信息可根据经验设置。

在具体实施时,可以在显示屏中设置与各个模块对应的按钮,当用户点击某个按钮时,该按钮对应的模块执行相应的动作,从而工作人员可以看到执行动作后在显示屏上的显示结果,从而对故障进行分析和定位。

可理解的是,本发明提供的Oracle数据库故障分析装置可以是一个软件模块,便于进行故障分析的工具。该工具可以采用C/S结构,可在数据库的服务器上创建一个数据库用户,该用户具有查询数据字典权限,便于软件在PC端直接运行,不需要安装,具有使用方便、快捷的优点。

虽然结合附图描述了本发明的实施方式,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。

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