前言數據庫
在學習oracle中,體系結構是重中之重,掌握的越深刻越好。在實際工做遇到疑難問題,其實均可以歸結到體系結構中來解釋,因此咱們根據下面的示圖瞭解一下oracle體系結構。其中oracle內存結構不在複述,參照文章http://nijianlong.blog.51cto.com/2913232/1091537。瀏覽器
1.oracle服務器緩存
①提供一個開發的、全面的、完整的信息管理平臺。服務器
②oracle實例和oracle數據庫組成。網絡
注:一個實例只能對應一個數據庫併發
一個數據庫能夠由多個實例(RAC)oracle
2.oracle實例ide
①實例爲用戶同數據庫交互的媒介工具
②只能打開一個數據庫性能
③由內存結構(SGA、PGA)和用戶進程
後臺進程
實例中的後臺進程執行用於處理並行用戶請求所需的通用功能,而不會損害系統的完整性和性能。它們把爲每一個用戶運行的多個 Oracle 程序所處理的功能統一塊兒來。後臺進程執行 I/O 並監控其它 Oracle 進程以增長並行性,從而使性能和可靠性更加優越。
根據配置狀況,Oracle 實例能夠包括多個後臺進程,可是每一個實例都包括下面五個必需的後臺進程:
① 數據庫寫入程序 (DBW0) 負責將更改的數據從數據庫緩衝區高速緩存寫入數據文件。
② 日誌寫入程序 (LGWR) 將重作日誌緩衝區中註冊的更改寫入重作日誌文件。
③ 系統監控程序 (SMON) 檢查數據庫的一致性,若有必要還會在數據庫打開時啓動數據庫的恢復。
④過程監視器 (PMON) 負責在一個 Oracle 進程失敗時清理資源
⑤檢查點進程 (CKPT) 負責在每當緩衝區高速緩存中的更改永久地記錄在數據庫中時,更新控制文件和數據文件中的數據庫狀態信息。
3.鏈接Oracle Server
用於鏈接例程的進程
用戶在給 Oracle 提交 SQL 語句以前,必須同實例鏈接起來。
① 用戶啓動 SQL*Plus 之類的工具,或者運行使用 Oracle Forms 之類的工具開發的應用程序。這個應用程序或者工具就在用戶進程中執行。
② 在最基本的配置中,當用戶登陸到 Oracle 服務器時,運行 Oracle 服務器的計算機上就會建立一個進程。這個進程稱爲服務器進程。服務器進程表明在客戶機上運行的用戶進程與 Oracle 實例通訊。服務器進程表明用戶執行SQL 語句。
鏈接
鏈接是用戶進程和 Oracle 服務器之間的通訊路徑。數據庫用戶能夠用下面三種方式之一鏈接到 Oracle 服務器:
① 用戶登陸到運行 Oracle 實例的操做系統上,而後啓動訪問該系統中的數據庫的應用程序或工具。通訊路徑是使用主機操做系統上的交互進程通訊機制創建的。
② 用戶在本地計算機上啓動應用程序或工具,而後經過網絡鏈接到運行 Oracle實例的計算機。在這項稱爲客戶機-服務器的配置中,網絡軟件用於用戶和Oracle 服務器之間進行的通訊。
③ 在三層鏈接中,用戶計算機經過網絡與應用程序或網絡服務器進行通訊,而該應用程序或網絡服務器又經過網絡與運行 Oracle 實例的計算機鏈接。例如,用戶在網絡計算機上運行瀏覽器來使用位於服務器上的應用程序,這個 服務器從在 UNIX 主機上運行的 Oracle 數據庫中檢索數據。
會話
會話是用戶與 Oracle 服務器的一種特定鏈接。當用戶由 Oracle 服務器驗證時會話開始,當用戶退出或出現異常終止時會話結束。對某個具體的數據庫用戶來講,若是他從不少工具、應用程序或者終端同時登陸,則可能有不少併發會話。除了一些專用數據庫管理工具之外,啓動數據庫會話還要求 Oracle 服務器可供使用。
4.oracle數據庫
①數據信息的組合
②三種類型文件
一個 Oracle 數據庫是一個數據單位的集合。 主要目的是爲了儲存和讀取信息,Oracle 數據庫能夠分爲邏輯(logical)結構和物理(physical)結構。
物理結構指數據庫中的操做系統文件的集合,包含如下三種文件:
數據文件(data file) 包含數據庫中實際數據。數據包含在用戶定義的表中,並且數據文件還包含數據詞典(data dictionary),
一個數據庫中至少包含一個數據文件。數據文件的特性有: 一個數據文件只能被一個數據庫使用;當數據庫空間不足時,數據文件具備自動擴展的特性;一個或者多個數據文件構成數據庫的邏輯存儲單元叫作表空間(tablespace).
重做日誌(Redo logs) 包含對數據庫的修改記錄,能夠在數據失敗後恢復。一個數據須要至少兩個重做日誌文件。
控制文件(Control files) 包含維護和檢驗數據庫一致性的信息。例如:控制文件用來檢驗數據文件和重做日誌文件。
物理結構:
物理結構包括三種文件:
oracle邏輯結構
5.用戶進程(user process)
一個請求鏈接到oracle服務器的程序
6.服務器進程(server process)
一個與Oracle服務器直接交互的程序
7.後臺進程(Background Processes)
DWRn PMON CKPT LGWR SMON
ARCn LMDn QMNn CJQ0 LMON RECO Dnnn LMS Snnn LCKn Pnnn