oracle的緩沖塊的管理機制一直沒有正式的發布過因此許多有經驗的oracle工程師都是通過經驗或者一下oracle文檔中的注釋來推斷oracle的緩沖塊的管理機制的
事實上oralce使用v$bh視圖來記錄與數據緩沖(data buffer)相關的信息它詳細記錄了數據緩沖中每一個數據塊(data block)的狀態信息
在v$bh視圖中的status字段記錄了數據塊的狀態在非OPS非RAC這樣的集群環境中數據塊的狀態會是下列幾種之一xcurcrreadfree用戶可以通過如下命令得到數據庫的狀態信息
SQL> select unique status from v$bh;
其狀態的意義分別是
xcur(exclusive current)的意思表示該數據塊處於排外模式;
cr表示該數據塊是一個克隆(clone)的數據庫可以執行共享的只讀操作;
free表示這是一個限制的數據塊oracle現在沒有使用它;
read表示該數據塊正在從磁盤讀取數據;
write表示數據庫正在往磁盤寫入數據;
在數據庫恢復過程中該字段還有另外兩個描述mrec和irec
mrec(media recovery)表示數據塊處於介質恢復模式;
irec(instance recovery)表示數據塊處於實例恢復模式;
在RAC環境中數據塊還有另外一種模式
scur (shared current)表示該數據庫正在和其他實例共享數據
From:http://tw.wingwit.com/Article/program/SQL/201311/16192.html