暂无图片
Oracle如何查看正在运行的dbms_jobs
我来答
分享
ORA-00001
2022-03-28
Oracle如何查看正在运行的dbms_jobs

oracle 11.2.0.4.0版本

我在PL/SQL DEVELOPER左侧栏DBMS_JOBS里面右键运行了一个ID号为411的JOB,为什么在dba_jobs_running查看当前正在运行的job看不到这个411的号码呢,我想确认这个JOB是否在正常运行。

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

直接查user_jobs就能查到:

select * from user_jobs where job=411;

看job的运行时间是否在变化,broken是否为N,failusers等于0即表示JOB运行正常。

暂无图片 评论
暂无图片 有用 0
暂无图片
吾喾

这个视图DBA_SCHEDULER_JOB_RUN_DETAILS

暂无图片 评论
暂无图片 有用 0
ORA-00001
题主
2022-03-28
这个视图也查不到,根据执行JOB的用户和JOB号411都查不到,我确认现在JOB正在执行中
吾喾
答主
2022-03-28
确认下DBA_JOBS有这个job吗,有的话,就是没正在运行或者查错库了
DarkAthena
  1. 你是如何确定JOB正在运行中的?
  2. 查一下这个
select CACHE_SIZE, LAST_NUMBER from dba_sequences h where h.sequence_name='JOBSEQ'

看看你说的411号是不是已经被用过了,如果LAST_NUMBER+CACHE_SIZE小于411,那411就不曾存在过

  1. 如果一个job不设置间隔时间,那么它将在执行完后自动被删除,无论它是执行成功还是执行失败
暂无图片 评论
暂无图片 有用 0
ORA-00001
题主
2022-03-28
我通过JOB定位到存储过程了,然后通过存储过程查到了日志表,发现日志表在不断输出所以确定JOB在运行的,而且根据上面刘浩大神的提示,查了user_jobs是视图,确定job还在运行中,且运行时间在持续发生变化,说明确实在运行,谢谢
DarkAthena
答主
2022-03-28
如果job在运行,那么dba_jobs_running里是肯定可以查到的,你跟踪日志,只能说明它运行过,不能说明它当前正在运行,你反复的去查dba_jobs_running应该是有几率可以查出数据的。而且你说DBA_JOBS里查不到数据,但在user_jobs里能查到数据,这是互相矛盾的,user_jobs不过是dba_jobs的子集而已,除非你做了什么特殊的权限控制
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏