Oracle中造成一些表被死锁或者会话异常退出,如执行了更新记录操作后,既没有commit也没有rollback,网络就断开了,也会造表或记录被锁住,待到超时后才会被解开,那样都会造成应用操作被阻塞。

可以以Oralce管理员权限用户登录Oracle数据,查询到被锁的对象,然后杀除指定的会话。

用下面的语句查询被锁的对象,可以带上更多约束条件,如schemaname等更精确的匹配。

    SELECT  a.object_id, a.session_id, b.object_name, c.*

    FROM  v$locked_object a, dba_objects b, v$session c

    WHERE  a.object_id = b.object_id

    AND  a.SESSION_ID = c.sid(+)

杀Seesion的SQL语句语法如下:

    alter system kill session 'sid, serial#'

如上面查出来的一条记录的sid是53, serial#为663,就执行以下的语句

    alter system kill session '53,663'

如果要一次性杀死多个会话,一个一个填写sid和serial#十分的繁琐,应该在查询被锁对象的同时拼凑出多条的杀会话语句,以分号分隔,一起复制下来,然后就可以批量的执行了。

拼凑kill语句的方式如下,下面加了一个过滤条件和一个排序,杀除真正关心的表,并且着重注意超时时间过长的会话。

 
SELECT 'alter system kill session ''' || c.sid || '' || ',' || c.serial# ||''';',
       a.object_id, a.session_id, b.object_name, c.*
  FROM v$locked_object a, dba_objects b, v$session c
 WHERE a.object_id = b.object_id
   AND a.SESSION_ID = c.sid(+)
   AND schemaname = 'Unmi'
 ORDER BY logon_time

最新文章

  1. splay最终模板
  2. 搜索框(Thinkphp5.0)
  3. Cocoapods - pod install 成功后找不到头文件解决
  4. 【JAVA Properties类概述】
  5. codeforces 709C C. Letters Cyclic Shift(贪心)
  6. 轻量级应用开发之(02)UIView
  7. 安卓/res/menu/的使用
  8. Java输出1~1000之间所有可以被3整除又可以被5整除的数
  9. 漫话C++0x(五)—- thread, mutex, condition_variable
  10. Gvim7.4简单配置
  11. poj1003
  12. CURL 宏定义列表
  13. Hadoop权威指南:从Hadoop URL读取数据
  14. VR全景智慧城市—城市就在你眼前
  15. npm install 时--save-dev和--save的区别
  16. CCF系列之出现次数最多的数(201312-1)
  17. js 对象属性遍历
  18. select2清除选择(选择框内的值)
  19. python读写json+字典保存
  20. c++11 template 模板练习

热门文章

  1. j建立一个小的servlet小程序
  2. phonegap在eclipse上的安装
  3. BZOJ 4481
  4. scrapy的UA池和代理池
  5. Android 显示意图和隐式意图的区别
  6. 15年用canvas画的
  7. inner join / left join / right join
  8. JVM 内存分配和垃圾回收(GC)机制
  9. IC验证概念总结
  10. SQL基本操作——约束