ORACLE 如何处理表锁定问题

来源:互联网 发布:清北学霸 知乎 编辑:程序博客网 时间:2024/06/05 04:58

今天用 JetBrains DataGrip 连接Oracle 数据库操作数据库表时,命令update 和delete 均无法执行,一直卡着久久无法成功.试了很多次都是这样!这种情况下我是可以执行 query 操作的。 因为是第一次遇到这种情况,当时懵逼了一会。

Google一下,才发现是我操作某一个表启动了事务但是没有提交,然后我操作的表就被我锁住了,再然后我后面的操作就一直是处于假死状态(卡住了),下面详细记录一下我的处理过程。

一、首先通过SQL查询被锁定表

select p.spid,       a.serial#,       c.object_name,       b.session_id,       b.oracle_username,       b.os_user_name  from v$process p, v$session a, v$locked_object b, all_objects c where p.addr = a.paddr   and a.process = b.process   and c.object_id = b.object_id;

二、解锁被锁定的表

alter system kill session 'sid, serial#'; --alter system kill session '25,7357'

然后一切就正常了~~

原创粉丝点击