`

oracle 中查找session中的死锁

阅读更多

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;

 

 

 

 

 

 

 

-------------------------------------------------------------------------------------------------------------------------------------

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进程。

分享到:
评论

相关推荐

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

    在Oracle数据库管理中,处理死锁进程和释放状态为killed的session是一项关键技能,尤其对于维护数据库性能和稳定性至关重要。以下将详细阐述如何通过一系列步骤有效地关闭Oracle死锁进程,以及如何释放状态为killed...

    oracle查找死锁

    ### Oracle查找及解决死锁的方法 在Oracle数据库的日常管理和维护过程中,死锁是一个常见的问题。当两个或多个会话互相等待对方释放资源时就会发生死锁,这会导致相关事务无法继续执行,甚至可能会影响到整个数据库...

    Oracle 死锁问题的排查语句

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

    oracle中关于死锁的处理

    ### Oracle中关于死锁的处理 #### 死锁概述 在Oracle数据库中,死锁是一种常见但必须妥善处理的问题。当两个或多个事务互相等待对方释放资源时就会发生死锁。这种情况下,没有一个事务能够继续执行,直到系统采取...

    解决oracle死锁

    在Oracle数据库系统中,死锁是指两个或多个事务在执行过程中,因争夺资源而造成的一种相互等待的现象。当这种情况发生时,如果没有外部干预,这些事务将无法继续执行,因为它们都在等待对方释放资源。本篇将详细介绍...

    如何解决Oracle杀死死锁进程

    在 Oracle 中,死锁是指两个或多个会话在等待对方释放资源,从而导致互相阻塞的情况。死锁可能会导致数据库性能下降,甚至崩溃。因此,解决死锁问题是非常重要的。 解决 Oracle 杀死死锁进程的步骤: 1. 查找被...

    教您如何检查oracle死锁

    查找死锁中的会话信息 要解决Oracle死锁问题,首先需要定位到具体的会话信息。这可以通过查询`v$session`视图来实现。以下是一段示例SQL语句,用于查找可能涉及死锁的会话: ```sql SELECT username, lockwait,...

    oracle清除死锁

    在Oracle数据库中,当两个或多个事务在等待对方释放锁定资源时会发生死锁。这种情况下,所有事务都将被阻塞,无法继续执行,直到其中一个事务回滚或者系统采取措施解决。 #### 二、死锁检测与处理 ##### 2.1 死锁...

    windows下修改oracle用户密码后用户频繁死锁-亲测有效

    #### 二、Oracle用户死锁原因查找 ##### 1. 查询密码错误次数 首先,我们需要确定Oracle用户的密码错误次数是否达到了系统设定的阈值。这可以通过以下SQL语句实现: ```sql SELECT * FROM dba_profiles WHERE ...

    oracle 死锁时候 ,杀进程方法

    本文将详细介绍在Oracle数据库中出现死锁时,如何查找并终止导致问题的进程。 #### 1. 识别死锁 首先,我们需要确定确实发生了死锁。可以通过查询`v$locked_object`视图来查看锁定的对象和相关的会话信息: ```...

    查出、删除死锁对象

    在数据库系统中,特别是在Oracle这样的大型关系型数据库管理系统中,死锁是常见的问题之一。当两个或多个事务互相等待对方释放资源时,就会发生死锁。这种情况下,所有涉及的事务都将处于无限等待状态,从而导致应用...

    orcale死锁查杀PB版

    Oracle数据库在运行过程中,由于多个事务间的资源竞争,可能会出现死锁现象,导致某些事务无法继续执行。"Oracle死锁查杀PB版"是专为解决这类问题而设计的工具,它提供了便捷的方法来检测和解除数据库中的死锁。本文...

    oracle解决死锁![参考].pdf

    在数据库管理领域,死锁是常见且棘手的问题,特别是在大型企业级应用中,如Oracle数据库。死锁是指两个或多个事务在等待对方释放资源,从而导致事务无法继续执行的状态。处理Oracle数据库中的死锁问题是一项关键的...

    分析+Oracle+死锁的检测查询及处理方法

    Oracle数据库中的死锁是数据库操作中常见的问题,它发生在两个或多个事务相互等待对方释放资源,从而导致事务无法继续执行的情况。死锁不仅影响数据库性能,还可能导致数据一致性问题。本篇文章将详细介绍如何检测和...

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

    例如,在上述的死锁案例中,当两个session分别对不同的表进行删除操作并形成死锁时,Oracle会选择其中一个事务进行回滚,释放资源,使其他事务可以继续执行。 为了避免死锁,数据库管理员和开发人员应该遵循一些...

    oarcle 查询死锁

    了解如何识别和解决Oracle中的查询死锁对于维护数据库性能至关重要。 #### 二、Oracle死锁原理 Oracle通过多种机制管理并发访问和数据一致性,其中包括锁和事务隔离级别。当两个或多个并发事务请求锁定相同资源的...

    SQL死锁监控工具

    在Oracle数据库中,死锁监控主要依赖于"v$session_wait"和"v$lock"视图。"v$session_wait"显示当前会话的等待事件,而"v$lock"则提供了锁的详细信息。通过这两个视图的联合查询,可以定位到死锁的具体情况。 MySQL...

    oracle数据库死锁处理步骤

    Oracle数据库死锁是数据库系统中常见的问题,它发生在两个或多个事务之间,彼此持有对方需要的资源,导致它们无法继续执行。死锁不仅影响数据库性能,还可能导致数据一致性问题。以下是对Oracle数据库死锁处理步骤的...

    oracle ORA-00031:session marked for kill(标记要终止的会话)解决方法

    Oracle数据库在操作过程中,有时会遇到ORA-00031错误,这个错误提示是“会话标记为kill(session marked for kill)”。这通常发生在使用ALTER SYSTEM KILL SESSION命令企图终止某个会话时,但由于会话正在执行无法...

    Oracle 查询死锁并解锁的终极处理方法

    在Unix上,这通常涉及到查找并终止与Oracle会话关联的进程,而在Windows中,`orakill`能直接根据会话的SID和线程号进行操作。 总结来说,当Oracle会话被死锁困扰时,应先通过查询找出问题会话,然后尝试使用`ALTER ...

Global site tag (gtag.js) - Google Analytics