1. 查找存在锁阻塞的会话:
select sid,serial#,program,machine,username,event,blocking_instance,blocking_session from gv$session where wait_class <> 'Idle';
blocking_instance 锁源所在实例
blocking_session 锁源 SID
2. 根据 blocking_session 找到锁源:
select sid,serial#,program,machine,username,event,blocking_instance,blocking_session,paddr,sql_id,prev_sql_id from gv$session where inst_id=1 and sid= 157 ;
Sql_id 正在执行的SQL语句的ID
prev_sql_id 最后一次执行的SQL语句的ID
有时最后执行的SQL语句并不一定是引起阻塞的语句。
3. 根据 sql_id 或 prev_sql_id 查看 sql_text :
select sql_text from v$sql where sql_id='61d2zmyjyc3km';
4. 结束锁源会话:
alter system kill session ' 472 , 23983 ,@1' immediate;
