DBMS_JOBS调用存储过程中有DBLink,导致JOB HANG住,无法正常运行

举报
Lucifer三思而后行 发表于 2021/10/28 11:07:45 2021/10/28
【摘要】 一、查看JOB信息和运行情况select * from dba_jobs where job=***;select * from dba_jobs_running;Notes:发现JOB运行显示停留在2天前21/05/10 06:08分,查看JOB调用存储过程中存在DBLINK。 二、查看AWR报告@?/rdbms/admin/awrrpt.sqlNotes:发现该时间段,DBLINK等待...

一、查看JOB信息和运行情况

select * from dba_jobs where job=***;
select * from dba_jobs_running;

Notes:发现JOB运行显示停留在2天前21/05/10 06:08分,查看JOB调用存储过程中存在DBLINK。

二、查看AWR报告

@?/rdbms/admin/awrrpt.sql

Notes:发现该时间段,DBLINK等待事件比较严重。

三、停止HANG住的JOB SESSION

1.通过dbms_jobs.broken

begin
dbms_job.broken(***,TRUE);
commit;
end;
/

Notes:执行后,JOB BROKEN为Y,但是session并未停止关闭。

2.通过alter system kill session杀掉job session

select a.job,b.INST_ID,b.SID,b.SERIAL#,c.SPID
from dba_jobs_running a,gv$session b,gv$process c
where a.sid = b.sid and b.PADDR =c.ADDR
and b.INST_ID = c.INST_ID
and a.job=***;

alter system kill session '$SID,$SERIAL#';

Notes:无法kill session。

3.通过orakill或者kill -9操作系统层kill进程

select p.spid
from gv$process p, gv$session s
where p.INST_ID = s.INST_ID
and p.INST_ID = 1
and s.SID = $SID
and s.SERIAL# = $SERIAL#
and p.ADDR = s.PADDR;

select instance_name from gv$instance;

orakill *** 9280

1、LINUX

## $SPID 为 第1步的sql查出的SPID
kill –9 $SPID

2、WINDOWS

## $SPID 为 第1步的sql查出的SPID
 
##name为数据库实例名
select instance_name from gv$instance;
 
##cmd命令行执行
orakill 数据库实例名 $SPID

Notes:orakill 是Oracle自带的一个服务

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。