標籤:
Oracle資料庫的儲存結構分為邏輯儲存結構和實體儲存體結構.
一、邏輯儲存結構
邏輯儲存結構主要描述Oracle資料庫的內部儲存結構,即從技術概念上描述在Oracle資料庫種如何組織、管理資料.因此,邏輯儲存結構是和作業系統平台無關的,是由Oracle資料庫建立和管理的.
從邏輯上來看.
- 資料庫是由一個或者多個資料表空間等組成。
- 一個資料表空間(tablespace)由一組段組成,
- 一個段(segment)由一組區組成,
- 一個區(extent)由一批資料庫塊組成,
- 一個資料庫塊(block)對應一個或多個物理塊
Database(資料庫)
資料庫是按照資料結構來組織、儲存和管理資料的倉庫。
Tablespaces(資料表空間)
資料表空間是資料庫的邏輯劃分,一個資料表空間只能屬於一個資料庫。資料表空間(tablespace)是最大的邏輯單位,對應一個或多個資料檔案,資料表空間的大小是它所對應的資料檔案大小的總和。所有的資料庫物件都存放在指定的資料表空間中。但主要存放的對象是表, 所以稱作資料表空間。
Segments (段):
段是資料表空間的重要組織圖,段是指佔用資料檔案空間的通稱,或資料庫物件使用的空間的集合;段可以有表段、索引段、復原段、臨時段和快取段等。Types of segments (段的類型詳解)
extents (盤區)
是資料庫儲存空間分配的一個邏輯單位,它由連續資料區塊所組成。第一個段是由一個或多個盤區組成。當一段中間所有空間已完全使用,oracle為該段分配一個新的範圍。
Data Block (資料區塊)
是oralce 管理資料檔案中儲存空間的單位,為資料庫使用的I/O的最小單位,其大小可不同於作業系統的標準I/O塊大小。
二、實體儲存體結構
Oracle實體儲存體結構組成:
- 資料檔案(data file)、
- 聯機記錄檔(online redo log file)、
- 控制檔案(control file)組成的
- 歸檔記錄檔、
- 參數檔案、
- 警報檔案、
- 追蹤檔案、
- 備份檔案
資料檔案(data file):
一個資料庫可以由多個資料檔案組成的,資料檔案是真正存放資料庫資料的.一個資料檔案就是一個作業系統檔案.資料庫的對象(表和索引)物理上是被存放在資料檔案中的。當我們要查詢一個表的資料的時候,如果該表的資料沒有在記憶體中,那麼oracle就要讀取該表所在的資料檔案,然後把資料存放到記憶體中.資料檔案的特徵是:
- 一個資料檔案只能屬於一個資料庫.
- 資料檔案可以被設定成自動成長.
- 一個或多個資料檔案組成了資料表空間.
- 一個資料檔案只能屬於一個資料表空間.
控制檔案(control file):
一個資料庫至少要有一個控制檔案,控制檔案中存放的資料庫的"物理結構資訊",正是因為他存放的是資料庫的物理結構資訊,所以他就顯得尤其的重要.這些物理結構資訊就包括:
- 資料庫的名字.
- 資料檔案和聯機記錄檔的名字及位置.
- 建立資料庫時的時間戳記.
為了更好的保護資料庫,我們可以鏡像控制檔案.每個控制檔案中的內容就是相同的.鏡像了控制檔案,即使其中的一個控制檔案出現了問題,也不會影響到資料庫的損壞,資料的丟失. 在啟動資料庫的時候,oracle就會根據控制檔案中的資料檔案和聯機記錄檔的資訊來開啟資料庫.
聯機記錄檔(online redo log file):
一個資料庫可以有多個聯機記錄檔,聯機記錄檔包含了重做記錄(undo records).聯機記錄檔記錄了資料庫的改變,例如當一次意外導致對資料的改變沒有及時的寫到資料檔案中,那麼oracle就會根據聯機記錄檔中 的資訊獲得這些改變,然後把這些改變寫到資料檔案中.這也是聯機記錄檔存在的意義.聯機記錄檔中重做記錄的唯一功能就是用來做執行個體的恢複.比如,一次系統的意外掉電,導致記憶體中的資料沒有被寫到資料檔案中.那麼oralce就會根據聯機記錄檔中的重做記錄功能包資料庫恢複到失敗前的狀態.
歸檔記錄檔(Archive log file):
是聯機記錄檔的副本,他記錄了對資料庫改變的曆史.
參數檔案(parameter file):
通常情況下指的就是初始化參數檔案(initialization parameter file).參數檔案包括了初始化參數檔案和伺服器端參數檔案(server parameter file).在資料庫啟動的時候就會讀取參數檔案,然後根據參數檔案中的參數來分配SGA並啟動一系列的後台進程.參數檔案中存放的是資料庫和執行個體的參 數.
警報檔案(alert log file):
就是警報記錄檔,他記錄了資料庫的重大活動和所發生的錯誤.警報檔案按照時間的先後來記錄所發生的重大活動和錯誤.警報檔案的名字的格式是 alertSID.log.警報檔案的位置是由初始化參數background_dump_desc指定的.
追蹤檔案(trace log file):
就是追蹤記錄檔檔案,每個伺服器處理序和後台進程都寫追蹤檔案.例如當後台進程發生了錯誤的時候,oracle就會把錯誤的資訊寫到追蹤檔案中.DBA就可以根據追蹤檔案的資訊來查看進程中所發生的錯誤.追蹤檔案被寫到了兩個目錄中.和伺服器處理序有關的資訊被寫到了由初始化參數user_dump_desc指定的目錄中,和後台進程有關資訊被寫到了由初始化參數background_dump_desc指定的目錄中.伴隨著時間追蹤檔案就會被寫滿,DBA可以 手動來刪除追蹤檔案,也可以限制追蹤檔案的大小.初始化參數MAX_DUMP_FILE_SIZE就可以限制追蹤檔案的大小.
備份檔案(backup file):
就是在資料庫發生介質損壞的時候用來還原(restore)資料庫的,恢複(recover)資料的.
參考:
Oracle的儲存結構關係
Oracle儲存結構