程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle教程 >> 當oracleSession被鎖死的時候

當oracleSession被鎖死的時候

編輯:Oracle教程

當oracleSession被鎖死的時候


經常出現一個問題,oracle的某張表突然無法更新了,無論是通過pl/sql Developer 還是通過sqlplus都無法更新,執行update語句或者執行select * from table_name for update 都一樣,一直處於執行狀態,無法完成,這時候我就猜想是不是session被鎖死了呢?帶著這個問題,我們寫一條SQL語句:

 
--鎖表查詢SQL
SELECT object_name, machine, s.sid, s.serial# 
FROM gv$locked_object l, dba_objects o, gv$session s 
WHERE l.object_id = o.object_id 
AND l.session_id = s.sid; 

執行結果如下:

\

可以看到這一條數據,也就是說,存在那麼一個表被鎖死了,這時候呢,我們也確認了,之前無法執行update的這張表確實是因為被鎖死了所以無法完成更新操作.<喎?http://www.Bkjia.com/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+yOe6zsrNt8XE2D+8zND41rTQ0NK7zPVTUWwg0+++5Do8L3A+CjxwPjwvcD4KPHByZSBjbGFzcz0="brush:sql;">ALTER system kill session '601, 802';

\

可以看到601 和802是查詢到SID 和Serial ,格式為:alter system kill session "sid, serial#'; 執行完成之後:


沒有了被鎖死的session了,這時候再去執行我們的表更新操作,可以看到,更新已經沒有問題了.

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved