oracle僵死會話鎖住buffer,導致資料庫hang住
1、問題描述
今天早上,現資料庫有點異常,透過hanganalyze分析,使用hanganalyze請參閱《 資料庫hang住,分析處理》,發現2172這個會話產生了enqueue阻塞,,導到程式執行非常緩慢,快到hang住的地步,開啟會話視窗查詢
SQL> select a.sid,a.serial#,b.spid,a.status,a.machine,a.program from v$session a,v$process b
2 where a.paddr = b.addr and a.sid = 2172
SID SERIAL# SPID STATUS MACHINE PROGRAM
---------- ---------- ------------ -------- ----------------------------------- -----------
2172 51610 12649312 ACTIVE mytest.test.com JDBC Thin Client
由於這個會話產生了阻塞,首先我想到了直接查殺。
SQL> alter system kill session '2172,51610';
alter system kill session '2172,51610'
*
ERROR at line 1:
ORA-00030: User session ID does not exist.
發現,提示這個會話不存在。
2、問題分析
於是,我嘗試從作業系統上面查詢這個程式
[oracle@mydbtest:/oracle]$kill -9 12649312
kill: 13304684: 0403-003 The specified process does not exist.
從作業系統上,顯示沒有這個程式,所以,初步判斷,會話存在,由於某些意外產生,導致該會話的程式被作業系統清理掉了,但其在oracle的sga仍然佔有資源沒有被pmon\smon清理掉,未能釋放,導致其它程式無法使用,進而產生阻塞。
3、問題解決
從上面的查詢來看,該會話是活動狀態的。
所以看一下這個會話的情況:
SQL> select a.name,b.xacts,c.sid,c.serial#,c.username,d.sql_text
2 from v$rollname a,v$rollstat b,v$session c,v$sqltext d,v$transaction e
3 where a.usn = b.usn and b.usn = e.xidusn
4 and c.taddr = e.addr and c.sql_address = d.address
5 and c.sql_hash_value = d.hash_value and c.sid = 2172
6 order by a.name,c.sid,d.piece;
NAME XACTS SID SERIAL# USERNAME SQL_TEXT
------------------------------ ---------- ---------- ---------- ---------------- ---------------------------------------------------
_SYSSMU22$ 1 2172 51610 mytest update mytest_t set doc_subject = b1, doc_create_ti =
該會話正在進行修改,但由於某些原因,導致問題產生。由於該會話是佔用sga資源沒有釋放,所以只有清空buffer pool池,來清理掉該會話的資源
SQL> alter session set events 'immediate trace name flush_cache level 1';
Session altered.
再進去檢視,會話已經消失,阻塞已經消失了,業務立刻順暢起來。
oracle10g以後,提供了一種新的重新整理buffer的方法:
SQL> alter system flush BUFFER_CACHE;
System altered.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29371470/viewspace-1067786/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- file-max設定過小導致oracle資料庫hang住Oracle資料庫
- 導數時資料庫hang住分析資料庫
- 中止程式導致系統HANG住
- 歸檔日誌無法歸檔導致資料庫hang住資料庫
- 恢復資料庫hang住/parallel recovery read buffer free資料庫Parallel
- 資料庫hang住,分析處理資料庫
- Flash Recovery Area空間不足導致資料庫不能開啟或hang住資料庫
- 資料庫異常hang住解決資料庫
- Oracle 19.3資料庫impdp匯入view時hang住Oracle資料庫View
- oracle資料庫hang住分析工具Hanganalyze使用總結Oracle資料庫
- 資料庫Hang住怎麼辦 - HANGANALYZE資料庫
- 儲存壞道造成資料庫hang住資料庫
- 密碼延遲驗證導致的系統HANG住密碼
- 資料庫Hang住怎麼辦 - HANGANALYZE[final]資料庫
- Oracle11G密碼延遲驗證導致的系統HANG住Oracle密碼
- FAL_SERVER設定錯誤導致SWITCHOVER切換HANG住Server
- 19c資料庫impdp匯入view時hang住資料庫View
- 資料庫鎖的12連問,抗住!資料庫
- 記一次Oracle資料庫無響應(hang住)故障的處理Oracle資料庫
- 如何診斷oracle資料庫執行緩慢或hang住的問題Oracle資料庫
- 11gR2修改使用者後導致系統HANG住
- oracle表鎖住 解鎖辦法Oracle
- RAC節點hang住, oracle bug導致了cpu過高,無法啟動叢集隔離Oracle
- oracle 10gR2 用emca命令線上重建em會導致資料庫hangOracle 10g資料庫
- 網路問題或客戶端異常可能導致資料庫會話處於僵死狀態客戶端資料庫會話
- 刪除oracle表被鎖住Oracle
- shutdown命令被job程式hang住
- DDL的鎖,編譯包經常hang住的場景編譯
- oracle hang住的時候怎麼登陸呢?Oracle
- 資料泵匯入分割槽表長時間HANG住
- shutdown命令被job程式hang住(續)
- 資料庫關閉Hang住,出現錯誤PMON failed to acquire latch, see PMON dump資料庫AIUI
- oracle 9i資料庫夯住無法歸檔Oracle資料庫
- sqlplus -prelim和oradebug捕獲資料庫hang住的詳細資訊SQL資料庫
- MySQL:kill和show命令hang住一列MySql
- SUN E6500雙機hang住處理
- “rebuild index online hang住" 問題解析RebuildIndex
- 批次錯誤使用者名稱與密碼導致業務使用者HANG住(library cache lock)密碼