Oracle 資料庫體系結構解析
Oracle 資料庫體系結構圖 如下圖所示,
縱觀上圖可知,Oracle資料庫伺服器大致分為兩個主要部分 既1.Oracle instance (資料庫例項 上半部分)2.database (資料庫 下半部分)。
使用者不能直接連線到資料庫,而是使用者先發出一個使用者程式, 使用者程式和Oracle伺服器發出的伺服器程式互動,然後伺服器程式再和例項互動,最後例項和底層資料庫互動,從而實現使用者和資料庫的互動。具體過程看下圖:
下面詳述體系結構中各個組成部分的具體功能和特點
1.首先先有的整體的認識:
oracle 伺服器=例項+資料庫
例項=SGA(例項記憶體)+後臺程式
記憶體=SGA+PGA
SGA=database buffer cache (資料庫快取記憶體區快取)+share pool +redo log buffer
2.例項記憶體SGA結構:前三個是必選的,其餘是可選的。
1)database buffer cache(資料庫快取記憶體區快取) :是用來存放執行SQL的工作區域 (1)儲存從資料檔案中獲得的資料塊的映象(2)當獲取和更新資料的時候能夠大幅度提高效能,因為資料庫塊的映象會儲存一段時間,等下次再執行有關這個塊的操作時,可直接在快取區操作(3)能夠動態調整大小,也可以對其進行自動管理。
2)Redo log buffer (線上日誌緩衝區): ()記錄所有資料庫的塊的改變,主要用於恢復,大小由log_buffer 決定, 在對資料庫塊進行操作之前,會把所做的所有操作記錄這裡。
3)share pool (共享池):包括library cache (庫高速緩衝區)和database dictionary cache(資料字典快取) ,前者主要儲存最近使用的SQL和pl/sql 語句的資訊(存一次 多次使用,防止硬解析,) 後者主要儲存最近使用的定義,如表、索引、列、使用者許可權、和其他資料庫物件。
4)Large pool : 是系統全域性區的一個可選的部分,是共享伺服器的會話記憶體,以減輕在共享池中的負擔,可動態的改變大小,也可以自動管理。
5)Java pool: java 命令的分析,可動態的改變大小,也可以自動管理
6)Stream pool : 流相關的資料在流池中,提高快取效果。
3.接下來介紹例項後臺程式:
1) pmon (程式檢測程式) :當會話異常終止時 清除失敗的程式 包括 回滾事務、釋放鎖、動態註冊監聽器,
2) Smon (系統檢測程式):例項恢復(前滾所有重做日誌中的改變、回滾沒有提交的事務),釋放臨時表空間。
3) DBWn(資料寫程式): 將資料庫快取記憶體區快取中的髒塊,重新整理到磁碟資料檔案中, 寫的條件:1,發生檢查點2,髒快取到達極限值(1/4)、沒有可用的快取區時。
4) LGWR(日誌寫程式)將redo log buffer 中的redo 重新整理到磁碟日誌檔案中, 寫的條件:1,commit 的時候,2.達到1/3滿時,3.大小達到1M時,4.每擱三秒 5.在DBWR程式寫資料之前。
5) CKPT (檢查點程式) : 給dbwn 訊號,使它開始寫髒塊。更新資料檔案頭和控制檔案,(就是把scn號更新為最新的)3秒一次。 常說的一致性 要保證三個scn 號一致,包括資料檔案頭的scn號,control files 記錄資料檔案頭的scn號,control files 記錄的總的scn號。檢查點程式 觸發的越快,DBWR 寫的就越快,這樣記憶體中的快取區髒塊就越少,進而恢復例項所用的時間就會越少,但是頻繁的I/O導致效能下降,所以效能和速度是矛盾的;
6) ARCn (歸檔程式):將聯機重做日誌檔案歸檔到(也可以理解為複製)歸檔日誌檔案 ,如果開啟了歸檔模式 重做日誌檔案 一般分為兩個組,這兩組是迴圈複寫的,一個組用來記錄對資料庫的修改,另一組進行歸檔。但是如果記錄修改的那組已經寫滿,這樣本來該再去寫另一組,但是另一組還沒有完成歸檔,這就會出問題,資料庫夯住了。。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8494287/viewspace-1349485/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle資料庫體系結構Oracle資料庫
- Oracle 資料庫體系結構 (上)Oracle資料庫
- 初識Oracle資料庫體系結構Oracle資料庫
- Oracle例項和Oracle資料庫(Oracle體系結構)Oracle資料庫
- 瞭解oracle資料庫體系結構(3)Oracle資料庫
- 瞭解oracle資料庫體系結構(2)Oracle資料庫
- 瞭解oracle資料庫體系結構(1)Oracle資料庫
- Oracle 19c資料庫體系結構-2Oracle資料庫
- Oracle 19c資料庫體系結構-1Oracle資料庫
- zt_Oracle 資料庫體系結構圖_eygleOracle資料庫
- Oracle 8i資料庫體系結構(轉)Oracle資料庫
- Oracle - 資料庫的記憶體結構Oracle資料庫記憶體
- Postgresql資料庫體系結構-程式和記憶體結構SQL資料庫記憶體
- Oracle 資料庫 結構Oracle資料庫
- 翻出來了 老東西了 , oracle 資料庫解析 extent 資料結構解析Oracle資料庫資料結構
- Oracle資料倉儲的體系結構Oracle
- PostgreSQL 資料庫學習 - 1.資料庫體系結構之儲存結構SQL資料庫
- Oracle體系結構概述與SQL解析剖析OracleSQL
- Oracle體系結構之-資料庫、表空間、例項簡介Oracle資料庫
- oracle體系結構梳理---redo和undo解析1Oracle
- 簡述oracle資料庫結構Oracle資料庫
- 【web】資料庫應用系統設計體系結構Web資料庫
- oracle體系結構Oracle
- oracle體系結構梳理---redo和undo檔案解析Oracle
- [20141023]Oracle 資料庫體系結構圖.txtOracle資料庫
- OCP課程23:管理Ⅰ之資料庫體系結構資料庫
- PostgreSQL資料庫管理 第二章體系結構SQL資料庫
- Agile PLM資料庫表結構(Oracle)資料庫Oracle
- ORACLE體系結構小結Oracle
- oracle體系結構總結Oracle
- Oracle體系結構之-物理結構Oracle
- 深度解析:ECM是非結構化資料最成熟的管理體系
- SQLite3資料庫檔案結構解析SQLite資料庫
- Oracle體系結構之-記憶體結構Oracle記憶體
- oracle體系結構(轉)Oracle
- ORACLE-體系結構Oracle
- Oracle體系結構梳理Oracle
- Oracle 體系結構圖Oracle