ORACLE查找并解除死锁进程

简介: ORACLE查找并解除死锁进程 1、查找死锁进程 select /*+RULE*/v$lock.sid,decode(v$lock.type,        'MR', 'Media Recovery',        'RT','Redo Thread',        'U...
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', 'Distributed Xaction',
        'CF', 'Control File',
        'IS', 'Instance State',
        'FS', 'File Set',
        'IR', 'Instance Recovery',
        'ST', 'Disk Space Transaction',
        'TS', 'Temp Segment',
        'IV', 'Library Cache Invalida-tion',
        'LS', 'Log Start or Switch',
        'RW', 'Row Wait',
        'SQ', 'Sequence Number',
        'TE', 'Extend Table',
        'TT', 'Temp Table',
        'Unknown') LockType,
rtrim(object_type) || ' ' || rtrim(owner) || '.' || object_name object_name,
decode(lmode,   0, 'None',
                1, 'Null',
                2, 'Row-S',
                3, 'Row-X',
                4, 'Share',
                5, 'S/Row-X',
                6, 'Exclusive',        'Unknown') LockMode,
decode(request, 0, 'None',
                1, 'Null',
                2, 'Row-S',
                3, 'Row-X',
                4, 'Share',
                5, 'S/Row-X',
                6, 'Exclusive', 'Unknown') RequestMode,
ctime, block b
from v$lock, all_objects
where sid > 8
and v$lock.id1 = all_objects.object_id

如果查询结果有记录表明有锁

2、这个SQL可用来生成杀死死锁进程的SQL

select /*+RULE*/
 'alter system kill session ''' || a.sid || ',' || b.serial# || ''';'
 from v$lock a, all_objects c, v$session b
 where a.sid > 8
   and a.id1 = c.object_id
   and a.sid = b.sid;

select /*+RULE*/
 'alter system kill session ''' || a.sid || ',' || b.serial# || ''';'
 from v$lock a, v$session b
 where a.sid > 8
   and a.sid = b.sid;

3、把第二步的查询结果导出为脚本,在SQLPLUS中执行该脚本即可解除死锁。

目录
相关文章
|
6月前
|
消息中间件 安全 算法
死锁和进程间通信
死锁和进程间通信
52 0
|
Arthas Java 测试技术
【线上问题排查】死锁和僵尸进程排查
【线上问题排查】死锁和僵尸进程排查
196 1
|
存储 Oracle 关系型数据库
Oracle中“ORA-00060: 等待资源时检测到死锁” 或存储过程编译卡死的一种解决方法
Oracle中“ORA-00060: 等待资源时检测到死锁” 或存储过程编译卡死的一种解决方法
796 0
|
3月前
|
Oracle 关系型数据库 MySQL
Mysql和Oracle数据库死锁查看以及解决
【8月更文挑战第11天】本文介绍了解决MySQL与Oracle数据库死锁的方法。MySQL可通过`SHOW ENGINE INNODB STATUS`查看死锁详情,并自动回滚一个事务解除死锁;也可手动KILL事务。Oracle则通过查询V$LOCK与V$SESSION视图定位死锁,并用`ALTER SYSTEM KILL SESSION`命令终止相关会话。预防措施包括遵循ACID原则、优化索引及拆分大型事务。
120 3
|
4月前
|
Oracle 关系型数据库 数据库
关系型数据库Oracle死锁
【7月更文挑战第16天】
68 3
|
4月前
|
消息中间件 算法 Java
(十四)深入并发之线程、进程、纤程、协程、管程与死锁、活锁、锁饥饿详解
本文深入探讨了并发编程的关键概念和技术挑战。首先介绍了进程、线程、纤程、协程、管程等概念,强调了这些概念是如何随多核时代的到来而演变的,以满足高性能计算的需求。随后,文章详细解释了死锁、活锁与锁饥饿等问题,通过生动的例子帮助理解这些现象,并提供了预防和解决这些问题的方法。最后,通过一个具体的死锁示例代码展示了如何在实践中遇到并发问题,并提供了几种常用的工具和技术来诊断和解决这些问题。本文旨在为并发编程的实践者提供一个全面的理解框架,帮助他们在开发过程中更好地处理并发问题。
|
4月前
|
NoSQL Linux Redis
c++开发redis module问题之避免在fork后子进程中发生死锁,如何解决
c++开发redis module问题之避免在fork后子进程中发生死锁,如何解决
|
Oracle 关系型数据库 Linux
Oracle设置连接数进程数会话数
Oracle设置连接数进程数会话数
243 0
|
消息中间件 缓存 算法
死锁和进程通信
死锁和进程通信
87 0
|
SQL 缓存 监控
Oracle 死锁与慢查询总结
Oracle 死锁与慢查询总结
483 0