1. --共享锁:Share;排他锁:Exclusive;行共享锁:Row-S;行排他锁:Row-X
  2. select V$SESSION.sid,v$session.SERIAL#,v$process.spid,
  3. rtrim(object_type) object_type,rtrim(owner) || '.' || object_name object_name,
  4. decode(lmode, 0, 'None',
  5. 1, 'Null',
  6. 2, 'Row-S',
  7. 3, 'Row-X',
  8. 4, 'Share',
  9. 5, 'S/Row-X',
  10. 6, 'Exclusive', 'Unknown') LockMode,
  11. decode(request, 0, 'None',
  12. 1, 'Null',
  13. 2, 'Row-S',
  14. 3, 'Row-X',
  15. 4, 'Share',
  16. 5, 'S/Row-X',
  17. 6, 'Exclusive', 'Unknown') RequestMode
  18. ,ctime, block b,
  19. v$session.username,MACHINE,MODULE,ACTION,
  20. decode(A.type,
  21. 'MR', 'Media Recovery',
  22. 'RT','Redo Thread',
  23. 'UN','User Name',
  24. 'TX', 'Transaction',
  25. 'TM', 'DML',
  26. 'UL', 'PL/SQL User Lock',
  27. 'DX', 'Distributed Xaction',
  28. 'CF', 'Control File',
  29. 'IS', 'Instance State',
  30. 'FS', 'File Set',
  31. 'IR', 'Instance Recovery',
  32. 'ST', 'Disk Space Transaction',
  33. 'TS', 'Temp Segment',
  34. 'IV', 'Library Cache Invalida-tion',
  35. 'LS', 'Log Start or Switch',
  36. 'RW', 'Row Wait',
  37. 'SQ', 'Sequence Number',
  38. 'TE', 'Extend Table',
  39. 'TT', 'Temp Table',
  40. 'Unknown') LockType
  41. from (SELECT * FROM V$LOCK) A, all_objects, V$SESSION, v$process
  42. where A.sid > 6
  43. and object_name<>'OBJ$'
  44. and A.id1 = all_objects.object_id
  45. and A.sid=v$session.sid
  46. and v$process.addr=v$session.paddr;
  47.  
  48. --查看锁表进程SQL语句1
  49. select sess.sid, sess.serial#, lo.oracle_username, lo.os_user_name, ao.object_name, lo.locked_mode
  50. from v$locked_object lo, dba_objects ao, v$session sess
  51. where ao.object_id = lo.object_id and lo.session_id = sess.sid;
  52.  
  53. --杀掉锁表进程:
  54. --如有記錄則表示有lock,記錄下SID, serial# ,將記錄的ID替換下面的1143,24155,即可解除LOCK
  55. alter system kill session '1143,24155';
  56. SELECT Saddr, Sid, Serial#, Paddr, Username, Status FROM V$session t WHERE t.SID = '';
  57.  
  58. --查看机器锁定代码对象
  59. select b.sid,b.serial#,b.machine,b.terminal,b.program,b.process,b.status from v$lock a , v$session b
  60. where a.SID = b.SID and b.MACHINE='guoshaoyue-5040';
  61.  
  62. --用这个可以查(可以查看哪台机器哪个用户锁了记录, 其中command是用来杀掉锁住记录的session ):
  63. select s.sid,s.machine,o.object_name,l.oracle_username,l.locked_mode, 'ALTER SYSTEM KILL SESSION '''||s.sid||', '||s.serial#||''';' Command
  64. from v$locked_object l,v$session s,all_objects o where l.session_id=s.sid and l.object_id=o.object_id;
  65.  
  66. --同样也是通过写sql从数据字典里查出来。
  67. -- SELECT-SQL1 功能:检查被加锁的对象
  68. select obj.OWNER||'.'||obj.OBJECT_NAME as OBJ_NAME, --// 对象名称(已经被锁住)
  69. obj.SUBOBJECT_NAME as SUBOBJ_NAME, --// 子对象名称(已经被锁住)
  70. obj.OBJECT_ID as OBJ_ID, --// 对象ID
  71. obj.OBJECT_TYPE as OBJ_TYPE, --// 对象类型
  72. lock_obj.SESSION_ID as SESSION_ID, --// 会话SESSION_ID
  73. lock_obj.ORACLE_USERNAME as ORA_USERNAME, --// ORACLE系统用户名称
  74. lock_obj.OS_USER_NAME as OS_USERNAME, --// 操作系统用户名称
  75. lock_obj.PROCESS as PROCESS --// 进程编号
  76. from
  77. ( select * from all_objects where object_id in (select object_id from v$locked_object)) obj,
  78. v$locked_object lock_obj
  79. where obj.object_id=lock_obj.object_id;
  80.  
  81. -- SELECT-SQL2 功能:检查被加锁的对象以及加锁的会话信息
  82. -- ALTER-SQL1 功能:杀死会话(SESSION_ID,SERIAL#),可以手工解除锁
  83. -- 请手工修改SESSION_ID,SERIAL#为相应值
  84. -- 注意:本功能慎重使用,有一定的破坏性,该SQL可以断开客户机和服务器的连接
  85. -- ALTER SYSTEM KILL SESSION 'SESSION_ID,SERIAL#';
  86. select LOCK_INFO.OWNER||'.'||LOCK_INFO.OBJ_NAME as OBJ_NAME, --// 对象名称(已经被锁住)
  87. LOCK_INFO.SUBOBJ_NAME as SUBOBJ_NAME, --// 子对象名称(已经被锁住)
  88. SESS_INFO.MACHINE as MACHINE, --// 机器名称
  89. LOCK_INFO.SESSION_ID as SESSION_ID, --// 会话SESSION_ID
  90. SESS_INFO.SERIAL# as SERIAL#, --// 会话SERIAL#
  91. LOCK_INFO.ORA_USERNAME as ORA_USERNAME, --// ORACLE系统用户名称
  92. LOCK_INFO.OS_USERNAME as OS_USERNAME, --// 操作系统用户名称
  93. LOCK_INFO.PROCESS as PROCESS, --// 进程编号
  94. LOCK_INFO.OBJ_ID as OBJ_ID, --// 对象ID
  95. LOCK_INFO.OBJ_TYPE as OBJ_TYPE, --// 对象类型
  96. SESS_INFO.LOGON_TIME as LOGON_TIME, --// 登录时间
  97. SESS_INFO.PROGRAM as PROGRAM, --// 程序名称
  98. SESS_INFO.STATUS as STATUS, --// 会话状态
  99. SESS_INFO.LOCKWAIT as LOCKWAIT, --// 等待锁
  100. SESS_INFO.ACTION as ACTION, --// 动作
  101. SESS_INFO.CLIENT_INFO as CLIENT_INFO --// 客户信息
  102.  
  103. from
  104. (
  105. select obj.OWNER as OWNER,
  106. obj.OBJECT_NAME as OBJ_NAME,
  107. obj.SUBOBJECT_NAME as SUBOBJ_NAME,
  108. obj.OBJECT_ID as OBJ_ID,
  109. obj.OBJECT_TYPE as OBJ_TYPE,
  110. lock_obj.SESSION_ID as SESSION_ID,
  111. lock_obj.ORACLE_USERNAME as ORA_USERNAME,
  112. lock_obj.OS_USER_NAME as OS_USERNAME,
  113. lock_obj.PROCESS as PROCESS
  114. from
  115. ( select * from all_objects where object_id in (select object_id from v$locked_object)) obj,
  116. v$locked_object lock_obj
  117. where obj.object_id=lock_obj.object_id
  118. ) LOCK_INFO,
  119. (
  120. select SID,
  121. SERIAL#,
  122. LOCKWAIT,
  123. STATUS,
  124. PROGRAM,
  125. ACTION,
  126. CLIENT_INFO,
  127. LOGON_TIME,
  128. MACHINE
  129. from v$session
  130. ) SESS_INFO
  131. where LOCK_INFO.SESSION_ID=SESS_INFO.SID ;

【ORACLE】查看死锁进程并结束死锁的脚本的更多相关文章

  1. 查看oracle死锁进程并结束死锁

    查看锁表进程SQL语句1: select sess.sid, sess.serial#, lo.oracle_username, lo.os_user_name, ao.object_name, lo ...

  2. Windows下查看8080进程及结束进程命令

    Windows下查看进程及结束进程命令 1)查看占用8080端口的进程号 >netstat –aon | findstr “8080” 结果:TCP    0.0.0.0:8080        ...

  3. 读取oracle页面或者进程卡住不动(死锁)

    oracle最坑爹的地方:你insert   update  delete之后  或者kill死锁的时候记得一定要提交事务不然就是死锁卡在那里了 记住  kill死锁也是要提交事务的 select * ...

  4. Oracle删除死锁进程的方法

    本文实例讲述了Oracle删除死锁进程的方法.分享给大家供大家参考.具体如下: 步骤1:用以下SQL查看进程列表,判断出被锁定的表 复制代码代码如下: SELECT dob.OBJECT_NAME T ...

  5. sql server 查看表的死锁和Kill 死锁进程

    查询出来 select        request_session_id spid,       OBJECT_NAME(resource_associated_entity_id) tableNa ...

  6. Sql server 查看锁和Kill 死锁进程

    死锁的概念 死锁就是两个或多个会话(SPID)相互请求对方持有的锁资源,导致循环等待的情况.下面两种方法都是用来粗暴的解决死锁的. # 已知阻塞进程ID KILL ID SELECT blocking ...

  7. sqlserver查看死锁进程工具脚本p_lockinfo

    /* -- 处理死锁 -- 查看当前进程,或死锁进程,并能自动杀掉死进程 -- 因为是针对死的,所以如果有死锁进程,只能查看死锁进程 -- 当然,你可以通过参数控制,不管有没有死锁,都只查看死锁进程 ...

  8. .Net程序员学用Oracle系列(24):数据字典、死锁

    1.静态数据字典 1.1.实用静态数据字典 1.2.运用静态数据字典 2.动态数据字典 2.1.实用动态性能视图 2.2.运用动态性能视图 3.死锁 3.1.定位死锁 3.2.解锁方法 3.3.强制删 ...

  9. sql server 查询和Kill死锁进程

    查询死锁进程语句 select        request_session_id spid,       OBJECT_NAME(resource_associated_entity_id) tab ...

随机推荐

  1. 今天发现一个汉字转换成拼音的模块,记录一下,直接pip install xpinyin即可

    http://blog.csdn.net/qq_33232071/article/details/50915760

  2. 129 Sum Root to Leaf Numbers 求根叶数字总和

    给定一个只包含 0-9 数字的二叉树,每个根到叶的路径可以代表一个数字.例如,从根到叶路径 1->2->3则代表数字 123.查找所有根到叶数字的总和.例如,    1   / \  2  ...

  3. 146 LRU Cache 最近最少使用页面置换算法

    设计和实现一个  LRU(最近最少使用)缓存 数据结构,使它应该支持以下操作: get 和 put .get(key) - 如果密钥存在于缓存中,则获取密钥的值(总是正数),否则返回 -1.put(k ...

  4. 在虚拟机里安装windows或Linux系统时,安装窗口过大按钮有时点不到解决办法(图文详解)

    不多说,直接上干货! 问题详情 解决办法 很简单快捷的解决办法,就是快捷键ALT+F7,可以拖动窗口的位置. 成功!

  5. android开发学习 ------- Retrofit+Rxjava+MVP网络请求的实例

    http://www.jianshu.com/p/7b839b7c5884   推荐 ,照着这个敲完 , 测试成功 , 推荐大家都去看一下 . 下面贴一下我照着这个敲完的代码: Book实体类 - 用 ...

  6. 用NPOI从Excel到DataTable

    NPOI功能强大,不用装Excel,就可以操作表格中数据----Excel.Sheet------>DataTable private IWorkbook workbook = null; pr ...

  7. re正则表达式公式讲解5

    1.refullmatch() 完全匹配字符串则返回object,否则返回None import re s = "max@123uyt146" print(re.fullmatch ...

  8. iOS圆形图片裁剪,原型图片外面加一个圆环

    /** *  在圆形外面加一个圆环 */ - (void)yuanHuan{ //0.加载图片 UIImage *image = [UIImage imageNamed:@"AppIcon1 ...

  9. 盘点那些年,被Oracle收购的公司

    微博上看到一图,很清晰.盘点那些年,被Oracle收购的公司,Oracle日益强大,都收购了哪些公司呢?别再以为只有Sun啦...看看你都知道哪些? ps:Strategic Acquisitions ...

  10. Hibernate中的inverse和cascade属性

    Hibernate中的inverse和cascade属性 inverse的值有两种,"true"和"false".inverse="false&quo ...