當oracle Session被鎖死的時候,oraclesession

來源:互聯網
上載者:User

當oracle Session被鎖死的時候,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的這張表確實是因為被鎖死了所以無法完成更新操作.

如何釋放呢?繼續執行一條SQl 語句:

ALTER system kill session '601, 802'; 


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


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


相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.