关于Oracle 阻塞会话的查看与解除,这里只讲操作步骤,不讲原理。
Session 1 更新对象单没有提交

Session 2 更新的时候由于等待session1 锁更新行的tx 锁而陷入阻塞

Session 3更新的时候由于等待session1 锁更新行的tx 锁也陷入阻塞

问题的根源可以通过以下的查询获取。

可以看出sid 100和sid 33 都在以mode6(排他模式)请求tx 锁,而陷入阻塞队列。
在em中看的更加清楚一些。
查看阻塞锁

产看阻塞会话

原因和现象已经很明显了。
解决方法,命令行方式,只要找到引起阻塞会话的 sid,serial#,问题就此可以解决。

确认锁住的对象

事实上找到sid 就可以解决问题,
图形界面的话

Kill session 这个按钮就可以解决,没图形的话那只能在命令行下

本文永久更新链接地址:http://www.linuxidc.com/Linux/2014-10/10792.htm
select sid,type,lmode,request,ctime,block from v$lock where type ='TX'
select blocking_session,sid,wait_class,seconds_in_wait from v$session
where blocking_session is not null order by blocking_session desc
select * from v$lock where type ='TX'
select sid,serial# from v$session where machine ='xuchang-PC' and blocking_session is not null
alter system kill session '632,40769'
关键点是找到session通过session杀掉session
本文提供了一套详细的Oracle阻塞会话的查看与解除操作流程,包括如何识别阻塞锁、会话及锁住的对象,并介绍了通过命令行或图形界面解决阻塞的方法。

2677

被折叠的 条评论
为什么被折叠?



