1. 程式人生 > >oracle後臺程序以及large pool

oracle後臺程序以及large pool

large pool用來分配大記憶體快,用來處理shared pool更大的記憶體,是做備用池,用以緩解oracle對共享池和pga區記憶體的使用壓力

使用large pool的物件主要有:

多執行緒伺服器MTS:在SGA的large_pool中分配UGA

語句的並行查詢parallel exection:用作程序間的訊息緩衝器

恢復管理器rman:備份時用作磁碟io緩衝器

檢視large_pool引數預設設定值,為0則應表示ASMM已開啟

show parameter large_pool_size

檢視large_pool當前執行期間ASMM實際分配大小

select pool,sum(bytes) from v$sgastat group by pool;

java pool

oracle在核心中加入了對java的支援,該緩衝區專為java開發和應用所設,若不用java程式則沒有必要改變該緩衝區的預設大小

檢視java_pool引數預設設定值,為0則應表示ASMM已開啟

show parameter java_pool_size

檢視Java_pool當前執行期間ASMM實際分配大小

select pool,sum(bytes) from v$sgastat group by pool;

streams_buffer

用於對流複製進行緩衝

檢視大小

show parameter streams_pool_size;

redo_log_buffer

對資料庫的任何修改都按順序被記錄在該緩衝區中,然後由LGWR程序根據條件更改資訊批量寫入磁碟上的redolog檔案,以節省磁碟io,該快取不參與ASMM的動態管理,不能自動調整大小

檢視redo_log_buffer大小

show parameter log_buffer;

select name,bytes from v$sgastat where name='log_buffer';

手工修改redo_log_buffer大小

alter system set log_buffer=6000000 scope=spfile;

oracle程序:

後臺程序

伺服器程序

使用者程序

後臺程序:

後臺程序是oracle的程式,用來管理資料庫的讀寫,恢復和監視等工作,伺服器程序主要是通過後臺程序和使用者程序進行聯絡和溝通,並由後臺程序與使用者程序進行資料交換

檢視已在執行的後臺程序

$ps -ef  |grep ora_

sql>select name,description from v$bgprocess where paddr != '00';

DBWn(資料庫寫入程序)

將資料緩衝區的資料寫入資料檔案,是負責資料緩衝區管理的一個後臺程序。預設數量是1個,最多10個。

資料緩衝快寫盤時,要將每個資料快取快的內容寫入到資料檔案內的指定快中,因這些指定快通常都是不連續的,因此寫這些快稱為離散寫,因磁頭須要反覆定位資料檔案內的各指定快,而磁頭反覆定位非常耗時,因此離散寫比較慢

DBWn的作用:

通過LRU演算法管理資料緩衝區,將修改後的dirty緩衝區資料寫入資料檔案,維護資料緩衝區的clean,以便使用者程序總能夠找到足夠的空閒緩衝區

通過延遲寫資料來優化磁碟io讀寫

LGWR

將日誌資料從日誌緩衝區寫入redolog日誌檔案組,日誌緩衝塊寫盤時,每個日誌緩衝塊的內容無需寫入到指定快,而只需順序寫入到日誌檔案內的每個快中即可,因此稱為順序寫,順序寫速度較快。

LGWR的作用·:

管理·日誌緩衝區,將資料庫的更改·寫入日誌檔案,以便維護資料的一致性,併為資料丟失後進行恢復提供依據

通過延遲寫日誌來優化磁碟io讀寫

關於事務

‘一個事務生成一條或多條重做記錄,一個重做記錄包含多個改動向量change vector,用用日誌資料進行恢復時,以事物為最小單位進行