转 How To Stop A Running Job Using DBMS_JOB
There is no procedure within the dbms_job package to stop a running job.
You will need to determine which Oracle session and process is associated with this running job and then kill it.
You can run the following query to see job processes:
select sid, job, instance from dba_jobs_running where job=&job_id;
Find the OS process id for the session id under which job is running :
set linesize 120
set pagesize 120
column spid heading 'OSpid' format a8
column pid heading 'Orapid' format 999999
column sid heading 'Sess id' format 99999
column serial# heading 'Serial#' format 999999
column status heading 'Status' format a8
column pga_alloc_mem heading 'PGA alloc'
column username heading 'oracleuser' format a12
column osuser heading 'OS user' format a12
column program heading 'Program' format a28
SELECT
p.spid,
p.pid,
s.sid,
s.serial#,
s.status,
p.pga_alloc_mem,
s.username,
s.osuser,
s.program
FROM
v$process p,
v$session s
WHERE s.paddr(+) = p.addr
AND s.sid=&session_id
Order by p.pga_alloc_mem desc;
Then issue the following with the appropriate sid and serial# for that process to kill the job:
Bringing Down a DBMS_JOB Job
1. Find the job you want to bring down
In order to do anything you first need to find the job that is giving you a headache. Go ahead and run the above query. This will give you the basic information, job, sid, serial#, and spid, for the following actions to bring down the job.
2. Mark the DBMS_JOB job as broken
Use the following command for the job that you have to deal with.
All this command does is mark the job so that if we get it to stop, it won't start again. Let's make one thing perfectly clear, after executing this command the job is still running.
As a side note, if you are trying to shut down a database with jobs that run throughout the day, they may hinder your attempts to bring down the database cleanly. This is a wonderful command to make sure no jobs are executing during the shutdown process. Just be aware that you will need to mark the jobs as unbroken when the database comes back up, more on that later.
3. Kill the Oracle session
Since the job is still running and it isn't going to end soon, you will need to kill the Oracle session that is executing the job. Use the following command for to kill the job.
4. Kill the O/S process
More often than not the previous step will still leave the job attached to the database and still running. When this happens you will need to go out to the operating system level and get rid of the process that has spawned from the running job. In order to do this you must login to the database box and issue the following command, depending on the type of operating system you have.
For Windows, at the command prompt:
For UNIX at the command line:
Note that 'orakill' is an Oracle command, while 'kill' is a Unix command.
5. Remove the BROKEN status of the DBMS_JOB job:
How to disable an entry from DBMS_SCHEDULER?
SOLUTION
Use the DISABLE procedure to disable a job from the scheduler queue.
DBMS_SCHEDULER.DISABLE ( name IN VARCHAR2, force IN BOOLEAN DEFAULT FALSE);
Parameter Description:
name - the name of the object being disabled; can be a comma-delimited list
force - whether to ignore dependencies
Examples:
| Disable database jobs (DBMS_SCHEDULER , AUTOTASKS and DBMS_JOBS) before upgrade (文档 ID 1614385.1) | 转到底部 |
![]() |
|
|

|
In this Document
APPLIES TO:Oracle Database - Enterprise Edition - Version 11.2.0.4 and later GOALHow to disable database jobs ( DBMS_SCHEDULER , AUTOTASKS and DBMS_JOBS)before upgrade from 11.2.0.3 to 11.2.0.4? SOLUTIONSince you are on a version 11gR2 then by setting the parameter job_queue_processes to 0 all job processes are stopped, SQL> show parameter job_queue_processes
SQL> alter system set job_queue_processes=0 scope=both; For more information please check the following :- http://docs.oracle.com/cd/E11882_01/server.112/e40402/initparams112.htm#REFRN10077
However in the case of upgrade , since this violates the utlu112i.sql, then we should use another workaround 1) to disable each job using dbms_scheduler.disable procedure example :- SQL>exec DBMS_SCHEDULER.DISABLE('');
And to enable , please do :- SQL>exec DBMS_SCHEDULER.ENABLE('');
2) to disable all the automated tasks , please do SQL> EXECUTE DBMS_AUTO_TASK_ADMIN.DISABLE;
And to enable them SQL> EXECUTE DBMS_AUTO_TASK_ADMIN.ENABLE;
Note: to disable or enable a specific auto task , please use : SQL>exec DBMS_AUTO_TASK_ADMIN.DISABLE('<client name>' , null, null);
SQL>exec DBMS_AUTO_TASK_ADMIN.ENABLE('<client name>' , null, null); Where the <client name> can be obtained from the output of select client_name from DBA_AUTOTASK_CLIENT;
Note: Most important , if you will use these workaround , please test it first on a test server and test enabling them again 3) To disable jobs created via DBMS_JOBS , please run:- SQL> EXEC DBMS_JOB.BROKEN (<job_id> , TRUE,SYSDATE);
|
转 How To Stop A Running Job Using DBMS_JOB的更多相关文章
- Oracle 中的作业队列和队列调度
一,启动执行作业的进程 在 Oracle 中,是使用 “作业队列协调进程(CJQ0)” 这个协调数据库实例的作业队列的后台进程,来监视作业队列中的作业表(JOB$),并启动作业队列进程(J ...
- Oracle 10.2.0.5升级至11.2.0.4
参照MOS 官方文档Complete Checklist for Manual Upgrade to Oracle Database 11gR2 (11.2) (Doc ID 837570.1)一.升 ...
- Crystal Clear Applied: The Seven Properties of Running an Agile Project (转载)
作者Alistair Cockburn, Crystal Clear的7个成功要素,写得挺好. 敏捷方法的关注点,大家可以参考,太激动所以转载了. 原文:http://www.informit.com ...
- Running Dubbo On Spring Boot
Dubbo(http://dubbo.io/) 是阿里的开源的一款分布式服务框架.而Spring Boot则是Spring社区这两年致力于打造的简化Java配置的微服务框架. 利用他们各自优势,配置到 ...
- Android PopupWindow Dialog 关于 is your activity running 崩溃详解
Android PopupWindow Dialog 关于 is your activity running 崩溃详解 [TOC] 起因 对于 PopupWindow Dialog 需要 Activi ...
- IntelliJ运行下载的Servlet时报错 Error running Tomcat 8.5.8: Unable to open debugger port (127.0.0.1:49551): java.net.SocketException
学习Java Servlet时,从Wrox上下载了示例代码,准备run/debug时发现以下错误: Error running Tomcat 8.5.8: Unable to open debugge ...
- teamviewer "TeamViewer Daemon is not running
执行下面的命令问题解决: # teamviewer --daemon enable enable Sat Jan :: CST Action: Installing daemon () for 'up ...
- mysql 有报错 ERROR! MySQL is not running, but lock file (/var/lock/subsys/mysql) exists
sh-4.1# /etc/init.d/mysqld status ERROR! MySQL is not running, but lock file (/var/lock/subsys/mysql ...
- Errors occurred during the build. Errors running builder 'JavaScript Validator' on project
1.问题:Errors occurred during the build. Errors running builder 'JavaScript Validator' on project 2.解决 ...
随机推荐
- 如何获取.properties配置文件
如何获取.properties配置文件 分析思路: 先使用流和文件关联,即读取文件 再读取文件内容,一行一行读取 字符分割“=” 键值对 然后把键值对放到集合中去 但是Properties类里面有方 ...
- 编写高质量代码改善C#程序的157个建议——建议32:总是优先考虑泛型
建议32:总是优先考虑泛型 泛型的优点是多方面的,无论泛型类还是泛型方法都同时具备可重用性.类型安全性和高效率等特性,这是非泛型和非泛型方法无法具备的. 以可重用性为例: class MyList { ...
- mybatis使用count返回int的方法
<select id="countByExample" resultType="java.lang.Integer" > select count( ...
- 生日蜡烛——第七届蓝桥杯C语言B组(省赛)第二题
原创 生日蜡烛 某君从某年开始每年都举办一次生日party,并且每次都要吹熄与年龄相同根数的蜡烛. 现在算起来,他一共吹熄了236根蜡烛. 请问,他从多少岁开始过生日party的? 请填写他开始过生日 ...
- vba实现excel多表合并
Excel多表合并之vba实现 需求 保留列名,复制每一个excel里的数据,合并到一个excel 操作步骤 将要合并的文件放在同一文件夹下,复制过来就好(ps:最好不要直接操作原数据文件,避免操作失 ...
- 数据库索引与b+树
数据库索引详解 索引 当我们在设计数据库的时候,对表的一些属性有时会加上索引,但索引为什么能提高检索速率呢?是不是用了索引就一定可以提高效率呢?不同索引之间有什么区别呢?搞懂这些问题是灵活运用索引的必 ...
- 趣图:IT公司员工出游真实写照
程序员调 Bug 的写照 趣图:如何辨别程序员设计师的水平
- php代码审计4审计代码执行漏洞
代码执行漏洞代码执行漏洞是指应用程序本身过滤不严,用户可以通过请求将代码注入到应用中执行,当应用在调用一些能将字符串转化成代码的函数(如php中的eval)时,没有考虑到用户是否能控制这个字符串,造成 ...
- [agc014d] Black and White Tree
Description 有一颗n个点的树,刚开始每个点都没有颜色. Alice和Bob会轮流对这棵树的一个点涂色,Alice涂白,Bob涂黑,Alice先手. 若最后存在一个白点,使得这个 ...
- linux下配置apache多站点访问-小案例
一级域名(baidu.com)也叫作顶级域名,注册一级域名是需要付费的. 而二级域名(image.baidu.com)是一级域名的延伸,所以只要购买了一级域名,二级域名是可以任意配置的. 其实(www ...
转到底部


