標籤:
我們經常說資料庫執行個體,執行個體其實就是指的是資料庫的記憶體結構和進程結構。我們安裝資料庫軟體大量的是在安裝其記憶體和進程組件結構。上篇節我們介紹了oracle記憶體結構,這節就介紹下oracle進程結構。
首先看下oracle進程的分類:
1)使用者進程
是串連到Oracle DB 的應用程式或工具
2)資料庫進程
伺服器處理序:串連到Oracle執行個體,在使用者建立會話時啟動
後台進程:在啟動Oracle執行個體時啟動
3) 精靈/應用程式進程
網路監聽程式
Gridinfrastructure 精靈
從進程角度一般可以把伺服器模式分為兩種:
專用伺服器:對於每個會話,專用伺服器處理序提供服務;
共用伺服器:不必為每個串連都提供一個專用伺服器處理序。指派程式會將多個傳入網路會話請求定向到共用伺服器處理序池。共用伺服器處理序為所有客戶機請求提供服務。
一般生產庫中都是共用模式;
下來簡要介紹下幾個主要的進程:
Oracle進程結構圖(此圖來源於oracle官方文檔)
非RAC、非ASM 環境中的常見後台進程包括:
• 資料庫寫進程(DBWn)
• 日誌寫進程(LGWR)
• 檢查點進程(CKPT)
• 系統監視器進程(SMON)
• 進程監視器進程(PMON)
• 恢複器進程(RECO)
• 作業隊列協調程式(CJQ0)
• 作業從屬進程(Jnnn)
• 歸檔進程(ARCn)
• 隊列監視器進程(QMNn)
說明:
DBWn 進程負責將資料庫緩衝區快取中經過修改的緩衝區(灰資料緩衝區)寫入磁碟;DB_WRITER_PROCESSES 初始化參數指定了DBWn 進程的數量。DBWn 進程的最大數量為36。如果使用者在啟動過程中未指定該進程數,Oracle DB 將根據CPU 和處理器組的數量來決定如何設定DB_WRITER_PROCESSES
注意n代表可以有多個此類進程,但是如果是單一處理器伺服器,則配置n是沒用的。
在以下情況下,DBWn 進程將灰資料緩衝區寫入磁碟:
伺服器處理序找不到乾淨的可重用緩衝區時;推進檢查點需要;
日誌寫進程(LGWR) 負責管理重做日誌緩衝區,即將重做日誌緩衝區條目寫入磁碟上的重做記錄檔;大型系統的資料區塊操作頻率特別高,勢必有大量的日誌寫入日誌緩衝區,oracle必須保障時刻都有足夠的空間寫新的重做日誌,因此日誌寫進程觸發的頻率是非常高的,在以下情況都會觸發該進程工作:
使用者進程提交交易處理時,比如commit命令後;
重做日誌緩衝區的三分之一已滿時;
DBWn 進程將經過修改的緩衝區寫入磁碟之前;
每隔3秒;
檢查點進程(CKPT)
“檢查點”是一種資料結構,它定義了資料庫的重做線程中的系統更改號(SCN)。檢查點記錄在控制檔案和每個資料檔案頭中。它們是恢複操作的關鍵元素,遇到檢查點時,Oracle DB 必須更新所有資料檔案的頭,以記錄該檢查點的詳細資料。
這是由CKPT 進程完成的。SCN 機制很巧妙的保障了oracle資料恢複機制。這裡只是簡要提到,有興趣的朋友可以找找相關技術資料,理解SCN的原理,對資料庫的備份還原恢複都有相當的理論協助。
系統監視器進程(SMON)
在執行個體啟動時執行恢複;
清除不使用的臨時段;
進程監視器進程(PMON)
在使用者進程失敗時執行進程恢複。負責清除資料庫緩衝區快取和釋放該使用者進程佔用的資源;PMON 定期檢查指派程式和伺服器處理序的狀態,並重新啟動任何已停止啟動並執行指派程式和伺服器處理序。它是資料庫的進程管家。
恢複器進程(RECO)
是一個用於分散式資料庫配置的後台進程,它可以自動解決涉及分散式交易處理的故障。
歸檔進程(ARCn)
發生日誌切換之後,歸檔進程(ARCn) 會將重做記錄檔複製到指定的存放裝置。僅當資料庫處於ARCHIVELOG 模式且已啟用自動歸檔時,才會存在ARCn 進程。資料庫日誌一般都會很大,同時資料庫日誌是特別重要的,只要有完整的日誌我們就能恢複丟失了的資料,所以日誌的丟失是一種極大的風險,我們需要把它定期遷移到異地儲存上(磁帶,磁碟等介質),這個過程叫做日誌歸檔,需要歸檔進程來完成。注意ARCHIVELOG模式的啟用,這個我們在後邊Database Backup還原部分會再細講;
Oracle進程體系就介紹到此,下一篇節我們介紹下oracle儲存體繫結構。歡迎關注【取知有道】,你的關注是我們堅持的原動力!
-------------------------------END-----------------------------------
【取知有道】這裡歡迎愛好學習的朋友,著重資料庫等IT知識的分享學習。
請敬關注【取知有道】訂閱號。搜尋公眾號【取知有道】,添加關注!
或長按此二維碼添加關注!
?
近期分享:
Oracle基礎結構架構方面,涉及執行個體記憶體結構、進程結構、實體儲存體結構、邏輯儲存體系等基礎理論。
oracle進程結構簡介