关闭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#

  查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#';

  IXDBA.NET社区论坛

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

  KILL -9 刚才查出的SPID

  或者用ORAKILL(刚才查出的SID和SPID)。

时间: 2024-12-23 04:48:59

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

如何杀死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.

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

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查找并解除死锁进程 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',

PostgreSQL中关闭死锁进程的方法_PostgreSQL

由于使用的PostgreSQL数据库,没有资料.只好进行谷歌. 最终在一个英文论坛中发现了解决方法. 如下: 1.检索出死锁进程的ID 复制代码 代码如下: SELECT * FROM pg_stat_activity WHERE datname='死锁的数据库ID '; 检索出来的字段中,[wating ]字段,数据为t的那条,就是死锁的进程.找到对应的[procpid ]列的值. 2.将进程杀掉 复制代码 代码如下: SELECT pg_cancel_backend('死锁那条数据的proc

一篇文全面解析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

Oracle 死锁分析过程详解

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