oracle體系結構(2)---參照《oracle 11g 從入門到精通》
體系總覽
由於我之前一直用的是MySQL資料庫,使用者---連線----資料庫的模式已經十分深入腦海,導致現在剛接觸oracle的我對於它的體系結構很不習慣。它不同於MySQL,其將結構分為了幾大步,今天我就總結一些這些體系結構的內容吧。首先先總體介紹下,下文再詳細的每個介紹。
例項(instance):這是一個共享的記憶體空間,我們的資料庫的操作就是基於該記憶體空間的
資料庫(database):主要是一些物理檔案的集合,如我們的控制檔案,資料檔案,日誌檔案,歸檔檔案等等
資料庫伺服器(database server):指資料庫各軟體部分(sqlplus,exp/imp,oem),例項,資料庫三部分.是由安裝在伺服器上的所有軟體及服務啟動成功後的例項組成的.
如圖所示,例項加我們的資料庫,才能組成一個數據庫伺服器供使用者使用。同時,一個例項只能供一個數據庫使用,然而一個數據庫可以有多個例項執行它。
例項就像是一個通道,連線著資料庫。即使用者連線後,其實是連線到了資料庫的例項,然後通過例項來進行操作資料庫。
就拿sql的執行順序來說,客戶端的sql語句開始執行時,會被資料庫伺服器進行響應,之後就會載入進入記憶體,再記憶體中進行語法分析,編譯和執行。之後就會把修改後的結果存入資料檔案,修改資訊存入日誌檔案,最後再返回到客戶端顯示。
邏輯結構
oracle對資料儲存結構進行了邏輯結構上的劃分,將儲存結構分為了表空間------段-----區-----塊四個層次。一個數據庫含有多個表空間,一個表空間有多個段,一個段有多個區,一個去又有多個塊。借用書上的圖
資料塊
首先先來介紹一下資料塊,資料塊oracle儲存的最小邏輯單位。通常一個數據塊是作業系統的整數倍,例如作業系統塊是2048b,那oracle的資料塊則可以為8192。其組成部分如下
塊頭:用來存資料塊的實體地址,以及資料塊所屬段的型別。
表目錄:存放表的相關資訊
行目錄:如果有行資料,測存放行的資訊
這三個為頭部資訊區,不存資料
-------------------------------------------------------------------------------------------------------
空餘空間:用於新插入的資料和修改資料的儲存
行資料:
儲存區
-------------------------------------------------------------------------------------------------------
未完。。。。。。。。。