Oracle中记录被锁解锁方法

本文介绍了当在Oracle数据库中遇到记录被锁定无法更新的情况时的解决方案。主要包括查看锁定的数据库对象、查找锁定会话的详细信息并最终通过杀死锁定会话或重启数据库来解决问题。

  今天,在使用update更新一条记录时,怎么都更新不了,一直处在没反应状态,然后采用编辑行记录时提交就说记录被锁,才知道具体的原因了。

  最后通过以下办法总算把记录更新了

  一.查看数据库锁,诊断锁的来源及类型

1 Select object_id,session_id,locked_mode From v$locked_object;

 

或者:

1 Select b.owner,b.object_name,l.session_id,l.locked_mode
2  From v$locked_object l, dba_objects b
3  Where b.object_id=l.object_id

 

  二.找出数据库的serial#值,用来杀死

1 Select t2.username,t2.sid,t2.serial#,t2.logon_time
2  From v$locked_object t1,v$session t2
3  Where t1.session_id=t2.sid Order by t2.logon_time;

 

  三.杀死被锁的session

1 Alter system Kill session 'sid,serial#'

 

还可以采用重新启动数据库方法。

大家有没有其它好的方法,欢迎提出,共同交流学习~~~

转载于:https://www.cnblogs.com/ZHF/archive/2010/08/25/1808297.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值