1. 程式人生 > 其它 >oracle體系結構(2)---參照《oracle 11g 從入門到精通》

oracle體系結構(2)---參照《oracle 11g 從入門到精通》

體系總覽

由於我之前一直用的是MySQL資料庫,使用者---連線----資料庫的模式已經十分深入腦海,導致現在剛接觸oracle的我對於它的體系結構很不習慣。它不同於MySQL,其將結構分為了幾大步,今天我就總結一些這些體系結構的內容吧。首先先總體介紹下,下文再詳細的每個介紹。

例項(instance):這是一個共享的記憶體空間,我們的資料庫的操作就是基於該記憶體空間的

資料庫(database):主要是一些物理檔案的集合,如我們的控制檔案,資料檔案,日誌檔案,歸檔檔案等等

資料庫伺服器(database server):指資料庫各軟體部分(sqlplus,exp/imp,oem),例項,資料庫三部分.是由安裝在伺服器上的所有軟體及服務啟動成功後的例項組成的.

如圖所示,例項加我們的資料庫,才能組成一個數據庫伺服器供使用者使用。同時,一個例項只能供一個數據庫使用,然而一個數據庫可以有多個例項執行它。

例項就像是一個通道,連線著資料庫。即使用者連線後,其實是連線到了資料庫的例項,然後通過例項來進行操作資料庫。

就拿sql的執行順序來說,客戶端的sql語句開始執行時,會被資料庫伺服器進行響應,之後就會載入進入記憶體,再記憶體中進行語法分析,編譯和執行。之後就會把修改後的結果存入資料檔案,修改資訊存入日誌檔案,最後再返回到客戶端顯示。

    

邏輯結構

oracle對資料儲存結構進行了邏輯結構上的劃分,將儲存結構分為了表空間------段-----區-----塊四個層次。一個數據庫含有多個表空間,一個表空間有多個段,一個段有多個區,一個去又有多個塊。借用書上的圖

資料塊

首先先來介紹一下資料塊,資料塊oracle儲存的最小邏輯單位。通常一個數據塊是作業系統的整數倍,例如作業系統塊是2048b,那oracle的資料塊則可以為8192。其組成部分如下

塊頭:用來存資料塊的實體地址,以及資料塊所屬段的型別。

表目錄:存放表的相關資訊

行目錄:如果有行資料,測存放行的資訊

這三個為頭部資訊區,不存資料

-------------------------------------------------------------------------------------------------------

空餘空間:用於新插入的資料和修改資料的儲存

行資料:

存放表資料和索引的地方

儲存區

-------------------------------------------------------------------------------------------------------

未完。。。。。。。。。