绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
Job运行太慢如何停止Jo?
2021-08-27 14:44:19

在数据库维护中,业务人员会要求DBA停止一个job,一般这个job运行较慢用户无法忍受,或者运行了错误的job。
那么该如何停止这些job呢?Oracle在dbms_job这个包中没有定义存储过程来停止正在运行的job。我们需要找到
运行job的会话和系统进程,然后在数据库层面或者系统层面kill该job的运行。

1 通过dba_jobs_running 找到正在运行的某个job 的会话id.进而找到serial# 和OS层面的进程ID。
select sid, job, instance from dba_jobs_running where job=&job_id;

找到运行job的会话的OS process id :

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;

通过如下指令在数据库层面kill该job的session.

ALTER SYSTEM KILL SESSION 'sid,serial#';

$ kill -9 spid

分享好友

分享这个小栈给你的朋友们,一起进步吧。

Oracle运维新鲜事-技术与管理各占半边天
创建时间:2020-08-04 11:34:57
本技术栈旨在分享技术心得,运维趣事,故障处理经验,调优案例,故障处理涉及集群,DG,OGG,大家生产中遇到的问题基本都会囊括了,我会发布生产库遇到的故障,希望在交流中互助互益,共同提高,也希望大家讨论,如果您有生产中遇到的集群问题,也可以在这里提出来,一起讨论,现实中也帮助不少同学解决了生产库的故障。
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

栈主、嘉宾

查看更多
  • Abraham林老师
    栈主
  • 小雨滴
    嘉宾
  • hawkliu
    嘉宾
  • u_97a59a25246404
    嘉宾

小栈成员

查看更多
  • 栈栈
  • dapan
  • 小菜鸟___
  • hwayw
戳我,来吐槽~