oracle資料庫作業系統CPU利用率居高不下

2021-07-26 14:10:13 字數 1618 閱讀 6098

背景現象:

應用系統響應速度慢,常因為堵塞鎖過多導致系統堵死,應用無法使用。用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名稱

immediate_gets:以immediate模式latch請求數

gets:以willing to wait請求模式latch的請求數

spin_gets:第一次嘗試失敗,但在以後的輪次中成功

wait_time:花費在等待latch的時間

這裡需要注意misses/gets如果在達10%左右,則說明有比較嚴重的latch爭用

查詢問題sql_id

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...