Oracle存儲結構

Oracle數據庫的存儲結構分爲邏輯存儲結構和物理存儲結構.html

clip_image001

1、邏輯存儲結構

邏輯存儲結構主要描述Oracle數據庫的內部存儲結構,即從技術概念上描述在Oracle數據庫種如何組織、管理數據.所以,邏輯存儲結構是和操做系統平臺無關的,是由Oracle數據庫建立和管理的.數據庫

clip_image002

從邏輯上來看. 緩存

  1. 數據庫是由一個或者多個表空間等組成。
  2. 一個表空間(tablespace)由一組段組成,
  3. 一個段(segment)由一組區組成,
  4. 一個區(extent)由一批數據庫塊組成,
  5. 一個數據庫塊(block)對應一個或多個物理塊

Database(數據庫) 服務器

數據庫是按照數據結構來組織、存儲和管理數據的倉庫。數據結構

Tablespaces(表空間) oracle

表空間是數據庫的邏輯劃分,一個表空間只能屬於一個數據庫。表空間(tablespace)是最大的邏輯單位,對應一個或多個數據文件,一般由相關的段組成。表空間的大小是它所對應的數據文件大小的總和。全部的數據庫對象都存放在指定的表空間中。但主要存放的對象是表, 因此稱做表空間。spa

Segments (段)操作系統

一個段是分配給一個邏輯結構(一個表、一個索引或其餘對象)的一組區,是數據庫對象使用的空間的集合;段能夠有表段、索引段、回滾段、臨時段和高速緩存段等。Types of segments (段的類型詳解) rest

extents (盤區)日誌

是數據庫存儲空間分配的一個邏輯單位,它由連續數據塊所組成。第一個段是由一個或多個盤區組成。當一段中間全部空間已徹底使用,oracle爲該段分配一個新的範圍。

Data Block (數據塊)

是oralce 管理數據文件中存儲空間的單位,爲數據庫使用的I/O的最小單位,最小的邏輯部件,其大小可不一樣於操做系統的標準I/O塊大小。數據塊的大小由DB_BLOCK_SIZE參數肯定。塊尺寸是處理Oracle更新、選擇、或者插入數據事務的最小單位。當用戶從表中選擇數據時,選擇操做從數據庫文件中以塊爲單位讀取或者提取數據。例如Oracle塊的大小爲8kb,即便只想檢索4kb的字符的名字,也必須讀取含有這4個字符的整個8kb的塊。

  操做系統也有一個磁盤塊尺寸,oracle塊尺寸應該爲磁盤尺寸的倍數。不然在每一個I/O中只使用部分數據,可能會浪費時間去讀寫磁盤快。

  • 若是行比較小而且訪問很隨機,這設置較小的塊尺寸
  • 若是行比較小且訪問主要是連續的(或者隨機且連續的),或者若是有較大的行,則選擇較大的塊尺寸。

DB_BLOCK_SIZE初始化參數決定ORACLE 數據庫的標準塊尺寸,而且Oracle還能夠指定4個額外的非標準的塊尺寸多個塊尺寸主要用於在不一樣的數據庫尺寸的數據庫之間傳送表空間。若是選擇配置多個Oracle塊尺寸,還必須配置SGA的緩衝區高速緩存中相應的子高速緩存。

2、物理存儲結構

Oracle物理存儲結構組成:

  1. 數據文件(data file)、
  2. 聯機日誌文件(online redo log file)、
  3. 控制文件(control file)組成的
  4. 歸檔日誌文件、
  5. 參數文件、
  6. 警報文件、
  7. 跟蹤文件、
  8. 備份文件

數據文件(data file):

一個數據庫能夠由多個數據文件組成的,數據文件是真正存放數據庫數據的.一個數據文件就是一個操做系統文件.數據庫的對象(表和索引)物理上是被存放在數據文件中的。當咱們要查詢一個表的數據的時候,若是該表的數據沒有在內存中,那麼oracle就要讀取該表所在的數據文件,而後把數據存放到內存中.數據文件的特徵是:

  1. 一個數據文件只能屬於一個數據庫.
  2. 數據文件能夠被設置成自動增加.
  3. 一個或多個數據文件組成了表空間.
  4. 一個數據文件只能屬於一個表空間.

控制文件(control file):

一個數據庫至少要有一個控制文件,控制文件中存放的數據庫的"物理結構信息",正是由於他存放的是數據庫的物理結構信息,因此他就顯得尤爲的重要.這些物理結構信息就包括:

  1. 數據庫的名字.
  2. 數據文件和聯機日誌文件的名字及位置.
  3. 建立數據庫時的時間戳.

爲了更好的保護數據庫,咱們能夠鏡像控制文件.每一個控制文件中的內容就是相同的.鏡像了控制文件,即便其中的一個控制文件出現了問題,也不會影響到數據庫的損壞,數據的丟失. 在啓動數據庫的時候,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的存儲結構關係

相關文章
相關標籤/搜索