oracle進程結構簡介


我們經常說數據庫實例,實例其實就是指的是數據庫的內存結構和進程結構。我們安裝數據庫軟件大量的是在安裝其內存和進程組件結構。上篇節我們介紹了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模式的啟用,這個我們在后邊數據庫備份還原部分會再細講;

 

 

Oracle進程體系就介紹到此,下一篇節我們介紹下oracle存儲體系結構。歡迎關注【取知有道】,你的關注是我們堅持的原動力!

-------------------------------END-----------------------------------

 

【取知有道】這里歡迎愛好學習的朋友,着重數據庫等IT知識的分享學習。

請敬關注【取知有道】訂閱號。微信搜索公眾號【取知有道】,添加關注!

或長按此二維碼添加關注!

近期分享:

Oracle基礎體系結構方面,涉及實例內存結構、進程結構、物理存儲結構、邏輯存儲體系等基礎理論。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM