Oracle锁表现象及解决

本文分享了在Oracle数据库中未及时commit导致的锁表现象及解决步骤。通过SYSDBA权限查询锁定对象,并使用特定SQL语句杀死锁定会话,最后强调了commit的重要性。

今天在删除Oracle数据时,由于没有commit,出现了锁表现象。因此猜想当我们在对数据库的数据进行改动时,如果没有commit,那么Oracle就会自动锁表。锁表之后的现象为:不能对数据库中的数据进行和更改和删除。

解决方案(PLsql环境下):

1、以SYSDBA登陆数据库;

2、输入如下sql:

elect /*+ rule */ lpad(' ',decode(l.xidusn ,0,3,0))||l.oracle_username user_name,
       o.owner,
       o.object_name,
       o.object_type,
       s.sid,
       s.serial#
from v$locked_object l,dba_objects o,v$session s
where l.object_id=o.object_id
and l.session_id=s.sid
order by o.object_id,xidusn desc;

3、根据查询出的Sessionid和Serialid执行如下sql:

alter system kill session '968,10069';   --968,10069:Sessionid/Serialid
commit;

 

最后希望这点小发现希望能帮助到你,再有就是一定记住要commit!commit!commit!重要的话说三遍!!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值