`
京华倦客
  • 浏览: 123624 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

oracle死锁

 
阅读更多
select /*+ NO_MERGE(a) NO_MERGE(b) NO_MERGE(c) */ 'Wait' "Status", a.username, a.machine, a.sid, a.serial#, a.last_call_et "Seconds", b.id1, c.sql_text "SQL"
from v$session a, v$lock b, v$sqltext c
where a.username is not null
and a.lockwait = b.kaddr
and c.hash_value =a.sql_hash_value
union
select /*+ NO_MERGE(a) NO_MERGE(b) NO_MERGE(c) */ 'Lock' "Status", a.username, a.machine, a.sid, a.serial#, a.last_call_et "Seconds", b.id1, c.sql_text "SQL"
from v$session a, v$lock b, v$sqltext c
where b.id1 in
(select /*+ NO_MERGE(d) NO_MERGE(e) */ distinct e.id1
from v$session d, v$lock e
where d.lockwait = e.kaddr)
and a.username is not null
and a.sid = b.sid
and b.request=0
and c.hash_value =a.sql_hash_value;


其中:
Status有两种状态,LOCK表明该进程锁住了某个资源,WAIT表示该进程正在等待某个资源。
Username, Machine分别为ORACLE用户名及机器名
SID,SERIAL#可用于随后的解锁操作
Seconds表示该进程最后一次进行操作至当前的时间(秒)
ID1, 锁标识。某个LOCK状态的ID1与某个WAIT状态的ID1相同,可说明锁的正是另一个进程等待的。
SQL: 锁住资源的SQL语句
2. 解除锁

诊断出锁的状态后,若发现该阻塞其它用户进程的进程是正常操作中,则可通知该用户对其进行提交,从而达到释放锁资源的目的;若为非正常操作,即,其状态为"inactive",且其Seconds已为较多长时间,则可执行以下语句将该进程进行清除,系统会自动对其进行回滚,从而释放锁住的资源。

alter system kill session 'sid, serial#';

例如: 对于上例中显示的结果, 可用以下语句清除锁住资源的进程:
alter system kill session '12, 966';
分享到:
评论

相关推荐

    有效关闭Oracle死锁进程,和释放状态为killed的session

    以下将详细阐述如何通过一系列步骤有效地关闭Oracle死锁进程,以及如何释放状态为killed的session。 ### 一、识别死锁进程 #### 查找被锁定的过程 首先,我们需要确定哪些进程正处于死锁状态。这可以通过查询`V$...

    oracle死锁故障分析和诊断解决

    ### Oracle死锁故障分析与诊断解决 在Oracle数据库管理中,死锁是一个常见的问题,它发生在两个或多个事务互相等待对方释放资源时,导致所有事务都无法继续执行的情况。本文将深入探讨Oracle死锁的原因、诊断方法及...

    Oracle 死锁问题的排查语句

    Oracle 死锁问题的排查语句 Oracle 死锁是指在数据库中出现的循环等待资源的情形,从而导致数据库性能下降或系统崩溃。出现死锁的原因有多种,如资源竞争、锁定机制不当等。下面是排查 Oracle 死锁问题的语句: 1....

    BLOG_Oracle_lhr_Oracle死锁的分类及其模拟.pdf

    【Oracle死锁的分类及其模拟】这篇博客主要探讨了Oracle数据库中的死锁问题,包括死锁的基本概念、分类以及如何进行模拟。以下是该主题的详细解释: **死锁概述** 死锁是数据库系统中常见的问题,它发生在两个或多...

    oracle死锁原因解决办法

    ### Oracle死锁原因及解决办法 #### 一、Oracle死锁概述 在Oracle数据库系统中,死锁是一种常见的并发问题,它会导致多个事务之间互相等待对方释放资源而无法继续执行,最终导致整个系统的运行效率降低甚至停滞。...

    oracle死锁表后处理

    "oracle死锁表后处理" oracle死锁表后处理是指在oracle数据库中处理死锁表的各种方法和技巧。oracle死锁表后处理是数据库管理员和开发人员需要掌握的重要技能,旨在解决oracle数据库中出现的死锁问题,确保数据的...

    oracle-死锁查询

    oracle死锁问题查询代码,仅供参考,有问题大家一起交流

    教您如何检查oracle死锁

    ### 教您如何检查Oracle死锁 #### 一、数据库死锁的现象 在日常工作中,当我们使用Oracle数据库进行数据操作时,可能会遇到一种特殊的情况——死锁。这种现象通常表现为程序在执行过程中突然停止响应,既无法继续...

    解决Oracle死锁问题.txt

    编译的存储过程的时候,程序死住,等待一会出现ora-04021错误解决办法。文档中有查询思索的语句,以及杀掉死锁进程的方法。

    查询ORACLE死锁以及解锁语句

    查询ORACLE死锁以及解锁语句查询ORACLE死锁以及解锁语句

    查看 oracle 死锁程序

    ### 查看 Oracle 死锁程序 #### 背景与目的 在Oracle数据库管理中,了解如何检测并解决死锁问题至关重要。死锁是数据库环境中常见的并发问题之一,它发生在两个或多个事务互相等待对方释放资源的情况下,最终导致...

    解决oracle死锁

    在Oracle数据库系统中,死锁是指两个或多个...综上所述,处理Oracle死锁需要深入了解数据库的内部机制,并结合适当的监控和预防措施。通过有效的诊断和管理,我们可以减少死锁的发生,从而提高数据库的性能和可用性。

    oracle查询死锁语句

    oracle查询死锁语句,并能根据根据ID值杀死锁表的进程!

    oracle 死锁时候 ,杀进程方法

    ### Oracle死锁时的进程处理方法 在Oracle数据库管理中,死锁是一个常见的问题,它通常发生在两个或多个事务互相等待对方释放资源的情况。当这种情况发生时,可能会导致应用程序响应变慢甚至完全停止运行。因此,...

    kill system session(解决oracle死锁)

    kill system session(解决oracle死锁)

    处理Oracle死锁的过程

    处理Oracle死锁的过程

    Oracle 死锁处理

    下面将详细讨论Oracle死锁的原因、具体分析、示例以及解决办法。 1. **死锁原因分析** - 行级锁:Oracle数据库使用行级锁来支持并发操作,当两个事务同时尝试获取对方已持有的锁时,就可能导致死锁。 - 外键约束...

Global site tag (gtag.js) - Google Analytics