Oracle DBMS作业的超时问题排查笔记

1.检查JOB_QUEUE_PROCESSES参数;
    show  parameter  job_queue_process;
    看看结果是不是0,如果是这个原因,可以修改此参数(本次不是)
    ALTER SYSTEM SET job_queue_processes = 10;
2.查JOBS的状态:
 select * From all_jobs;  查看所有JOBS
 select  *  from user_jobs;  查看用户JOBS 
SELECT * from DBA_JOBS;  查看DBA的JOBS
  确定 BROKEN 是不是是Y 是Y说明JOBS被BROKEN了
  确定Last_date/This_Date/Next_Date是否有异常,如果Next_Date异常,可能系统时间有问题或任务一直在执行. 一直在执行的可以从Total_time里看出

    *查系统时间:
    select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') as nowTime from dual; 
3. 查正在运行的JOBS.
select * From DBA_JOBS_RUNNING;  查目前正在执行的任务, 确定任务是不是一直在执行(这次就是这问题)

今天已是 2021-07-26 14:25 上面的JOBS明显有问题,执行了几天....
4.处理超时运行的JOB
---通过SID获得serial
 select SID,SERIAL# from V$Session where SID='156';
 
--终结正在运行的Job
 alter system kill session '156,60139';
因这些SID执行太久,在Navicat里被抛出有迷惑性的提示: SID不存.
然后到服务器上(SQLPLUS / as sysdba)执行:

也无法KILL.

--通过SID查找到SPID
select spid, osuser, s.program from v$session s,v$process p where s.paddr=p.addr and s.sid=620;

然后在OS层面用 KILL -9 86330 执行KILL. 查看DBA_JOBS_RUNNING可以看到这里KILL不会即时收效,有较长的延时时间,但最终会KILL成功.


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值