壓測xx業務資料庫資源大量等待,存在表鎖問題,導致資料庫無法正常執行解決辦法
阿新 • • 發佈:2019-02-08
壓測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;