資料庫異常hang住解決
下午內網測試庫同事反應查詢更新資料很慢,有時甚至表都打不開,後來透過伺服器【linux】的top命令檢視了下,cpu和mem佔用正常,但wait高達80%多(下面兩圖顯示的就是問題前後觀察EM對比的截圖,版本是oracle10gR2,EM的效果比oracle11gR2遜色不少哈):
-------------------------------------->>
---------------------------->>
接著透過sqldevelpdev客戶端查詢有沒有鎖等待之類會話事件,果然有,而且是兩個session持有TX鎖,然後透過下面的sql查詢從oracle和linux級別kill掉了相應session,以為風波就此平靜,結果過了不到一分鐘查詢又出現,只不過這次只有一個session持有TX鎖,於是就去查詢對應的sql_txt,找到後發現是個同事寫的儲存過程,定時任務,當時正在執行,讓其確認下是不是任務執行出問題了,結果一查,是程式問題,造成的死迴圈,它會批次發起會話,kill一個後接著又鎖,迴圈反覆,後來他改了下程式後重新執行,一切恢復通暢.
--查詢死鎖
select sess.sid, sess.serial#, lo.oracle_username, lo.os_user_name, ao.object_name, lo.locked_mode
from v$locked_object lo, dba_objects ao,v$session sess
where ao.object_id = lo.object_id and lo.session_id = sess.sid;
--oracle級別kill session
alter system kill session '1627,1';
alter system kill session '1564,64740';
--查詢當前連線會話
select s.value,s.sid,a.username,a.MACHINE from v$sesstat S,v$statname N,v$session A
where n.statistic#=s.statistic# and name='session pga memory' and s.sid=a.sid and a.sid=1626
order by s.value;
--查詢造成死鎖的sql語句
SELECT a.SID, a.username, s.sql_text FROM v$session a, v$sqltext s
WHERE a.sql_address = s.address AND a.sql_hash_value = s.hash_value and a.SID=1626
ORDER BY a.username, a.SID, s.piece;
--造成鎖等待的操作內容
begin
flt_com.p_line_relation_change(:A0,:B0,:C0,:D0,:E0,:ret_errorcode,:ret_errorname);
end;
--透過sid查詢pid,進而透過系統級別kill
select spid, osuser, s.program from v$session s,v$process p where s.paddr=p.addr and s.sid=1605;
--伺服器級別kill
kill -9 spid
--------------------------------over game
-------------------------------------->>
---------------------------->>
接著透過sqldevelpdev客戶端查詢有沒有鎖等待之類會話事件,果然有,而且是兩個session持有TX鎖,然後透過下面的sql查詢從oracle和linux級別kill掉了相應session,以為風波就此平靜,結果過了不到一分鐘查詢又出現,只不過這次只有一個session持有TX鎖,於是就去查詢對應的sql_txt,找到後發現是個同事寫的儲存過程,定時任務,當時正在執行,讓其確認下是不是任務執行出問題了,結果一查,是程式問題,造成的死迴圈,它會批次發起會話,kill一個後接著又鎖,迴圈反覆,後來他改了下程式後重新執行,一切恢復通暢.
--查詢死鎖
select sess.sid, sess.serial#, lo.oracle_username, lo.os_user_name, ao.object_name, lo.locked_mode
from v$locked_object lo, dba_objects ao,v$session sess
where ao.object_id = lo.object_id and lo.session_id = sess.sid;
--oracle級別kill session
alter system kill session '1627,1';
alter system kill session '1564,64740';
--查詢當前連線會話
select s.value,s.sid,a.username,a.MACHINE from v$sesstat S,v$statname N,v$session A
where n.statistic#=s.statistic# and name='session pga memory' and s.sid=a.sid and a.sid=1626
order by s.value;
--查詢造成死鎖的sql語句
SELECT a.SID, a.username, s.sql_text FROM v$session a, v$sqltext s
WHERE a.sql_address = s.address AND a.sql_hash_value = s.hash_value and a.SID=1626
ORDER BY a.username, a.SID, s.piece;
--造成鎖等待的操作內容
begin
flt_com.p_line_relation_change(:A0,:B0,:C0,:D0,:E0,:ret_errorcode,:ret_errorname);
end;
--透過sid查詢pid,進而透過系統級別kill
select spid, osuser, s.program from v$session s,v$process p where s.paddr=p.addr and s.sid=1605;
--伺服器級別kill
kill -9 spid
--------------------------------over game
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29119536/viewspace-1162950/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 資料庫hang住,分析處理資料庫
- 導數時資料庫hang住分析資料庫
- 資料庫Hang住怎麼辦 - HANGANALYZE資料庫
- 儲存壞道造成資料庫hang住資料庫
- oracle僵死會話鎖住buffer,導致資料庫hang住Oracle會話資料庫
- 資料庫Hang住怎麼辦 - HANGANALYZE[final]資料庫
- Oracle 19.3資料庫impdp匯入view時hang住Oracle資料庫View
- 19c資料庫impdp匯入view時hang住資料庫View
- 恢復資料庫hang住/parallel recovery read buffer free資料庫Parallel
- oracle資料庫hang住分析工具Hanganalyze使用總結Oracle資料庫
- SQLServer因為OS虛擬記憶體不足而hang住異常解決-鎖定記憶體頁 (LPIM)SQLServer記憶體
- EXP Or EXPDP時hang住問題,MOS解決方案
- 【YashanDB知識庫】yac修改引數後關閉資料庫hang住資料庫
- 資料庫異常緩慢的解決 - FAST_START_PARALLEL_ROLLBACK資料庫ASTParallel
- solaris11使用truss解決系統命令hang住
- file-max設定過小導致oracle資料庫hang住Oracle資料庫
- 歸檔日誌無法歸檔導致資料庫hang住資料庫
- 解決Access連線 accdb 不可識別的資料庫格式異常資料庫
- 資料庫HANG著資料庫
- 資料庫異常緩慢的解決 - FAST_START_PARALLEL_ROLLBACK[轉帖]資料庫ASTParallel
- 資料庫異常難定位?GaussDB(DWS)運維神器TopSQL來解決資料庫運維SQL
- 記一次Oracle資料庫無響應(hang住)故障的處理Oracle資料庫
- 如何診斷oracle資料庫執行緩慢或hang住的問題Oracle資料庫
- Flash Recovery Area空間不足導致資料庫不能開啟或hang住資料庫
- 資料庫突然hang了資料庫
- 資料庫關閉Hang住,出現錯誤PMON failed to acquire latch, see PMON dump資料庫AIUI
- 資料泵匯入分割槽表長時間HANG住
- asm例項查詢asm相關檢視hang住解決方法ASM
- DataIntegrityViolationException異常:java利用mymatis連線資料庫異常AIExceptionJava資料庫
- DDL的鎖,編譯包經常hang住的場景編譯
- 檔案系統異常引起的資料庫open失敗的解決過程資料庫
- sqlplus -prelim和oradebug捕獲資料庫hang住的詳細資訊SQL資料庫
- Ionic異常及解決
- 【Oracle】資料庫hang 診斷Oracle資料庫
- 資料庫異常智慧分析與診斷資料庫
- 資料庫連線異常故障報告資料庫
- 資料庫連線異常處理思路資料庫
- 今晚遷移資料庫異常順利資料庫