1. 程式人生 > >壓測xx業務資料庫資源大量等待,存在表鎖問題,導致資料庫無法正常執行解決辦法

壓測xx業務資料庫資源大量等待,存在表鎖問題,導致資料庫無法正常執行解決辦法

壓測xxxx業務期間,監控oracle資料庫資源大量等待,存在表鎖問題及相關sql,如圖:


資料庫查詢詳細表鎖情況如圖:

跑xxxx業務操作的時候,資料庫無響應,經查詢,執行xx表無響應,經檢視,存在鎖表情況導致。原因是update xx表時候沒做commit操作。

解決方法:

①查詢表鎖詳細資訊,找到對應的SID,SERIAL#:

SELECT l.session_id sid,

       s.serial#,

       l.locked_mode,

       l.oracle_username,     

       l.os_user_name,

       s.machine,

       s.terminal,

       o.object_name,

       s.logon_time    

FROM v$locked_object l,

       all_objects  o,

       v$session   s      

WHERE l.object_id = o.object_id

AND l.session_id = s.sid

ORDER BY sid,

s.serial#;

②殺死xx表鎖程序:

alter system kill session  '1146,55092'; --解鎖,SID,SERIAL#

③若鎖定的資源很長時間沒有被釋放,查出對應程序並進入linux伺服器殺死該程序:

select spid, osuser, s.program  from v$session s,v$process p

where s.paddr=p.addr and s.sid=1146;