首页 > 数据库技术 > 详细

Oracle锁表的原因及解锁方法

时间:2015-12-28 18:26:47      阅读:727      评论:0      收藏:0      [点我收藏+]
整个系统突然挂掉,su 无法切换用户,修改用户最大进程数后可以登录,重启服务后系统仍不正常,
后发现为 plsql 上修改 T_XXX_XXXX 表时有事务未提交,因此排查原因为更改数据没有提交事务,数据库就将表锁住。
提交或者回滚事务后系统正常

产生的原因最大的可能就是更改数据没有提交事务,数据库就将表锁住!所以在更新时不要用select * from a for update这样的语句很容易锁表,可能用select *,t.rowid from t 这样的语句代替,这个也是数据库推荐使用的语句。

解锁的方法: 1、查看锁表进程:

SQL:select * from v$session t1, v$locked_object t2 where t1.sid = t2.SESSION_ID;

2、将锁住的进程杀掉

SQL:alter system kill session SID,serial#;

Oracle锁表的原因及解锁方法

原文:http://www.cnblogs.com/zealotpz/p/5083200.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!