1. 程式人生 > >Oracle鎖表查詢及解鎖kill

Oracle鎖表查詢及解鎖kill

Oracle在操作過程中,鎖表是時常發生的事情,當遇到鎖表時,該如何查詢鎖表session及程序,如何解鎖是經常困擾的事情,以下將介紹具體的操作步驟及方法供參考學習:

鎖表查詢的程式碼有以下的形式:

select count(*) from v$locked_object;

select * from v$locked_object;

檢視哪個表被鎖

  1. select b.owner,b.object_name,a.session_id,a.locked_mode  
  2. from v$locked_object a,dba_objects b  
  3. where b.object_id = a.object_id; 

檢視是哪個session引起的

  1. select b.username,b.sid,b.serial#,b.logon_time,b.paddr  
  2. from v$locked_object a,v$session b  
  3. where a.session_id = b.sid order by b.logon_time; 

查v$process系統程序檢視

select spid from v$process where addr=''   --在v$session表中依據被鎖sid查詢的paddr

殺掉對應session

執行命令:alter system kill session'1025,41';

其中1025為sid,41為serial#。

kill -9 剛才查出的spid or orakill 剛才查出的sid 剛才查出的spid