[color=orange][b]问题背景:[/b][/color]
开发人员在进行数据库开发时,时常会遇到某个表无法进行更新操作,比如修改或删除。尤其是多人共用一台数据库服务器时,更容易出现此类情况,为什么呢?
这是因为,数据库表被锁。为什么被锁?这是因为某开发人员在数据库端执行了更新操作却忘了commit,从而导致数据库表被锁。那么如何解决呢?即如何解锁呢?
[color=orange][b]解决步骤:[/b][/color]
1、执行下面的SQL,找到被锁的表:
2、根据查询结果中每条记录的sid和serial#杀掉SESSION:
3、大功告成。
开发人员在进行数据库开发时,时常会遇到某个表无法进行更新操作,比如修改或删除。尤其是多人共用一台数据库服务器时,更容易出现此类情况,为什么呢?
这是因为,数据库表被锁。为什么被锁?这是因为某开发人员在数据库端执行了更新操作却忘了commit,从而导致数据库表被锁。那么如何解决呢?即如何解锁呢?
[color=orange][b]解决步骤:[/b][/color]
1、执行下面的SQL,找到被锁的表:
select b.owner table_owner,b.object_name,c.username,c.sid,c.serial#
from v$locked_object a,dba_objects b,v$session c
where a.object_id=b.object_id and c.sid=a.session_id;
2、根据查询结果中每条记录的sid和serial#杀掉SESSION:
alter system kill session 'sid,serial#';
3、大功告成。