1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > oracle 停掉job oracle 如何停job

oracle 停掉job oracle 如何停job

时间:2018-10-06 07:48:05

相关推荐

oracle 停掉job oracle 如何停job

停job就是将job的状态改为broken,然后杀死正在运行的job;将job unbroken可以直接调用exec dbms_job.broken(82,false); 。

1.确定要停止的JOB号

select * from dba_jobs_running;

2.Broken你确认的JOB

exec dbms_job.broken(82,true);

select job,log_user,broken,last_date,next_date from dba_jobs where job=82;

3.Kill 对应的Oracle Session

select sid,serial# from v$session where sid=144;

alter system kill session 'sid,serial#';

SELECT p.spid FROM v$session s, v$process p

WHERE s.paddr = p.addr

AND s.sid = 144;

直接KILL对应的操作系统的SESSION,如果使用ALTER SYSTEM KILL SESSION执行很长时间,其实可以使用OS的命令来快速KILL掉SESSION.

For Windows, at the DOS Prompt: orakill sid spid

For UNIX at the command line> kill –9 spid

4.检查你的JOB是否还在运行,如果还运行,多杀几次

select * from dba_jobs_running;

5.修改完成后,将job的BROKEN状态停止。

exec dbms_job.broken(82,false);

--手动执行job

exec dbms_job.run(82);

--dbms_job.broken过程定义,next_date参数默认为sysdate,如果不写,从broken到unbroken,

--即调用exec dbms_job.broken(82,false);,会运行对应的job。

PROCEDURE dbms_job.broken( job IN BINARY_INTEGER,

broken IN BOOLEAN,

next_date IN DATE DEFAULT SYSDATE );

注意:

调用dbms_job.broken过程,一定要commit;

从broken到unbroken,即调用exec dbms_job.broken(82,false);,会运行对应的job。

--停job过程

SQL>select*fromdba_jobs_running;

SIDJOBFAILURESLAST_DATELAST_SECTHIS_DATETHIS_SECINSTANCE

----------------------------------------------------------------------------------------------------

14482028-8月-1217:42:5528-8月-1217:50:450

SQL>execdbms_job.broken(82,true);

PL/SQL过程已成功完成。

SQL>commit;

提交完成。

SQL>SELECTp.spidFROMv$sessions,v$processp

2WHEREs.paddr=p.addr

3ANDs.sid=144;

SPID

------------

4672

----------------------------#

--使用操作系统命令

C:\Windows\system32>orakillorcl4672

----------------------------#

--如果job还在运行,可以多次执行orakillorcl4672

SQL>select*fromdba_jobs_running;

未选定行

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。