oracle 寫入資料的過程

flysky0814發表於2007-12-21

1、事務開始;

2、buffer cache中找到需要的資料塊,如果沒有找到,則從資料檔案中載入buffer cache中;

3、事務修改buffer cache的資料塊,該資料被標識為“髒資料”,並被寫入log buffer中;

4、事務提交,LGWR程式將log buffer中的“髒資料”寫入redo log file中;

5、當發生checkpoint,CKPT程式更新所有資料檔案的檔案頭中的資訊,DBWn程式則負責將Buffer Cache中的髒資料寫入到資料檔案中。

附:checkpoint由ckpt程式觸發oracle進行checkpoint動作,將data buffer中的髒塊(已經寫在redo裡記錄但是沒有寫到datafile裡的)的內容寫入到data file裡並釋放站用的空間,由dbw後臺程式完成,並修改controlfile和datafile的scn.
一般手工執行(alter system checkpoint)是由於要刪除某個日誌但是該日誌裡還有沒有同步到data file裡的內容,就需要手工check point來同步資料,然後就可以drop logfile group n.

[@more@]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/11423276/viewspace-995410/,如需轉載,請註明出處,否則將追究法律責任。

相關文章