今天,在使用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#'
还可以采用重新启动数据库方法。
大家有没有其它好的方法,欢迎提出,共同交流学习~~~
作者:zeke
出处:http://zhf.cnblogs.com/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。