ORACLE查找并解除死锁进程

简介: ORACLE查找并解除死锁进程 1、查找死锁进程 select /*+RULE*/v$lock.sid,decode(v$lock.type,        'MR', 'Media Recovery',        'RT','Redo Thread',        'UN','Use...

  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中执行该脚本即可解除死锁。

目录
相关文章
|
9月前
|
Oracle 关系型数据库 Linux
Oracle设置连接数进程数会话数
Oracle设置连接数进程数会话数
134 0
|
12月前
|
Oracle 关系型数据库 Linux
启动一个新的Oracle从进程,数据库就连不上了!(ORA-27303)
一线的工程师反映,一个客户在安装了我们公司的产品后,客户的数据库突然出现客户端无法连接的现象!
128 0
|
12月前
|
Oracle 关系型数据库
|
12月前
|
Oracle 安全 关系型数据库
Linux的daemon进程对Oracle数据库的SGA使用大页内存的处理
Oracle对运行在机器内存超过32G上的数据库推荐使用HugePages 来容纳Oracle数据库的SGA,参见。
167 0
|
SQL 缓存 运维
Oracle数据库系统管理与运维 | 数据库进程
Oracle数据库系统管理与运维 | 数据库进程
255 0
Oracle数据库系统管理与运维 | 数据库进程
|
Oracle 关系型数据库
Oracle如何重启mmon/mmnl进程(AWR自动采集)
Oracle如何重启mmon/mmnl进程(AWR自动采集)
535 0
|
SQL Oracle 关系型数据库
Oracle 锁表查询及解锁kill进程
1. 查看被锁定的表 SELECT OBJECT_NAME, MACHINE, S.SID, S.
2758 0
|
Oracle 关系型数据库 Linux
Oracle 数据库设置最大进程数参数方法,oracle最大进程数满了处理方法,sysdba管理员登录报“maximum number of processes (150) exceeded“问题解决
Oracle 数据库设置最大进程数参数方法,oracle最大进程数满了处理方法,sysdba管理员登录报“maximum number of processes (150) exceeded“问题解决
954 0
Oracle 数据库设置最大进程数参数方法,oracle最大进程数满了处理方法,sysdba管理员登录报“maximum number of processes (150) exceeded“问题解决
|
SQL Oracle 关系型数据库
Oracle 数据库利用sql语句杀掉用户session进程,“ORA-01940: 无法删除当前连接的用户“问题解决办法
Oracle 数据库利用sql语句杀掉用户session进程,“ORA-01940: 无法删除当前连接的用户“问题解决办法
319 0
Oracle 数据库利用sql语句杀掉用户session进程,“ORA-01940: 无法删除当前连接的用户“问题解决办法
|
SQL Oracle 关系型数据库
实现批量Kill Oracle会话进程
有时业务DML高并发操作会导致表出现很多锁的情况,甚至需要登录服务器kill进程才能完全解锁,此时就需要能够批量Kill Oracle会话进程的脚本,来减轻操作的压力。
1342 0