數(shù)據(jù)庫實例與進(jìn)程簡介
數(shù)據(jù)庫實例: 實例是由操作系統(tǒng)中的一組內(nèi)存區(qū)和一系列的操作系統(tǒng)進(jìn)程組成,數(shù)據(jù)庫則是指Oracle保存數(shù)據(jù)的一系列物理結(jié)構(gòu)和邏輯結(jié)構(gòu),用戶在訪問Oracle數(shù)據(jù)庫時主要是在與實例打交道,由實例訪問數(shù)據(jù)庫,并返回相應(yīng)的操作結(jié)果。 最簡單的Oracle數(shù)據(jù)庫結(jié)構(gòu)是由一個實例和一個數(shù)據(jù)庫組成,不過對于RAC(或OPS)架構(gòu)的Oracle數(shù)據(jù)庫,一個數(shù)據(jù)庫會對應(yīng)多個實例。 在Oracle數(shù)據(jù)庫,實例和數(shù)據(jù)庫可以理解成兩個相互間有關(guān)聯(lián)的獨立個體,每個數(shù)據(jù)庫都至少有一個與之對應(yīng)的實例(對于OPS/RAC架構(gòu)的Oracle數(shù)據(jù)庫,一個數(shù)據(jù)庫會對應(yīng)多個實例),每個實例在其生命周期內(nèi)同時只能對應(yīng)一個數(shù)據(jù)庫。所謂的啟動Oracle數(shù)據(jù)庫時,實際上是連接到實例,說的更直白點兒,就是連接到操作系統(tǒng)的某些進(jìn)程,并由這些進(jìn)程訪問處理內(nèi)存中的對象,至于這些對象時如何從磁盤被讀取到內(nèi)存,那正是實例所做的工作。 數(shù)據(jù)庫則是:數(shù)據(jù)庫文件--數(shù)據(jù)文件+REDO日志+控制文件、密碼文件、初始化參數(shù)文件等 數(shù)據(jù)庫服務(wù)器等于:實例+數(shù)據(jù)庫 ==》對客戶機(jī)來說,通過服務(wù)連接數(shù)據(jù)庫,只需要知道服務(wù)。 Oracle中的實例有內(nèi)存結(jié)構(gòu)和進(jìn)程結(jié)構(gòu)兩大部分組成。 服務(wù)器進(jìn)程和實例后臺進(jìn)程區(qū)別: 實例的一部分是內(nèi)存結(jié)構(gòu),實例的另外一部分就是進(jìn)程。與內(nèi)存不同,進(jìn)程都是實實在在的存在,你可以看得見(不過摸不著)。通過相關(guān)進(jìn)程,Oracle實現(xiàn)數(shù)據(jù)庫與實例的連通;通過相關(guān)進(jìn)程,Oracle實現(xiàn)數(shù)據(jù)庫與實例的互動;通過相關(guān)進(jìn)程,Oracle實現(xiàn)對Oracle數(shù)據(jù)庫的應(yīng)用。 Oracle進(jìn)程分為兩類:服務(wù)器進(jìn)程(Server Process)和后臺進(jìn)程(Background Process),下面分別進(jìn)行區(qū)分。 服務(wù)器進(jìn)程 Oracle的服務(wù)器進(jìn)程有Oracle實例自動創(chuàng)建,用來處理連接到實例的客戶端進(jìn)程發(fā)出的請求,用戶必須通過連接到Oracle的服務(wù)器進(jìn)程來獲取數(shù)據(jù)庫中的信息。對于專用服務(wù)器模式,客戶端進(jìn)程和Oracle服務(wù)器進(jìn)程是一一對應(yīng)的,而在共享服務(wù)器模式下,一個Oracle服務(wù)器進(jìn)程可能同時服務(wù)多個客戶端進(jìn)程。 專有連接模式 :用戶進(jìn)程對應(yīng)一個SERVER PROCESS 此時新增一個服務(wù)器進(jìn)程,大約需要的內(nèi)存是: AIX 5-10M ;LINUX 3-5M內(nèi)存 建庫時默認(rèn)是專有連接模式 服務(wù)器進(jìn)程主要用來執(zhí)行下列的任務(wù): 解析、執(zhí)行客戶端提交的SQL語句。 從磁盤數(shù)據(jù)文件中讀取必須的數(shù)據(jù)塊到SGA得數(shù)據(jù)緩存區(qū)。 以適當(dāng)形式返回SQL語句執(zhí)行結(jié)果。 user process用戶進(jìn)程 通過tnsnames.ora中的服務(wù)名,連接到數(shù)據(jù)庫服務(wù)器的服務(wù)器進(jìn)程。要經(jīng)過監(jiān)聽到服務(wù)器進(jìn)程--PGA 后臺進(jìn)程: 服務(wù)器進(jìn)程主要是與客戶端進(jìn)程打交道,后臺進(jìn)程則是讓內(nèi)存區(qū)與物理文件打交道。像Oracle數(shù)據(jù)庫這么龐大的結(jié)構(gòu),要保持高效、穩(wěn)定并且具有良好的性能,只有幾個經(jīng)紀(jì)人顯然不行的,因此各項標(biāo)準(zhǔn)服務(wù)都由特定進(jìn)程專門處理,比如寫數(shù)據(jù)文件要有DBWR進(jìn)程,寫歸檔文件要有ARCH進(jìn)程等。由Oracle在后臺自動啟動、管理和維護(hù),因此這些進(jìn)程才被稱為后臺進(jìn)程。
Oracle的服務(wù)器進(jìn)程有Oracle實例自動創(chuàng)建,用來處理連接到實例的客戶端進(jìn)程發(fā)出的請求,用戶必須通過連接到Oracle的服務(wù)器進(jìn)程來獲取數(shù)據(jù)庫中的信息。對于專用服務(wù)器模式,客戶端進(jìn)程和Oracle服務(wù)器進(jìn)程是一一對應(yīng)的,而在共享服務(wù)器模式下,一個Oracle服務(wù)器進(jìn)程可能同時服務(wù)多個客戶端進(jìn)程。
專有連接模式 :用戶進(jìn)程對應(yīng)一個SERVER PROCESS
此時新增一個服務(wù)器進(jìn)程,大約需要的內(nèi)存是: AIX 5-10M ;LINUX 3-5M內(nèi)存
建庫時默認(rèn)是專有連接模式
posted on 2013-11-25 10:23 順其自然EVO 閱讀(196) 評論(0) 編輯 收藏 所屬分類: 數(shù)據(jù)庫