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資料庫
- Oracle 19.3資料庫impdp匯入view時hang住Oracle資料庫View
- 19c資料庫impdp匯入view時hang住資料庫View
- 【YashanDB知識庫】yac修改引數後關閉資料庫hang住資料庫
- 資料庫鎖的12連問,抗住!資料庫
- RAC節點hang住, oracle bug導致了cpu過高,無法啟動叢集隔離Oracle
- sqlplus -prelim和oradebug捕獲資料庫hang住的詳細資訊SQL資料庫
- MySQL:kill和show命令hang住一列MySql
- oracle使用者鎖住、過期處理方式Oracle
- 批次錯誤使用者名稱與密碼導致業務使用者HANG住(library cache lock)密碼
- fanuc機床鎖住解除
- synchronized到底鎖住的是誰?synchronized
- runc hang 導致 Kubernetes 節點 NotReady
- Oracle 28.6資料庫impdp匯入view時hang@11Oracle資料庫View
- Oracle sysman.mgmt_jobs導致資料庫自動重啟Oracle資料庫
- 【資料庫資料恢復】斷電導致Oracle資料庫資料丟失的資料恢復案例資料庫資料恢復Oracle
- SQLServer因為OS虛擬記憶體不足而hang住異常解決-鎖定記憶體頁 (LPIM)SQLServer記憶體
- 資料庫伺服器記憶體不夠,DBW0 hang死導致sqlplus連不上資料庫伺服器記憶體SQL
- ORACLE DSG資料同步軟體程式導致資料庫無法正常關閉Oracle資料庫
- win10系統筆記本如何鎖住鍵盤 win10鎖住筆記本鍵盤的方法Win10筆記
- 【北亞資料恢復】異常斷電導致Oracle資料庫報錯的oracle資料恢復資料恢復Oracle資料庫
- Oracle資料庫分割槽表SPLIT操作導致歸檔瘋漲Oracle資料庫
- 【oracle資料庫資料恢復】誤操作導致的資料庫誤刪除的資料恢復案例Oracle資料庫資料恢復
- 【DB筆試面試352】在Oracle資料庫中,哪些操作會導致索引失效?--UNUSABLE INDEXES筆試面試Oracle資料庫索引Index
- 淺談時序資料庫核心:如何用單機扛住億級資料寫入資料庫
- ORACLE一體機pcie 快取卡損壞導致資料庫dang機Oracle快取資料庫
- oracle 會話(session)被鎖瞭解決方法Oracle會話Session
- 資料庫不使用悲觀鎖導致問題的一種復現方式資料庫
- a-select由於位置不夠,導致下拉選單擋住搜尋框的問題
- 資料庫會話數量過多,定期清理inactive會話資料庫會話
- 總結導致oracle資料庫主機CPU sys%高的一些原因Oracle資料庫
- 深圳辦公室出租,鎖住數字化人才的心
- 即導住面放積最組況解處dim
- MySQL的index merge(索引合併)導致資料庫死鎖分析與解決方案MySqlIndex索引資料庫
- Oracle:select 或 inactive 會話語句產生鎖?Oracle會話
- 穀雨資料:北京住別墅的都是什麼人?
- 【北亞資料恢復】伺服器斷電導致Oracle資料庫報錯的資料恢復案例資料恢復伺服器Oracle資料庫
- 【YashanDB知識庫】archivelog磁碟滿導致資料庫abnormalHive資料庫ORM
- 大禮包 or 苟住?