oracle常用後臺程序及sql語句執行流程

夜雨归人發表於2024-09-20
1.checkpoint
功能:減少崩潰恢復crash recovery時間。檢查點可以確保在某個時間點之前的所有事務都寫入磁碟,保證資料一致性
後臺程序ckpt觸發,ckpt通知dbwr程序將髒資料庫dirty buffer 寫出到資料檔案上.更新資料檔案頭及控制檔案上的檢查點
觸發條件:資料庫一致性關閉、alter system checkpoint;、線上日誌切換、alter database begin backup
2.dbwr(隨機寫)
功能:將緩衝區快取buffer cache 中的髒資料塊dirty blocks寫入到資料檔案。為了提高效能,oracle不會每次修改資料立即寫入磁碟,而是先將修改的資料塊儲存在緩衝區快取中,並標記為髒塊.dbwr負責適當時候將髒塊寫入到磁碟
觸發條件:固定時間間隔3s、檢查點事件、快取空間不足
3.lgwr (連續寫)
功能:將重做日誌緩衝區redo log buffer 中的重做日誌條目寫入到線上重做日誌檔案online redo log中。
觸發條件:固定時間間隔3s、事務提交commit、快取空間不足、線上日誌切換也可以
4.arch
功能:將已經填滿的線上重做日誌檔案複製到歸檔位置,用於資料庫的備份和恢復操作。
觸發條件:線上重做日誌檔案滿、線上日誌切換
流程: 1)buffer cache找到需要的資料塊,如果沒有,從資料檔案讀入到buffer cache中。
    2)事務修改buffer cache的資料塊,標記為髒資料,同時寫入log buffer中(先log buffer後buffer cache)
3)事務提交commit,lgwr將條目從log buffer寫入聯機重做日誌檔案
4)執行checkpoint,同步資料庫,更新資料檔案頭的資訊,觸發dbwr程序將buffer cache髒資料寫入到磁碟

相關文章