欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

如何停oracle的job,ORACLE如何停止一个JOB

发布时间:2025/5/22 编程问答 37 豆豆
生活随笔 收集整理的这篇文章主要介绍了 如何停oracle的job,ORACLE如何停止一个JOB 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

ORACLE如何停止一个JOB

2010-06-08 11:23

1 相关表、视图

dba_jobs

all_jobs

user_jobs 包含登录用户所有的JOB信息

dba_jobs_running 包含正在运行job相关信息

注意

须使用oracle的sys用户登录到数据库,才能查看dba_jobs_running,

v$process, v$session表的信息。同时,登录操作系统时,要用oracle用户。

2 问题描述

为同事解决一个因为网络连接情况不佳时,执行一个超长时间的SQL插入操作。

既然网络状况不好,就选择了使用一次性使用JOB来完成该插入操作。在JOB

执行一段时间后,我发现被插入表有些问题(惭愧,当时也没有先检查检查就做了)。准备停止JOB,因为在JOB运行情况下,我的所有修改都会报系统资源忙的错误。

强行KILL SESSION是行不通的,因为过会儿,JOB还会重新启动,如果执行的SQL也被KILL了通过重新启动的JOB还是会被再次新执行的。

3 解决办法

比较好的方法应该是;

1. 首先确定要停止的JOB号

在10g中可通过Dba_Jobs_Running进行确认。

查找正在运行的JOB:

select sid from dba_jobs_running;

查找到正在运行的JOB的spid:

select a.spid from v$process a ,v$session b where a.addr=b.paddr and b.sid in (select sid from dba_jobs_running);

2. Broken你确认的JOB

总结

以上是生活随笔为你收集整理的如何停oracle的job,ORACLE如何停止一个JOB的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。