共計 2454 個字符,預計需要花費 7 分鐘才能閱讀完成。
這篇文章將為大家詳細講解有關 oracle 后臺進程是怎樣的,文章內容質量較高,因此丸趣 TV 小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
oracle 后臺進程伴隨實例的啟動而啟動,他們主要是維護數據庫的穩定,相當于一個企業中的管理者及內部服務人員。他們并不會直接給用戶提供服務。
一:database write– 數據寫入 DBWR
作用: 把 SGA 中被修改的數據同步到磁盤文件中。保證 Buffer Cache 中有足夠的空閑數據塊數量。
PS:如果 LGWR 出現故障,DBWR 不會聽從 CKPT 命令罷工,因為 Oracle 在將數據緩存區數據寫到磁盤前,會先進行日志緩沖區寫進日志文件的操作,并耐心的等待其先完成,才會去完成這個內存刷到磁盤的動作,這就是所謂的凡事有記錄。
觸發條件: 1、檢查點 CKPT
2、一個服務進程在設定的時間內沒有找到空閑塊
3、每三秒自動喚醒一次。
設置:DB_WRITER_PROCESS 用來定義 DBWn 進程數量。(commit 命令只是把記錄修改寫入日志文件,不是把修改后的數據寫入數據文件)
二:log write:LGWR– 日志文件寫入 (勞模,很重要很忙碌的一個進程)
作用: 把 log buffer 中的日志內容寫入聯機的日志文件中,釋放 log 用戶 buffer 空間。
觸發條件:1、用戶發出 commit 命令。(在 oracle 中稱為快速提交機制(fast commit)): 把 redo log buffer 中的記錄寫入日志文件,寫入一條提交的記錄
2、三秒定時喚醒。
3、日志緩沖區 log buffer 超過 1 /3,或日志數量超過 1M。
4、DBWR 進程觸發:DBWn 視圖將臟數據塊寫入磁盤先檢測他的相關 redo 記錄是否寫入聯機日志文件,如果沒有就通知 LGWR 進程。在 oracle 中成為提前寫機制(write ahead):redo 記錄先于數據記錄被寫入磁盤
5、聯機日志文件切換也將觸發 LGWR。
三:checkpoint:CKPT- 檢查點事件
作用: 維護數據庫一致性狀態。檢測點時刻數據文件與 SGA 中的內容一致,這不是一個單獨的進程,要和前兩個進程一起工作呦。DBWR 寫入臟數據,同時觸發 LGWR 進程。
CKPT 更新控制文件中的檢查點記錄。通過設置某參數調整來控制 CKPT 的觸發時間。參數是 FAST_START_MTTR_TARGET。
觸發條件: 日志切換 (log switch) 會觸發檢查點。
四:process monitor:PMON– 維護用戶進程 進程監控器
作用:1、發現用戶進程異常終止,并進行清理。釋放占用資源。(清理異常終止用戶使用的鎖)
2、向監聽程序動態的注冊實例。
觸發條件: 定時被喚醒,其他進程也會主動喚醒它。
五:system monitor:SMON– 實例維護進程 系統監控器
作用:1、負責實例恢復,前滾 (Roll Forward) 恢復到實例關閉的狀態,使用最后一次檢查點后的日志進程重做。這時包括提交和未提交的事務。打開數據庫,進行回滾(Roll Back): 回滾未提交的事務。(oracle 承諾 commit 之后數據不會丟失,現在我們可以大致的了解是如何實現這個承諾,以及在數據的安全性和數據庫性能之間的平衡選擇。)
2、負責清理臨時段,以釋放空間
觸發條件: 定期被喚醒或者被其他事務主動喚醒。
六:LCKn 僅適用于 RAC 數據庫,最多可有 10 個進程(LCK0,LCK1,…,LCK9),用于實例間的封鎖。
七:archive:ARCH– 歸檔操作
作用: 發生日志切換時把寫滿的聯機日志文件拷貝到歸檔目錄中。(LGWR 寫日志寫到需要覆蓋重寫的時候,觸發 ARCH 進程去轉移日志文件,復制出去形成歸檔日志文件,以免日志丟失)
觸發條件: 日志切換時被 LGWR 喚醒。
設置:LOG_ARCHIVE_MAX_PROCESSES 可以設置 oracle 啟動的時候 ARCH 的個數。
八:Distributed Database Recovery –RECO 用于分布式數據庫的恢復
某個應用跨越多個數據庫,需要都提交成功,事務才會成功,否則全部回滾。
以上是八個最核心、最重要、最有用進程,以下還列出了一些進程。
九:manageability monitor:MMON–AWR 主要的進程
作用:1、收集 AWR 必須的統計數據,把統計數據寫入磁盤。10g 中保存在 SYSAUX 表空間中。
2、生成 server–generated 報警
每小時把 shared pool 中的統計信息寫入磁盤,或者 shared pool 占用超過 15%。
十:manageability monitor light:MMNL: 輕量級的 MMON
十一:memory manager:MMAN: 自動內容管理
作用: 每分鐘都檢查 AWR 性能信息,并根據這些信息來決定 SGA 組件最佳分布。
設置:STATISTICS_LEVEL: 統計級別
SGA_TARGET:SGA 總大小
十二:job queue coordinator:CJQ0– 數據庫定時任務
Oracle 的作業隊列管理依賴于后臺進程的執行,它們進行數據刷新及其他定期的作業。調度進程 CJQ0,選擇將要執行的作業并擴展作業隊列進程(J000-J999)以執行這些作業
十三:recover writer:RVWR
作用: 為 flashback database 提供日志記錄。把數據塊的前鏡像寫入日志。
十四:change tarcking writer:CTWR
作用: 跟蹤數據塊的變化,把數據塊地址記錄到 change_tracking file 文件中。RMAN 的增量備份將使用這個文件來確定那些數據塊發生了變化,并進行備份
關于 oracle 后臺進程是怎樣的就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。