1. 查看锁表进程SQL语句1
  2. select sess.sid,
  3. sess.serial#,
  4. lo.oracle_username,
  5. lo.os_user_name,
  6. ao.object_name,
  7. lo.locked_mode
  8. from v$locked_object lo,
  9. dba_objects ao,
  10. v$session sess
  11. where ao.object_id = lo.object_id and lo.session_id = sess.sid;
  12.  
  13. 查看锁表进程SQL语句2
  14. select * from v$session t1, v$locked_object t2 where t1.sid = t2.SESSION_ID;
  15.  
  16. 杀掉锁表进程:
  17. 如有記錄則表示有lock,記錄下SIDserial# ,將記錄的ID替換下面的738,,即可解除LOCK
  18. alter system kill session '738,1429';
  19.  
  20. 用这个可以查: select s.sid,s.machine,o.object_name,l.oracle_username,l.locked_mode, 'ALTER SYSTEM KILL SESSION '''||s.sid||', '||s.serial#||''';' Command from v$locked_object l,v$session s,all_objects o where l.session_id=s.sid and l.object_id=o.object_id 可以查看哪台机器哪个用户锁了记录, 其中command是用来杀掉锁住记录的session
  21. ******************************************************************************************************************
  22. SELECT A.OBJECT_ID, B.OBJECT_NAME, A.SESSION_ID, A.ORACLE_USERNAME, A.OS_USER_NAME, A.PROCESS, A.LOCKED_MODE FROM V$LOCKED_OBJECT A, DBA_OBJECTS B WHERE A.OBJECT_ID = B.OBJECT_ID;
  23. SELECT T2.USERNAME, T2.SID, T2.SERIAL#, T2.LOGON_TIME FROM V$LOCKED_OBJECT T1, V$SESSION T2 WHERE T1.SESSION_ID = T2.SID ORDER BY T2.LOGON_TIME;
  24. ALTER SYSTEM KILL SESSION 'sid, serial#';
  25. ********************************************************************************************************************
  26. session : C:\>sqlplus hxg/hxg
  27. SQL> select * from scott.t;
  28. A B C ---------- -------------------- -------------------- 111 aa bb 222 hello world
  29. SQL;
  30. 已更新 行。
  31. session : C:\>sqlplus scott/tiger
  32. SQL> select * from scott.t;
  33. A B C ---------- -------------------- -------------------- 111 aa bb 222 hello world
  34. SQL;
  35. 挂起。。。。
  36. session : C:\>sqlplus "system/*** as sysdba"
  37. SQL> select sid,serial#,username,status from v$session;
  38. SID SERIAL# USERNAME STATUS ---- ---------- ------------------------------ -------- 146 25 SYS ACTIVE 147 11 SYS INACTIVE 148 2 HXG INACTIVE 150 5 SCOTT ACTIVE 151 1 ACTIVE 154 1 ACTIVE 159 6 ACTIVE 160 1 ACTIVE 161 1 ACTIVE 162 1 ACTIVE 163 1 ACTIVE
  39. SID SERIAL# USERNAME STATUS ---- ---------- ------------------------------ -------- 164 1 ACTIVE 165 1 ACTIVE 166 1 ACTIVE 167 1 ACTIVE 168 1 ACTIVE 169 1 ACTIVE 170 1 ACTIVE
  40. 已选择18行。
  41. SQL> alter system kill session '148,2';
  42. 系统已更改。
  43. SQL> select sid,serial#,username,status from v$session;
  44. SID SERIAL# USERNAME STATUS ---- ---------- ------------------------------ -------- 146 25 SYS ACTIVE 147 11 SYS INACTIVE 148 2 HXG KILLED 150 5 SCOTT INACTIVE 151 1 ACTIVE 154 1 ACTIVE 159 6 ACTIVE 160 1 ACTIVE 161 1 ACTIVE 162 1 ACTIVE 163 1 ACTIVE
  45. SID SERIAL# USERNAME STATUS ---- ---------- ------------------------------ -------- 164 1 ACTIVE 165 1 ACTIVE 166 1 ACTIVE 167 1 ACTIVE 168 1 ACTIVE 169 1 ACTIVE 170 1 ACTIVE
  46. 已选择18行。
  47. SQL>
  48.  
  49. select V$SESSION.sid,v$session.SERIAL#,v$process.spid,
  50. rtrim(object_type) object_type,rtrim(owner) || '.' || object_name object_name,
  51. decode(lmode, 0, 'None',
  52. 1, 'Null',
  53. 2, 'Row-S',
  54. 3, 'Row-X',
  55. 4, 'Share',
  56. 5, 'S/Row-X',
  57. 6, 'Exclusive', 'Unknown') LockMode,
  58. decode(request, 0, 'None',
  59. 1, 'Null',
  60. 2, 'Row-S',
  61. 3, 'Row-X',
  62. 4, 'Share',
  63. 5, 'S/Row-X',
  64. 6, 'Exclusive', 'Unknown') RequestMode
  65. ,ctime, block b,
  66. v$session.username,MACHINE,MODULE,ACTION,
  67. decode(A.type,
  68. 'MR', 'Media Recovery',
  69. 'RT','Redo Thread',
  70. 'UN','User Name',
  71. 'TX', 'Transaction',
  72. 'TM', 'DML',
  73. 'UL', 'PL/SQL User Lock',
  74. 'DX', 'Distributed Xaction',
  75. 'CF', 'Control File',
  76. 'IS', 'Instance State',
  77. 'FS', 'File Set',
  78. 'IR', 'Instance Recovery',
  79. 'ST', 'Disk Space Transaction',
  80. 'TS', 'Temp Segment',
  81. 'IV', 'Library Cache Invalida-tion',
  82. 'LS', 'Log Start or Switch',
  83. 'RW', 'Row Wait',
  84. 'SQ', 'Sequence Number',
  85. 'TE', 'Extend Table',
  86. 'TT', 'Temp Table',
  87. 'Unknown') LockType
  88. from (SELECT * FROM V$LOCK) A, all_objects,V$SESSION,v$process
  89. where A.sid > 6
  90. and object_name<>'OBJ$'
  91. and A.id1 = all_objects.object_id
  92. and A.sid=v$session.sid
  93. and v$process.addr=v$session.paddr;
  94.  
  95. 同样也是通过写sql从数据字典里查出来。
  96.  
  97. // SELECT-SQL1
  98. // 功能:检查被加锁的对象
  99. //select obj.OWNER||'.'||obj.OBJECT_NAME as OBJ_NAME, // 对象名称(已经被锁住)
  100. // obj.SUBOBJECT_NAME as SUBOBJ_NAME, // 子对象名称(已经被锁住)
  101. // obj.OBJECT_ID as OBJ_ID, // 对象ID
  102. // obj.OBJECT_TYPE as OBJ_TYPE, // 对象类型
  103. // lock_obj.SESSION_ID as SESSION_ID, // 会话SESSION_ID
  104. // lock_obj.ORACLE_USERNAME as ORA_USERNAME, // ORACLE系统用户名称
  105. // lock_obj.OS_USER_NAME as OS_USERNAME, // 操作系统用户名称
  106. // lock_obj.PROCESS as PROCESS // 进程编号
  107. //from
  108. // ( select * from all_objects where object_id in (select object_id from v$locked_object)) obj,
  109. // v$locked_object lock_obj
  110. //where obj.object_id=lock_obj.object_id;
  111.  
  112. //// SELECT-SQL2
  113. //// 功能:检查被加锁的对象以及加锁的会话信息
  114. //// 如果需要手工解除锁,请对照要解锁的对象,记下SESSION_ID,SERIAL#
  115.  
  116. //// 项,然后运行下面的ALTER-SQL1
  117. //select LOCK_INFO.OWNER||'.'||LOCK_INFO.OBJ_NAME as OBJ_NAME, // 对象名称(已经被锁住)
  118. // LOCK_INFO.SUBOBJ_NAME as SUBOBJ_NAME, // 子对象名称(已经被锁住)
  119. // SESS_INFO.MACHINE as MACHINE, // 机器名称
  120. // LOCK_INFO.SESSION_ID as SESSION_ID, // 会话SESSION_ID
  121. // SESS_INFO.SERIAL# as SERIAL#, // 会话SERIAL#
  122. // LOCK_INFO.ORA_USERNAME as ORA_USERNAME, // ORACLE系统用户名称
  123. // LOCK_INFO.OS_USERNAME as OS_USERNAME, // 操作系统用户名称
  124. // LOCK_INFO.PROCESS as PROCESS, // 进程编号
  125. // LOCK_INFO.OBJ_ID as OBJ_ID, // 对象ID
  126. // LOCK_INFO.OBJ_TYPE as OBJ_TYPE, // 对象类型
  127. // SESS_INFO.LOGON_TIME as LOGON_TIME, // 登录时间
  128. // SESS_INFO.PROGRAM as PROGRAM, // 程序名称
  129. // SESS_INFO.STATUS as STATUS, // 会话状态
  130. // SESS_INFO.LOCKWAIT as LOCKWAIT, // 等待锁
  131. // SESS_INFO.ACTION as ACTION, // 动作
  132. // SESS_INFO.CLIENT_INFO as CLIENT_INFO // 客户信息
  133. //
  134. //from
  135. // (
  136. // select obj.OWNER as OWNER,
  137. // obj.OBJECT_NAME as OBJ_NAME,
  138. // obj.SUBOBJECT_NAME as SUBOBJ_NAME,
  139. // obj.OBJECT_ID as OBJ_ID,
  140. // obj.OBJECT_TYPE as OBJ_TYPE,
  141. // lock_obj.SESSION_ID as SESSION_ID,
  142. // lock_obj.ORACLE_USERNAME as ORA_USERNAME,
  143. // lock_obj.OS_USER_NAME as OS_USERNAME,
  144. // lock_obj.PROCESS as PROCESS
  145. // from
  146. // ( select * from all_objects where object_id in (select object_id from v$locked_object)) obj,
  147. // v$locked_object lock_obj
  148. // where obj.object_id=lock_obj.object_id
  149. // ) LOCK_INFO,
  150. // (
  151. // select SID,
  152. // SERIAL#,
  153. // LOCKWAIT,
  154. // STATUS,
  155. // PROGRAM,
  156. // ACTION,
  157. // CLIENT_INFO,
  158. // LOGON_TIME,
  159. // MACHINE
  160. // from v$session
  161. // ) SESS_INFO
  162. //where LOCK_INFO.SESSION_ID=SESS_INFO.SID ;
  163.  
  164. //// 看清楚了 下面就可以 杀死它了。
  165.  
  166. // ALTER-SQL1
  167. // 功能:杀死会话(SESSION_ID,SERIAL#),可以手工解除锁
  168. // 请手工修改SESSION_ID,SERIAL#为相应值
  169. // 注意:本功能慎重使用,有一定的破坏性,该SQL可以断开客户机和服务器的连接
  170.  
  171. //ALTER SYSTEM KILL SESSION 'SESSION_ID,SERIAL#';

查看oracle死锁进程并结束死锁的更多相关文章

  1. 【ORACLE】查看死锁进程并结束死锁的脚本

    --共享锁:Share:排他锁:Exclusive:行共享锁:Row-S:行排他锁:Row-X select V$SESSION.sid,v$session.SERIAL#,v$process.spi ...

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

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

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

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

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

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

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

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

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

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

  7. Windows下查看进程及结束进程命令[转]

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

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

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

  9. 查看Oracle数据库被锁住的表,删除锁表的进程

    锁表处理及查询 查看Oracle数据库被锁住的表,删除锁表的进程 1.查看被锁住的表 SELECT dob.object_name table_name,    lo.locked_mode, lo. ...

随机推荐

  1. Android 用Fragment创建一个选项卡

    本文结合之前的动态创建fragment来进行一个实践,来实现用Fragment创建一个选项卡 本文地址:http://www.cnblogs.com/wuyudong/p/5898075.html,转 ...

  2. 【读书笔记】iOS网络-负载

    负载指的是在服务的请求响应事务中交换的数据.常见的负载格式包括XML,JSON与HTML. 进入与发出的负载数据存在很多形式与大小.比如,有些开发者会使用原生的字符串或是以分隔符分开的数据与Web S ...

  3. Android点击空白处,隐藏软键盘

    在做登陆或者注册的时候,软键盘经常可能会挡住一些界面.我们需要在输入完成之后隐藏软键盘. 在我们点击空白处或者非EditText的地方来隐藏软键盘. public class HomeActivity ...

  4. IntelliJ IDEA 使用总结[zz]

    本文转自:http://cowboy-bebop.iteye.com/blog/1035550,仅做稍微整理,转载请注明出处. 1. IDEA内存优化 因机器本身的配置而配置: \IntelliJ I ...

  5. PHP操作mysql数据库:[2]查询数据听语音

    本文主要详细讲解如何使用php语言,对mysql数据库进行查询.添加.删除.更新等操作. 工具/原料   Macromedia Dreamweaver 8 mysql数据库,php语言 一.前言   ...

  6. [PL/SQL]使用PL/SQL实现ORACLE的Excel格式导入导出

    注:教程所使用的PL/SQL Developer版本为10版本 1.oracle导出excel格式 第一步,在pl/sql窗口查询出你想要导出的数据. 第二步,选择你想导出的数据,然后右键" ...

  7. Windows下好用到必须开机自启的小工具

    折腾过linux,黑苹果,最后还是回到了盖茨大叔的windows.得出的结论是,日常使用的话,折腾Linux还不如把精力去拿去折腾windows.分享下折腾的成果,介绍下一些很不错的小工具.     ...

  8. Tomcat:基于HTTP协议的Connector配置

    Tomcat Connector 是请求接收环节与请求处理环节的连接器,具体点说,就是将接收到的请求传递给Tomcat WEB容器进行处理. Tomcat可以处理的不同协议的请求,例如HTTP协议.A ...

  9. Android横竖屏切换重载问题与小结

    (转自:http://www.cnblogs.com/franksunny/p/3714442.html) (老样子,图片啥的详细文档,可以下载后观看 http://files.cnblogs.com ...

  10. eclipse设置显示代码行数(转)

    (转自:http://jingyan.baidu.com/article/b2c186c89b7023c46ef6ff27.html) 载入eclipse的主页面,默认以英文版的eclipse为例 点 ...