一种诊断Oracle数据库大事务和热点事务的方法与流程

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

技术特征:

1.一种诊断Oracle数据库大事务和热点事务的方法,其特征在于,在Oracle数据库应用系统运行过程中,通过将系统的应用程序和数据库事务联系,关联应用层与数据库层,并配以自动化的监控方式监控事务的运行时间及运行频次,针对达到阈值标准的事务,基于已建立的事务与应用程序模块的关联,精准定位启动大事务和热点事务的应用程序,诊断Oracle数据库应用系统运行过程的大事务和热点事务具体步骤包括:

步骤1:配置应用模块标识和Oracle数据库事务标识,设置事务阈值;具体为每一个应用程序模块分配唯一能标示应用程序模块的标识,即应用模块标识;为每一个数据库事务分配唯一能标识该事务的标识,即事务标识;同时根据事务实际运行经验设置大事务阈值及热点事务阈值;

步骤2:启动数据库应用系统后台的工作线程或进程;工作线程或进程包括:采样线程或进程、筛选线程或进程、报警线程或进程;

所述采样线程/进程、筛选线程/进程及报警线程/进程,每一个线程或进程能集成为具备相似功能的功能模块,所有功能模块与步骤3中的数据库连接池集合形成诊断监控系统,所述形成的诊断监控系统能独立于数据库外部署,定期访问数据库,获取监控信息;

所述形成的诊断监控系统能独立配置于数据库外部署,系统能定期性地访问数据库,获取监控信息,实施实时诊断;

步骤3:初始化专有的数据库连接池模块,建立应用层和数据库层的联系:当应用程序运行时,数据库连接池将从数据库获取到的数据库事务关联于应用程序,即应用模块标识一一对应于相关的数据库事务标识,应用程序向数据库传递应用模块标识,通过应用模块标识关联于相应的数据库事务,从专有的数据库连接池中获取数据库连接,建立应用程序与数据库事务的联系,保证应用程序模块在执行具体SQL语句前,能自动调用带关联应用模块标识的Oracle存储过程;

步骤4:事务采样:采样线程周期性地从Oracle数据库应用系统的视图中获取事务标识的事务耗时信息,在每一次采样时,记录采样时间点,存储有关采集到的事务的基本信息,包括事务标识,事务运行状态、事务开始时间、相关联的应用模块、执行的动作以及其它能用于描述运行事务的相关信息;所有获取到事务的相关信息存入事务捕获列表中;

一次采样结束,遍历事务捕获列表中每一条事务记录,根据事务标识和应用模块标识,在大事务跟踪表和热点事务跟踪表查找记录,并做相应的数据处理;具体的处理步骤如下:

步骤4-1:根据事务标识,若当前在事务捕获列表中遍历到的事务在大事务跟踪表中已存在,则更新大事务跟踪表中的事务运行时间;若当前在事务捕获列表中遍历到的事务在大事务跟踪表中不存在,插入一条关于该事务的记录,新添事务运行时间,事务运行状态记为“运行中”;

所述更新及新添的事务运行时间为当前采样时间点与事务开始时间的差值;

步骤4-2:在大事务跟踪表中查询、提取事务状态为“运行中”的事务记录,集中存储这些事务记录入临时表中,该遍历该临时表中的每条记录,获取应用模块标识和事务标识,根据从临时表中获取的事务标识和应用模块标识,查询所述遍历到的事务在事务捕获列表中是否存在;

若存在,不做任何处理;若不存在,说明该事务当前已经执行完毕,执行结束对该事务的监控,更新该事务的事务标识在大事务跟踪表中的事务状态为“运行结束”;

待遍历完临时表中所有事务记录,临时表清空;

步骤4-3:根据事务捕获列表中应用模块标识,若当前正在运行的应用模块能在热点事务跟踪表中查询到,更新热点事务跟踪表中该应用模块所对应事务的执行频次,所述更新后的事务执行频次=更新前的事务执行频次+1;若当前正在运行的应用程序在热点事务跟踪表中查询不到,则插入新记录,设置该应用模块所对应事务的执行频次为1;

对同一个事务保证仅执行一次上述更新或插入操作;

步骤5:筛选大事务和热点事务,定位启动事务运行的应用模块;筛选线程遍历大事务跟踪表和热点事务跟踪表,针对(1)大事务跟踪表所有事务记录;(2)热点事务跟踪表中所有事务记录进行筛选,根据步骤1设定的大事务阈值和热点事务阈值,判断遍历到的事务是否达到阈值标准,针对达到标准之上的事务,执行如下步骤:

步骤5-1:在大事务跟踪表中,遍历到的事务满足:事务运行时间>大事务阈值标准,从大事务跟踪表中提取如下信息:

(1)事务标识;

(2)与事务关联的应用模块标识;

(3)事务运行时间;

(4)大事务标准阈值;

步骤5-2:在热点事务跟踪表中,遍历到的事务满足:事务运行频次>热点事务阈值标准,从热点事务跟踪表和大事务跟踪表中提取大事务的相关信息,包括有:

(1)事务标识

(2)与事务关联的应用模块标识;

(3)事务运行频次;

(4)热点事务标准阈值;

步骤6:启动报警线程将原始报警信息、满足阈值标准的数据库事务信息及对应的应用模块信息组合关联,形成易于被阅读和理解的报警内容,并采用即时通讯工具和电子邮件等通讯方式,及时将发现的大事务和热点事务报告给相应的数据库管理人员。

2.根据权利要求1所述诊断Oracle数据库大事务和热点事务的方法,其特征在于,步骤7:报警线程汇总某一特定时间范围内的大事务和热点事务信息,经数据处理,形成以可视化形式展示出大事务和热点事务运行的全貌和详细的统计报表,包括:

(1)聚类:根据事务运行时间对识别出的大事务进行分类,分析属于不同事务运行时间等级的大事务数量;根据事务运行频次对识别出的大事务进行分类,分析属于不同事务运行频次等级的热点事务数量比例;

(2)应用模块–大事务关系图:针对每个应用程序模块关联到的大事务,绘制大事务分布比例图;

(3)应用模块–热点事务关系图:针对每个应用程序模块管理到的热点事务,绘制热点事务分布比例图;

(4)绘制大事务变化趋势图:按照需求,提取重点关注的大事务,根据运行时间,按照时间段绘制变化趋势;

(5)绘制热点事务变化趋势:按照需求,提取重点关注的热点事务,根据运行频次,按照时间段绘制变化趋势。

3.根据权利要求1所述诊断Oracle数据库大事务和热点事务的方法,其特征在于,

所述监控系统包括:数据库连接池模块、配置模块、事务监控模块、控制模块、报警模块;

所述数据库连接池模块用于识别数据库事务,构建系统的应用模块与数据库之间的连接,统一管理因连接而耗费的CPU、数据库、宽带等资源;应用模块从专有的数据库连接池中获取数据连接,在执行SQL前,自动调用Oracle数据库存储过程,并向数据库传递应用模块标识;所述配置模块:用于设定阈值的标准值;

事务监控模块、控制模块、报警模块包括对采样线程/进程、筛选线程/进程及报警线程/进程的控制,对每一个线程或进程集成为上述功能模块。

4.根据权利要求3所述的诊断Oracle数据库大事务和热点事务的方法,其特征在于,所述形成的诊断监控系统能独立配置于数据库外部署,系统能定期性地访问数据库,获取监控信息,实施实时诊断。

5.根据权利要求3所述的诊断Oracle数据库大事务和热点事务的方法,其特征在于,大事务阈值采用系统运行过程中数据库事务运行时间作为标准;热点事务阈值则以应用程序模块所涉及的各事务运行频次为标准;

阈值配置方式分:统一配置,对所有大事务设置的统一阈值,则当检测到Oracle数据库中有事务SQL执行时间超过预设值时,不管执行该事务的SQL属于哪个应用模块,均被判定为大事务。

6.根据权利要求3所述的诊断Oracle数据库大事务和热点事务的方法,其特征在于,大事务阈值采用系统运行过程中数据库事务运行时间作为标准;热点事务阈值则以应用程序模块所涉及的各事务运行频次为标准;

阈值配置方式是根据不同应用模块的要求定制不同阈值;针对不同的应用模块,分别设置不同的阈值;只有各应用模块对应的事务达到指定应用模块的大事务阈值时,该事务才会被判断为大事务。

7.根据权利要求6所述的诊断Oracle数据库大事务和热点事务的方法,其特征在于,UserClient.Message.Send和UserClient.Inquiry.Receive模块,分别设置不同的阈值:模块UserClient.Inquiry.Receive的大事务阈值设置为600毫秒,则当v$session中模块标识为UserClient.Message.Receive的事务耗时达到900毫秒时,则被判断为大事务。

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