資料庫執行個體:
執行個體是由作業系統中的一組記憶體區和一系列的作業系統程序組成,資料庫則是指oracle儲存資料的一系列實體結構和邏輯結構,使用者在通路oracle資料庫時主要是在與執行個體打交道,由執行個體通路資料庫,并傳回相應的操作結果。
最簡單的oracle資料庫結構是由一個執行個體和一個資料庫組成,不過對于rac(或ops)架構的oracle資料庫,一個資料庫會對應多個執行個體。
在oracle資料庫,執行個體和資料庫可以了解成兩個互相間有關聯的獨立個體,每個資料庫都至少有一個與之對應的執行個體(對于ops/rac架構的oracle資料庫,一個資料庫會對應多個執行個體),每個執行個體在其生命周期内同時隻能對應一個資料庫。所謂的啟動oracle資料庫時,實際上是連接配接到執行個體,說的更直白點兒,就是連接配接到作業系統的某些程序,并由這些程序通路處理記憶體中的對象,至于這些對象時如何從磁盤被讀取到記憶體,那正是執行個體所做的工作。
資料庫則是:資料庫檔案--資料檔案+redo日志+控制檔案、密碼檔案、初始化參數檔案等
資料庫伺服器等于:執行個體+資料庫 ==》對客戶機來說,通過服務連接配接資料庫,隻需要知道服務。
oracle中的執行個體有記憶體結構和程序結構兩大部分組成。
伺服器程序和執行個體背景程序差別:
執行個體的一部分是記憶體結構,執行個體的另外一部分就是程序。與記憶體不同,程序都是實實在在的存在,你可以看得見(不過摸不着)。通過相關程序,oracle實作資料庫與執行個體的連通;通過相關程序,oracle實作資料庫與執行個體的互動;通過相關程序,oracle實作對oracle資料庫的應用。
oracle程序分為兩類:伺服器程序(server process)和背景程序(background process),下面分别進行區分。
伺服器程序
oracle的伺服器程序有oracle執行個體自動建立,用來處理連接配接到執行個體的用戶端程序發出的請求,使用者必須通過連接配接到oracle的伺服器程序來擷取資料庫中的資訊。對于專用伺服器模式,用戶端程序和oracle伺服器程序是一一對應的,而在共享伺服器模式下,一個oracle伺服器程序可能同時服務多個用戶端程序。
專有連接配接模式 :使用者程序對應一個server process
此時新增一個伺服器程序,大約需要的記憶體是: aix 5-10m ;linux 3-5m記憶體
建庫時預設是專有連接配接模式
伺服器程序主要用來執行下列的任務:
解析、執行用戶端送出的sql語句。
從磁盤資料檔案中讀取必須的資料塊到sga得資料緩存區。
以适當形式傳回sql語句執行結果。
user process使用者程序
通過tnsnames.ora中的服務名,連接配接到資料庫伺服器的伺服器程序。要經過監聽到伺服器程序--pga
背景程序:
伺服器程序主要是與用戶端程序打交道,背景程序則是讓記憶體區與實體檔案打交道。像oracle資料庫這麼龐大的結構,要保持高效、穩定并且具有良好的性能,隻有幾個經紀人顯然不行的,是以各項标準服務都由特定程序專門處理,比如寫資料檔案要有dbwr程序,寫歸檔檔案要有arch程序等。由oracle在背景自動啟動、管理和維護,是以這些程序才被稱為背景程序。