Oracle死锁解决方法

  select p.spid,c.object_name,b.session_id,b.oracle_username,b.os_user_name from v$process p,v$session a, v$locked_object b,all_objects c where p.addr=a.paddr and a.process=b.process and c.object_id=b.object_id

  能查询到死锁的表名

  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;

  查询到死锁的session_id, serial#

  alter system kill session 'sid,serial#'; (其中sid=l.session_id)

  杀死死锁的进程

最新内容请见作者的GitHub页:http://qaseven.github.io/

时间: 2024-10-22 20:20:38

Oracle死锁解决方法的相关文章

Oracle ORA-12560解决方法

  ORA-12560解决方法 今天在进行oracle数据imp/exp时突然发现在cmd下执行exp输入scott/tiger后时提示: EXP-00056: 遇到 ORACLE 错误 12560 ORA-12560: TNS: 协议适配器错误 EXP-00000: 导出终止失败 开始以为自己输错用户名了,毕竟在oracle这里我不太熟悉.再次输入用户名和密码,依旧报错. 静下来想想----监听器和数据库实例都已经启动了而且还是用自己做的批处理脚本.在Linxu下我也是可以imp/exp的,L

Oracle数据表中的死锁情况解决方法_oracle

在进行数据库管理的过程中,经常会出现数据表被用户的一些不合理操作而导致表被锁定的情况,以下主要介绍如何查找哪些表被哪个用户所锁定,以及如何解除锁定: 1.查找被锁定的表: select object_name,session_id,os_user_name,oracle_username,process,locked_mode,status from v$locked_object l, all_objects a where l.object_id=a.object_id; 如果想知道具体是哪

MySQL死锁问题分析及解决方法实例详解_Mysql

MySQL死锁问题是很多程序员在项目开发中常遇到的问题,现就MySQL死锁及解决方法详解如下: 1.MySQL常用存储引擎的锁机制 MyISAM和MEMORY采用表级锁(table-level locking) BDB采用页面锁(page-level locking)或表级锁,默认为页面锁 InnoDB支持行级锁(row-level locking)和表级锁,默认为行级锁 2.各种锁特点 表级锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低 行级锁:开销大,加锁慢;

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

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

MySQL 的模块不能安装的解决方法_Mysql

我们最常用的 DBD::mysql 模块,我发现是难住很多人的地方.因为安装老是失败,下面我介绍一下解决方法,比如我使用 cpanm 安装,有时就出 /home/nue2501j/work/DBD-mysql-4.010/blib/arch/auto/DBD/mysql/mysql.so: undefined symbol: DBIc_TRACE_LEVEL at /usr/lib/perl5/5.8.5/i386-linux-thread-multi/DynaLoader.pm line 23

MySQL导入sql脚本错误:2006 解决方法_Mysql

MySQL导入sql脚本错误:2006 - MySQL server has gone away 到如一些小脚本很少报错,但最近导入一个10+M的SQL脚本,却重复报错: Error occured at:2014-03-24 11:42:24 Line no.:85 Error Code: 2006 - MySQL server has gone away 最终找到原因,原来是MySQL导入大批量数据的时候超出了默认允许最大的数据包所以就提示2006 - MySQL server has go

MYSQL锁表问题的解决方法_Mysql

本文实例讲述了MYSQL锁表问题的解决方法.分享给大家供大家参考,具体如下: 很多时候!一不小心就锁表!这里讲解决锁表终极方法! 案例一 mysql>show processlist; 参看sql语句 一般少的话 mysql>kill thread_id; 就可以解决了 kill掉第一个锁表的进程, 依然没有改善. 既然不改善, 咱们就想办法将所有锁表的进程kill掉吧, 简单的脚本如下. #!/bin/bash mysql - u root - e " show processli

Mysql 安装失败的快速解决方法_Mysql

在安装mysql的过程中,出现的最麻烦的问题和解决方法 安装后,启动不成功,就卡了,程序就没有响应. 如何解决: 找到mysql安装目录下的 #Path to the database root datadir="C:/ProgramData/MySQL/MySQL Server 5.5/Data/" 该目录就是用来存放我们将来创建的数据库和表的目录, 你只需要将 C:/ProgramData/MySQL/MySQL Server 5.5 删除,再重新安装就可以. 下面看下window

简单说明Oracle数据库中对死锁的查询及解决方法_oracle

死锁的原理当对于数据库某个表的某一列做更新或删除等操作,执行完毕后该条语句不提 交,另一条对于这一列数据做更新操作的语句在执行的时候就会处于等待状态, 此时的现象是这条语句一直在执行,但一直没有执行成功,也没有报错.   死锁的定位方法通过检查数据库表,能够检查出是哪一条语句被死锁,产生死锁的机器是哪一台.   1)用dba用户执行以下语句 select username,lockwait,status,machine,program from v$session where sid in (s