背景現象:
應用系統響應速度慢,常因為堵塞鎖過多導致系統堵死,應用無法使用。用top命令檢視,cpu利用率居高不下
處理過程:
檢視oracle的等待事件,select event,count(*) from v$session_wait group by event;
發現有21個latch: cache buffers chains事件,latch是記憶體的爭用導致
確認為latch: cache buffers chains引起的故障後,檢視latch的命中率
sql>select name, gets, misses/gets, sleeps,
immediate_gets, immediate_misses
from v$latch
where name = 『cache buffers chains』;
各列名稱意義如下
name:latch名稱查詢問題sql_idimmediate_gets:以immediate模式latch請求數
gets:以willing to wait請求模式latch的請求數
spin_gets:第一次嘗試失敗,但在以後的輪次中成功
wait_time:花費在等待latch的時間
這裡需要注意misses/gets如果在達10%左右,則說明有比較嚴重的latch爭用
select *
from (select count(*),
sql_id,
nvl(o.object_name, ash.current_obj#) objn,
substr(o.object_type, 0, 10) otype,
current_file# fn,
current_block# blockn
from v$active_session_history ash, all_objects o
where
event
like
'latch: cache buffers chains'
and o.object_id(+) = ash.current_obj#
group
by sql_id,
current_obj#,
current_file#,
current_block#,
o.object_name,
o.object_type
order
by count(*) desc)
where rownum <= 10;
--sql_id對應sql
select sql_fulltext from v$sqlarea where sql_id='&sqlid';
找出對應sql語句,分析其執行計畫,根據業務進行針對性優化,最終問題解決 操作系統重灌,如何恢復oracle資料庫
兩種方法 首先都是需要安裝oracle軟體,最好按照原來的目錄結構 1.把你的oracle檔案全部copy到另外乙個分割槽 再安裝oracle,按以前的所有的配置安裝 sid,服務名,字符集 目錄完全一致,安裝後停掉所有oracle相關的服務,再把備份的檔案copy回來,重新啟動服務,一般就ok了 ...
資料庫之作業系統 筆記
活躍就緒 是指程序在主存並且可被排程的狀態。靜止就緒 掛起就緒 是指程序被對換到輔存時的就緒狀態,是不能被直接排程的狀態,只有當主存中沒有活躍就緒態程序,或者是掛起就緒態程序具有更高的優先順序,系統將把掛起就緒態程序調回主存並轉換為活躍就緒。活躍阻塞 是指程序已在主存,一旦等待的事件產生便進入活躍就...
作業系統崩潰後,恢復ORACLE 9資料庫
作業系統崩潰後,恢復oracle 9資料庫 參照文章http blog.csdn.net whqcfp archive 2006 11 23 1408229.aspx 並感謝one dollar提供這個文章 oracle 資料庫安裝在d盤遺留下資料檔案 檔案分布結構如下 d oracle orada...