數據庫實例與進程簡介
數據庫實例: 實例是由操作系統中的一組內存區和一系列的操作系統進程組成,數據庫則是指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在后臺自動啟動、管理和維護,因此這些進程才被稱為后臺進程。
Oracle的服務器進程有Oracle實例自動創建,用來處理連接到實例的客戶端進程發出的請求,用戶必須通過連接到Oracle的服務器進程來獲取數據庫中的信息。對于專用服務器模式,客戶端進程和Oracle服務器進程是一一對應的,而在共享服務器模式下,一個Oracle服務器進程可能同時服務多個客戶端進程。
專有連接模式 :用戶進程對應一個SERVER PROCESS
此時新增一個服務器進程,大約需要的內存是: AIX 5-10M ;LINUX 3-5M內存
建庫時默認是專有連接模式
posted on 2013-11-25 10:23 順其自然EVO 閱讀(197) 評論(0) 編輯 收藏 所屬分類: 數據庫