[发明专利]一种诊断Oracle数据库大事务和热点事务的方法有效
申请号: | 201610551752.6 | 申请日: | 2016-07-13 |
公开(公告)号: | CN106201826B | 公开(公告)日: | 2018-11-20 |
发明(设计)人: | 陈涛 | 申请(专利权)人: | 焦点科技股份有限公司 |
主分类号: | G06F11/30 | 分类号: | G06F11/30;G06F11/34;G06F17/30 |
代理公司: | 南京瑞弘专利商标事务所(普通合伙) 32249 | 代理人: | 陈建和 |
地址: | 210003 江苏省南京市高新*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 一种诊断Oracle数据库大事务和热点事务的方法,在Oracle数据库应用系统运行过程中,通过将系统的应用程序和数据库事务联系,关联应用层与数据库层,并配以自动化的监控方式监控事务的运行时间及运行频次,针对达到阈值标准的事务,精准定位启动大事务和热点事务的应用程序,具体为:1)配置应用模块标识和Oracle数据库事务标识,设置事务阈值;2)启动数据库应用系统后台的工作线程或进程;3)初始化专有的数据库连接池模块,建立应用层和数据库层的联系;4)事务采样,采样线程周期性地从数据库应用系统的视图中获取事务标识的事务耗时信息。 | ||
搜索关键词: | 一种 诊断 oracle 数据库 事务 热点 方法 | ||
【主权项】:
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:启动报警线程将原始报警信息、满足阈值标准的数据库事务信息及对应的应用模块信息组合关联,形成易于被阅读和理解的报警内容,并采用即时通讯工具和电子邮件通讯方式,及时将发现的大事务和热点事务报告给相应的数据库管理人员。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于焦点科技股份有限公司,未经焦点科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201610551752.6/,转载请声明来源钻瓜专利网。