转自:http://levicorp.com/2009/05/22/how-to-kill-the-running-job/
1. Check the running Job (From here you will get the SID thatrunning the Job)
SQL> SELECT * FROM DBA_JOBS_RUNNING;
2. Make Job become Broken/offline
BEGIN SYS.DBMS_IJOB.BROKEN(job#,TRUE); END;SQL> BEGIN SYS.DBMS_IJOB.BROKEN('136451',TRUE); END;
3. Kill the Oracle’s Session
SQL> ALTER SYSTEM KILL SESSION 'sid,serial#';
4. Kill the O/S Process ID (PID)(一般完成该步骤即可)
SELECT p.spid FROM v$session s, v$process pWHERE s.paddr = p.addrAND s.sid = :sid; For Windows, at the DOS Prompt: orakill sid spidFor UNIX at the command line> kill '9 spidUssually Oracle Job running with Process Name : ora_j00%
5. Check if the Job is Still Running
SQL> SELECT * FROM DBA_JOBS_RUNNING;
6. Determine the Current Number of Job Queue Processes
SQL> col value for a10SQL> select name,value from v$parameter where name = 'job_queue_processes';
7. Alter the Job Queue to Zero
SQL> ALTER SYSTEM SET job_queue_processes = 0;This will bring down the entire job queue processes.
8. Validate that No Processes are Using the Job Queue
SQL> SELECT * FROM DBA_JOBS_RUNNING;
9. Mark the DBMS_JOB as Not Broken
BEGIN SYS.DBMS_IJOB.BROKEN(job#,FALSE); END;
10. Alter the Job Queue to Original Value
SQL> ALTER SYSTEM SET job_queue_processes = original_value;
1. Check the running Job (From here you will get the SID thatrunning the Job)
SQL> SELECT * FROM DBA_JOBS_RUNNING;
2. Make Job become Broken/offline
BEGIN SYS.DBMS_IJOB.BROKEN(job#,TRUE); END;SQL> BEGIN SYS.DBMS_IJOB.BROKEN('136451',TRUE); END;
3. Kill the Oracle’s Session
SQL> ALTER SYSTEM KILL SESSION 'sid,serial#';
4. Kill the O/S Process ID (PID)(一般完成该步骤即可)
SELECT p.spid FROM v$session s, v$process pWHERE s.paddr = p.addrAND s.sid = :sid; For Windows, at the DOS Prompt: orakill sid spidFor UNIX at the command line> kill '9 spidUssually Oracle Job running with Process Name : ora_j00%
5. Check if the Job is Still Running
SQL> SELECT * FROM DBA_JOBS_RUNNING;
6. Determine the Current Number of Job Queue Processes
SQL> col value for a10SQL> select name,value from v$parameter where name = 'job_queue_processes';
7. Alter the Job Queue to Zero
SQL> ALTER SYSTEM SET job_queue_processes = 0;This will bring down the entire job queue processes.
8. Validate that No Processes are Using the Job Queue
SQL> SELECT * FROM DBA_JOBS_RUNNING;
9. Mark the DBMS_JOB as Not Broken
BEGIN SYS.DBMS_IJOB.BROKEN(job#,FALSE); END;
10. Alter the Job Queue to Original Value
SQL> ALTER SYSTEM SET job_queue_processes = original_value;
本文详细介绍了在Oracle环境中终止正在运行的作业的步骤,包括检查运行中的作业、使其变为损坏状态、杀死Oracle会话和操作系统进程,以及验证作业是否仍处于运行状态等关键操作。
9559

被折叠的 条评论
为什么被折叠?



