暂无图片
oracle里面如何判断JOB卡死呢
我来答
分享
ORA-00001
2022-03-14
oracle里面如何判断JOB卡死呢

Oracle 11G,如何判断JOB是否卡死呢?JOB卡死了怎么处理呢

我来答
添加附件
收藏
分享
问题补充
2条回答
默认
最新
DarkAthena

"卡死"这种描述是非专业的、不准确的,不可能有某一种方法是针对"卡死"这种现象的处理

  1. 假设你说的是dbms_job
    先查dba_jobs_running,看看你要查的这个job在不在,
    如果不在说明它至少已经没被数据库管了;如果在的话,拿到对应的sid,去看这个会话当前的等待事件是什么,是否存在锁表的情况或者运行慢的情况
    另外还要看下dba_jobs里面的当前运行时间和下一次运行时间的情况,以及broken状态,因为不确定你说的卡死到底是什么现象,没准只是job没在运行?

  2. 假设你说的是schedule_job
    则先要查
    select * from dba_scheduler_jobs;
    select * from dba_scheduler_job_run_details;
    select * from dba_scheduler_job_log
    来看job当前的运行状态,然后再去看会话状态及等待事件。

其实总结起来就是先看job管理视图的情况、检查job对应会话的情况,针对会话的被锁情况或者执行效率情况来进行针对性处理

暂无图片 评论
暂无图片 有用 0
暂无图片
ORA-00001
题主
2022-03-14
感谢您的解答,我的JOB号是在PLSQLDEV的dbms_job里面找到的
薛晓刚

select  *  from dba_jobs看看这里的上一次,下一次,间隔和总耗时。推断看看是不是正常运行。每次运行多久。如果一次运行一次的时间大于等于间隔。就可能卡死。

 优化job的SQL。争取做到秒出。

暂无图片 评论
暂无图片 有用 0
ORA-00001
题主
2022-03-14
感谢大佬
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏