使用Oracle时,发现有表被锁,又不知道是谁(或者哪个程序)锁的,怎么办 ?
两步走:
1、查找出被锁对象的会话ID和序列号
执行如下SQL:
-- 查询出被锁对象,并提供 kill 脚本 SELECT S.SID, S.MACHINE, O.OBJECT_NAME, L.ORACLE_USERNAME, L.LOCKED_MODE, S.OSUSESR, 'ALTER SYSTEM KILL SESSION '''|| S.SID || ', '|| S.SERIAL#||''';' AS KILL_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
2、KILL
复制出第1步查询结果中的 KILL_COMMAND 字段值,执行。
-- kill 的基本语法 ALTER SYSTEM KILL SESSION '$SID, $SERIAL#';
您可能感兴趣的文章:
- oracle11g用户登录时被锁定问题的解决方法 (ora-28000 the account is locked)
- oracle表被锁定的完美解决方法
- Oracle用户被锁的原因及解决办法
- Oracle数据表中的死锁情况解决方法
- Oracle删除死锁进程的方法
- 快速查出Oracle数据库中锁等待的方法
- oracle查看被锁的表和被锁的进程以及杀掉这个进程
- oracle修改scott密码与解锁的方法详解
- ORACLE 如何查询被锁定表及如何解锁释放session
- oracle查询锁表与解锁情况提供解决方案
- Oracle 添加用户并赋权,修改密码,解锁,删除用户的方法
- Oracle锁处理、解锁方法
声明:本站(华域联盟www.cnhackhy.com)所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

评论(0)