锁表锁存储过程遇到过好多次,有的是代码漏洞,没有回滚事物;有的时候就是网不好,存储过程调试着就断了,关了PLSQL之后,那个session其实还在,就锁死了,必须要手动杀死才行。之前有的项目还有这种情况,处理单据时,锁住单据行,然后回滚的时候其实不是同一个数据库连接对象,回滚了也没有,更有甚者,抛出异常了没有回滚,直接gg,锁了好多行。
1、2比较简单粗暴,疗效也不错
2、3比较稳,一个个确认后再杀死

1.查询所有被锁对象

SELECT SQL_TEXTFROM V$SQLWHERE HASH_VALUE IN(SELECT SQL_HASH_VALUEFROM V$SESSIONWHERE SID IN (SELECT SESSION_ID FROM V$LOCKED_OBJECT));

2.释放所有被锁对象

DECLARECURSOR MYCUR ISSELECT B.SID, B.SERIAL#   FROM V$LOCKED_OBJECT A, V$SESSION B   WHERE A.SESSION_ID = B.SIDGROUP BY B.SID, B.SERIAL#;
BEGINFOR CUR IN MYCUR LOOPEXECUTE IMMEDIATE ('alter system  kill session  ''' || CUR.SID || ',' ||CUR.SERIAL# || ''' ');END LOOP;
END;

3.查询被锁对象详情

SELECT A.OWNER 方案名, A.OBJECT_NAME 表名, B.XIDUSN 回滚段号, B.XIDSLOT 槽号, B.XIDSQN 序列号, B.SESSION_ID 锁表SESSION_ID, B.ORACLE_USERNAME 锁表用户名, decode(D.type, 'XR', 'NULL', 'RS', 'SS(Row-S)', 'CF', 'SS(Row-S)', 'TM', 'TABLE LOCK', 'PW', 'TABLE LOCK', 'TO', 'TABLE LOCK', 'TS', 'TABLE LOCK', 'RT', 'ROW LOCK', 'TX', 'ROW LOCK', 'MR', 'S(Share)', NULL) 锁定方式, C.MACHINE 用户组, C.TERMINAL 机器名, B.OS_USER_NAME 系统用户名, B.PROCESS 系统进程id, DECODE(C.STATUS, 'INACTIVE', '不活动', 'ACTIVE', '活动') 活动情况, C.SERVER, C.SID, C.SERIAL#, C.PROGRAM 连接方式, C.LOGON_TIME FROM ALL_OBJECTS A, V$LOCKED_OBJECT B, SYS.GV_$SESSION C, v$lock d
WHERE (A.OBJECT_ID = B.OBJECT_ID) AND (B.PROCESS = C.PROCESS) and C.sid = d.sid and B.LOCKED_MODE = D.LMODE
ORDER BY 1, 2;

4.杀死session

alter system kill session '391';

ORACLE查询通用查询被锁对象以及解锁方案相关推荐

  1. oracle查询属主下对象,SQL优化

    Oracle Index Merge 与 and_equal 的变迁 June 8, 2010 and_equal是Oracle支持的一种特定操作,可以将多个单列索引进行合并(Index Merge) ...

  2. oracle 查看表被锁和如何解锁

    前提:该用户必须拥有DBA权限,否则提示找不到表和视图 一,oracle 查看哪些表被锁 select c.sid, c.serial#, c.username, c.osuser, b.owner, ...

  3. Oracle数据库账号被锁了怎么解锁

    一.快速解决方法(推荐): 1.以管理员身份登录sys用户: 2.解锁用户:ALTER USER ZHB(用户名) ACCOUNT UNLOCK; 3.修改密码:alter user ZHB iden ...

  4. 查询Oracle正在执行的sql语句,锁表,解锁

    原文出处:http://blog.csdn.net/jlds123/article/details/6572559 ----------------------- --查询Oracle正在执行的sql ...

  5. zbb20170728 oracle 查看被锁对象

    查询Oracle正在执行和执行过的SQL语句--查询Oracle正在执行的sql语句及执行该语句的用户SELECT b.sid oracleID,b.username 登录Oracle用户名,b.se ...

  6. 个人总结-oracle查询锁表、解锁语句

    –oracle查询锁表解锁语句 –首先要用dba权限的用户登录,建议用system,然后直接看sql吧 1. 如下语句 查询锁定的表. SELECT L.SESSION_ID SID,S.SERIAL ...

  7. oracle update 锁表还是锁行,for update造成的Oracle锁表与解锁

    我遇到的情况: 当使用select语句查询表时,后面跟着for update , select * from table for update 当修改表中数据,但是没有commit就关掉PL/SQL, ...

  8. Oracle的锁表与解锁

    Oracle的锁表与解锁 SELECT /*+ rule */ s.username, DECODE (l.TYPE, 'TM', 'TABLE LOCK', 'TX', 'ROW LOCK', NU ...

  9. oracle dba_waiters中的lockid是什么,查询Oracle中的阻塞锁(以及阻塞在哪个数据上)的SQL...

    查询Oracle中的阻塞锁(以及阻塞在哪个数据上)的SQL 数据库阻塞检查处理方法 当应用服务器发生阻塞时(特别是集群1),应先按下面方法检查数据库,以判明应用服务器阻塞是否由数据库阻塞引起. 如果 ...

最新文章

  1. WMI技术介绍和应用——Instance/Method Provider
  2. 【Android 逆向】Android 进程注入工具开发 ( 注入代码分析 | 获取 远程 目标进程 中的 /system/lib/libc.so 动态库中的 mmap 函数地址 )
  3. 传说中的数据结构_JAVA
  4. Boost:align down向下对齐的测试程序
  5. 第七章|7.3并发编程|协程
  6. 西门子修复热门 CAD 库中的多个代码执行高危漏洞
  7. python转义引号的作用_在Jinja2中渲染时转义双引号
  8. https验证失败+Android,okhttpSSL证书验证失败有关问题
  9. Ubuntu系统使用罗技鼠标
  10. 免费开源!仿微信仿陌陌类APP源代码整项目开源,包括ADT项..
  11. asio几种异步编程模型
  12. 质量管理:PDCA循环
  13. 微信网页版如何给公众号发消息
  14. 服务器断电后可以自动开机吗,想要服务器断电后自动开机,怎么设置?
  15. 老李聊股:中油工程(第三篇)
  16. 如何使用 Django 进行分页
  17. 逆向学习litevm篇
  18. 如何把IP-GUARD发布到公网IP来管理全国分公司的终端
  19. 只会用 xxl-job?更强大的新一代分布式任务调度框架来了!
  20. 【历史上的今天】8 月 5 日:微信 5.0 发布;百度上市;LinkedIn 创始人诞生

热门文章

  1. 如何在回调中访问正确的“ this”?
  2. win11安装报错0xc1900101怎么办 Windows11安装报错0xc1900101的解决方法
  3. 代码查看工具_不好用打我 | 六个前端开发在线工具推荐
  4. python基础刷题_数据结构与算法LeetCode刷题(Python)
  5. 百度网页搜索无法通过域名访问_网站换域名或网页内容改版对网站的影响以及网站换域名注意事项...
  6. Android:一个简单的秒表实现
  7. 计算机能考四川司法学院吗,四川司法警官职业学院计算机文化基础课程在线考试系统...
  8. 陇东学院计算机学院教授有,陇东学院
  9. vue页面乱码_项目部署到weblogic后页面乱码问题
  10. 拳魂觉醒服务器维护怎么办,拳魂觉醒 哪些不为人知的的小秘密