监控oracle job 运行状况

Posted 踏雪无痕2017

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了监控oracle job 运行状况相关的知识,希望对你有一定的参考价值。

          近期开发反馈生产系统oracle数据库用于数据同步的job 时常出现执行超时卡死、失败的情况,影响业务正常运作,问是否能够监控job的运行状态,当出现执行失败或者执行时间超过预定时间发出预警通知以便及时处理。思考了一阵,想到通过抓取dba_scheduler_jobs 视图可以实现目的。具体sql 如下:

select decode(t.state,\'RUNNING\',to_char(extract (hour from (sysdate-t.last_start_date))*60+extract (minute fro
m (sysdate-t.last_start_date))),\'SCHEDULED\',\'job is not running\',\'SUCCEEDED\',\'job succeeded\',\'FAILED\',\'job failed\') as duration from dba_scheduler_jobs t where t.job_name=\'&1\' 

     结合zabbix监控、企业微信预警,效果如下:

 

 

 

 

 

大家好,谁知道ORACLE中周期运行的JOB为啥会自动停止呢,啥办法可以杜绝这种问题,谢谢高手给予解答

或用程序怎样进行检测,然后启动呢
二楼可能跟我碰到过的问题一样,我也一直认为是ORACLE的一个bug,我们用的是9i,问题一直都存在没有解决,现在只能用DELPHI开发了一个小监控程序,发现job死掉就用声音报警,然后由专人重新启动job,希望大家给予好的解决方案,谢谢

这个问题我碰到过,所有方法都试过了,我只能大胆怀疑这是oracle 11g 的一个bug , 毕竟是新东西。

楼主可以走走我的旧路看看能不能帮到你:
1.job_queue_processes 增大
2.关闭所有自动任务
EXEC DBMS_AUTO_TASK_ADMIN.disable
3.调整SGA,楼主如果内存很吃紧,出现这样的问题也正常。
参考技术A 到alert日志中查找job报错信息,alert日志会指出完整错误信息被保存在哪个trc文件里面了,再打开对应的trc文件检查具体原因。 参考技术B oracle中如果服务长时间没有重新启动,会导致所有定时不执行。据说也是个bug,后来的版本改进了。

以上是关于监控oracle job 运行状况的主要内容,如果未能解决你的问题,请参考以下文章

如何获得oracle物化视图 定时刷新时 刷新所用的时间 或者是监控 物化视图在jobs中建立的job任务的执行时间

如何监控oracle数据库的备份

大家好,谁知道ORACLE中周期运行的JOB为啥会自动停止呢,啥办法可以杜绝这种问题,谢谢高手给予解答

云组件Oracle数据库监控

oracle如何查询和停止正在运行的job?

oracle查看job执行记录