Oracle死锁处理

SELECT s.username,l.OBJECT_ID,l.SESSION_ID,s.SERIAL#,

l.ORACLE_USERNAME,l.OS_USER_NAME,l.PROCESS,b.OBJECT_NAME,p.spid

FROM V$LOCKED_OBJECT l,V$SESSION S,dba_objects b,v$process p
WHERE
l.SESSION_ID=S.SID and b.object_id=l.object_id and S.PADDR=p.ADDR and
b.object_name=‘AAA‘

1.alter system kill session ‘sid,serial#‘;

2.直接上服务器杀进程 kill -9 spid

时间: 2024-10-29 06:03:48

Oracle死锁处理的相关文章

Oracle死锁

1.什么是死锁 在程序运行过程中,只有一个进程在运行,其他进程都在等待状态,并且点击进程的确定和保存按钮,程序无反应,但是也不报错,之中现象称作死锁. 2.Oracle死锁原理 操作Oracle数据库一个sql语句在执行对某个表增删改查操作时,一直处于执行状态,且没有结果返回,其他对该表操作的语句一直处于等待状态,也没有报错信息 3.死锁产生原因 A.存在竞争资源.系统存在共享资源不足以满足进程的需要时,就会引起进程之间竞争资源产生死锁现象.生活例子---很多人拥挤在地铁门口等待上车,地铁门一开

教您如何检查oracle死锁,决解死锁

oracle死锁问题一直困扰着我们,下面就教您一个oracle死锁的检查方法,如果您之前遇到过oracle死锁方面的问题,不妨一看…… oracle死锁问题一直困扰着我们,下面就教您一个oracle死锁的检查方法,如果您之前遇到过oracle死锁方面的问题,不妨一看. 一.数据库死锁的现象 程序在执行的过程中,点击确定或保存按钮,程序没有响应,也没有出现报错. 二.oracle死锁的原理 当对于数据库某个表的某一列做更新或删除等操作,执行完毕后该条语句不提交,另一条对于这一列数据做更新操作的语句

死锁及oracle死锁--转载

今天看群里在讨论数据库死锁的问题,也一起研究了下,查了些资料在这里总结下. 所谓死锁: 是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去.此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程. 由于资源占用是互斥的,当某个进程提出申请资源后,使得有关进程在无外力协助下,永远分配不到必需的资源而无法继续运行,这就产生了一种特殊现象死锁. 关于数据库死锁的检查方法 一.数据库死锁的现象 程序在执行的过程中,点击确定

Oracle死锁处理实例

Oracle死锁常规语句 1.查询Oracle死锁常规语句 SELECT l.session_id sid, s.serial#, l.locked_mode,l.oracle_username, l.os_user_name,s.machine, s.terminal, o.object_name, s.logon_time FROM v$locked_object l, all_objects o, v$session s WHERE l.object_id = o.object_id AN

Oracle 死锁的检测查询及处理

-- 死锁查询语句 SELECT bs.username "Blocking User", bs.username "DB User", ws.username "Waiting User", bs.SID "SID", ws.SID "WSID", bs.serial# "Serial#", bs.sql_address "address", bs.sql_hash

oracle 死锁和锁等待的区别

所谓的锁等待:就是一个事务a对一个数据表进行ddl或是dml操作时,系统就会对该表加上表级的排它锁,此时其他的事务对该表进行操作的时候会等待a提交或是回滚后,才可以继续b的操作 所谓的死锁:当两个或多个用户相互等待锁定的数据时就会发生死锁,这时这些用户被卡在不能继续处理业务,oracle可以自动检测死锁并解决他们,通过回滚一个死锁中的语句,释放锁定的数据,回滚的话会遇到ora-00060 deadlock detected while waiting for resource 模拟锁等待: 两个

oracle死锁解决经常用法(屡试不爽)

--1.查询被锁的情况 select object_name,machine,s.sid,s.serial# from v$locked_object l,dba_objects o ,v$session s where l.object_id = o.object_id and l.session_id=s.sid; --2.用以下语句kill掉死锁的进程 alter system kill session '24,111'; --(当中24,111各自是上面查询出的sid,serial#)

Oracle死锁查询及处理

一.数据库死锁的现象程序在执行的过程中,点击确定或保存按钮,程序没有响应,也没有出现报错.二.死锁的原理当对于数据库某个表的某一列做更新或删除等操作,执行完毕后该条语句不提交,另一条对于这一列数据做更新操作的语句在执行的时候就会处于等待状态,此时的现象是这条语句一直在执行,但一直没有执行成功,也没有报错.三.死锁的定位方法通过检查数据库表,能够检查出是哪一条语句被死锁,产生死锁的机器是哪一台.1)用dba用户执行以下语句select username,lockwait,status,machin

oracle 死锁查询及处理

SELECT    bs.username "Blocking User", bs.username "DB User",          ws.username "Waiting User", bs.SID "SID", ws.SID "WSID",          bs.serial# "Serial#", bs.sql_address "address", 

Oracle死锁产生的原因和解决办法

如果有两个会话,每个会话都持有另一个会话想要的资源,此时就会发生死锁.用下面实验来说明死锁的产生原因和解决办法.SESSION1:SQL> create table t2 as select * from emp;SQL> select * from t2 where empno=7369; EMPNO ENAME      JOB              MGR HIREDATE                 SAL       COMM     DEPTNO---------- ---