如何杀死oracle死锁进程

方法一:Oracle的死锁非常令人头疼,总结了一些点滴经验作为学习笔记 1.查哪个过程被锁
查V$DB_OBJECT_CACHE视图:

SELECT * FROM V$DB_OBJECT_CACHE WHERE OWNER='过程的所属用户' AND LOCKS!='0';

2. 查是哪一个SID,通过SID可知道是哪个SESSION.
查V$ACCESS视图:

SELECT * FROM V$ACCESS WHERE OWNER='过程的所属用户' AND NAME='刚才查到的过程名';

3. 查出SID和SERIAL#
查V$SESSION视图:

SELECT SID,SERIAL#,PADDR FROM V$SESSION WHERE SID='刚才查到的SID'

查V$PROCESS视图:

SELECT SPID FROM V$PROCESS WHERE ADDR='刚才查到的PADDR';

4. 杀进程
(1).先杀ORACLE进程:

ALTER SYSTEM KILL SESSION '查出的SID,查出的SERIAL#';

(2).再杀操作系统进程:

KILL -9 刚才查出的SPID

ORAKILL 刚才查出的SID 刚才查出的SPID
方法二:
经常在oracle的使用过程中碰到这个问题,所以也总结了一点解决方法:)
1)查找死锁的进程:
sqlplus "/as sysdba"
SELECT s.username,l.OBJECT_ID,l.SESSION_ID,s.SERIAL#,l.ORACLE_USERNAME,l.OS_USER_NAME,l.PROCESS
FROM V$LOCKED_OBJECT l,V$SESSION S WHERE l.SESSION_ID=S.SID;
2)kill掉这个死锁的进程:
alter system kill session ‘sid,serial#’; (其中sid=l.session_id)
3)如果还不能解决,
select pro.spid from v$session ses,v$process pro
where ses.sid=XX and ses.paddr=pro.addr;
其中sid用死锁的sid替换。
exit
ps -ef|grep spid
其中spid是这个进程的进程号,kill掉这个Oracle进程。

时间: 2024-09-17 04:38:24

如何杀死oracle死锁进程的相关文章

关闭Oracle死锁进程的具体步骤

有效关闭Oracle死锁进程的具体步骤: 1.查哪个过程被锁 查V$DB_OBJECT_CACHE视图: SELECT * FROM V$DB_OBJECT_CACHE WHERE OWNER='过程的所属用户' AND CLOCKS!='0'; 2. 查是哪一个SID,通过SID可知道是哪个SESSION 查V$ACCESS视图: SELECT * FROM V$ACCESS WHERE OWNER='过程的所属用户' AND NAME='刚才查到的过程名'; 3. 查出SID和SERIAL#

SqlServer定时备份数据库和定时杀死数据库死锁解决

原文:SqlServer定时备份数据库和定时杀死数据库死锁解决 上周五组长更我说了一句要杀死数据库的死锁进程,因为自己对数据库不是很熟悉,突然组长说了我也就决定一定要倒腾一下,不然自己怎么提高呢?现在不研究,说不定下次还是要研究呢,倒腾出来了就可以在下次用到了,后来组长又补了一句:"还有定是备份数据库的问题要解决",说干就干. PS:Sqlserver 2008 R2,windows 8 64位 1.备份数据库  因为要备份,我们就要用到Sqlserver的代理,默认数据库的代理是不开

ORACLE查找并解除死锁进程

  ORACLE查找并解除死锁进程 1.查找死锁进程 select /*+RULE*/v$lock.sid,decode(v$lock.type,        'MR', 'Media Recovery',        'RT','Redo Thread',        'UN','User Name',        'TX', 'Transaction',        'TM', 'DML',        'UL', 'PL/SQL User Lock',        'DX',

讲解Oracle数据库中结束死锁进程的一般方法_oracle

1.查看死锁1)用dba用户执行以下语句 select username,lockwait,status,machine,program from v$session where sid in (select session_id from v$locked_object) 如果有输出的结果,则说明有死锁,且能看到死锁的机器是哪一台.字段说明: Username:死锁语句所用的数据库用户: Lockwait:死锁的状态,如果有内容表示被死锁. Status: 状态,active表示被死锁 Mac

Oracle删除死锁进程的方法_oracle

本文实例讲述了Oracle删除死锁进程的方法.分享给大家供大家参考.具体如下: 步骤1:用以下SQL查看进程列表,判断出被锁定的表 复制代码 代码如下: SELECT dob.OBJECT_NAME Table_Name,lo.SESSION_ID||', '||vss.SERIAL# 删除号, lo.locked_mode,lo.SESSION_ID, vss.SERIAL#,vss.action Action,vss.osuser OSUSER, vss.LOGON_TIME, vss.pr

ORACLE 10G中用alter system kill session 清除死锁进程

TITLE:ORACLE10G如何用alter system kill session 清除死锁进程 问题描述:用户反馈数据交换终止,查询发现大量的死锁信息 ? SID SERIAL# USERNAME LOGON_TIME 1 1296 56221 sample 2010-6-20 11:25:09 -- 解决步骤: 1.  用下面的语句组装生成清除死锁进程的脚本 --杀锁死进程 select Distinct 'alter system kill session '||chr(39)||b.

Oracle 死锁分析过程详解

Oracle 死锁分析 关于死锁一般3种处理方式 1.事前预测 2.资源分级 3.事后检测释放 我知道的ORACLE MYSQL都是采用第三种在行锁级别上的话. 这里分析一个ORACLE死锁,首先一个死锁肯定会生成一个TRACE文件,这里会记录很多信息如: Deadlock graph: ---------Blocker(s)--------  ---------Waiter(s)--------- Resource Name          process session holds wai

一篇文全面解析Oracle死锁的分类及模拟

作者介绍 李华荣,网名小麦苗,长期专注Oracle数据库研究,具有交通.金融.政府.移动.医疗.电信等行业的运维经验.兴趣爱好广泛,热衷技术分享,对SQL语句优化.备份恢复.数据库巡检.数据库监控等有深入的钻研,熟悉DG.RAC,OGG及AIX,HP-UX,LINUX等主流操作系统平台.个人公众号:xiaomaimiaolhr.   前段时间工作上碰到了一个很奇怪的死锁问题,一般来说,由业务发出来的SQL是不太可能会产生死锁的,不过确确实实产生了,而且还是ITL死锁!于是借此机会,也把死锁可能出

【锁】Oracle死锁(DeadLock)的分类及其模拟

[锁]Oracle死锁(DeadLock)的分类及其模拟 1  BLOG文档结构图   2  前言部分 2.1  导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩)O~: ① 死锁的概念及其trace文件 ② 死锁的分类 ③ 行级死锁的模拟 ④ ITL的概念.ITL结构 ⑤ ITL引发的死锁处理 ⑥ ITL死锁的模拟 Tips: ① 本文在itpub(http://blog.itpub.net/26736162).博客园(http