一個ORACLE資料庫是資料的集合,被處理成一個單位。每個ORACLE資料庫有一個物理結構和一個邏輯結構。
資料庫物理結構是由構成資料庫的作業系統檔案所決定的。資料庫的文件為資料庫資訊提供真正的實體儲存。每一個ORACLE資料庫是由三種類型的檔案組成,分別是資料檔案、日誌檔案和控製文件。
邏輯資料庫結構是使用者所涉及的資料庫結構,一個ORACLE資料庫的邏輯結構由下列因素決定:
(1) 一個或多個表空間
(2) 資料庫模式物件
邏輯儲存結構例如表空間用於支配一個資料庫的實體空間如何使用,模式物件及它們之間的聯繫組成了一個資料庫的關係設計。
一.資料庫實體結構
ORACLE資料庫由三種類型的實體檔案組成,即資料檔案、日誌檔案和控制檔案.
1. 資料檔
每一個ORACLE資料庫有一個或多個實體的資料檔(data file) 。一個資料庫的資料檔案包含全部資料庫資料。邏輯資料庫結構的資料也是物理地儲存在資料庫的資料檔案中。資料檔案有下列特徵:
(1) 一個資料檔案只與一個資料庫連結
(2) 一旦建立資料檔案無法改變大小
(3) 一個表格空間由一個或多個資料檔案組成
資料檔案中的資料在需要時可以讀取並儲存在ORACLE 內儲存區。例如:使用者要存取資料庫一表的某些數據,如果請求資訊不在資料庫的記憶體儲存區內,則從相應的資料檔案讀取並儲存在記憶體中。當修改和插入新資料時,不必立刻寫入資料檔。為了減少磁碟輸出的總數,提高效能,資料儲存在內存,然後由ORACLE後台進程DBWR決定如何將其寫入到相應的資料檔案。
2. 日誌檔案
每一個資料庫有兩個或多個日誌檔案(redo log file)所構成的日誌檔案群組,每個日誌檔案用來收集資料庫日誌。
日誌的主要功能是記錄資料庫所做的修改,所以資料庫所做的全部修改都記錄在日誌中。日誌檔案主要是保護資料庫以防止故障,為了防止日誌檔案本身的故障,ORACLE允許鏡像日誌(mirrored redo log) 以便可在不同磁碟上維護多個相同的日誌副本。
日誌檔案中的資訊僅在系統故障或媒體故障復原資料庫時使用。
3.控制檔案
每一個ORACLE 資料庫至少有一個控制檔案(control file),它記錄資料庫的實體結構,包含的主要資訊是:
(1) 資料庫名稱
(2) 資料檔案和日誌檔案的姓名和位置
(3) 資料庫建立日期
每一次ORACLE資料庫的實例啟動時,它的控製文件用於識別資料庫和日誌文件,當著手資料庫操作時它們必須被開啟。當資料庫的實體組成變更時,ORACLE會自動變更該資料庫的控製檔案。
2.3.2 資料庫邏輯結構
資料庫的邏輯結構包含表空間(table space)、段(segment)、區(extent)、資料區塊(block),
1. 表空間
一個資料庫分割為一個或多個邏輯單位,此邏輯單位稱為表空間。一個表空間可將相關的邏輯結構組合在一起。 DBA可用表空間做下列工作:
(1) 控制資料庫資料的磁碟分配
(2) 將確定的空間份額分配給資料庫使用者
(3) 透過使單一表空間在線或離線,控制資料的可用性
(4) 執行部分資料庫備份或復原作業
(5) 為提高效能,跨越裝置分配資料儲存
資料庫、表空間與資料檔案之間的關係如圖2.3-2所示。
每個資料庫可邏輯劃分為一個或多個表空間。每一個表空間是由一個或多個資料檔案組成,該表空間物理儲存表空間中全部邏輯結構的資料。 DBA可以建立新的表空間,可為表空間增加資料檔案或可刪除資料文件,設定或變更預設的段儲存位置。
每一個ORACLE 資料庫包含有一個名為SYSTEM 的表空間,該表空間在資料庫建立時會自動建立。在該表空間中總包含有整個資料庫的資料字典表。最小的資料庫可只需要SYSTEM表空間。該表空間必須總是在線。表和儲存的PL/SQL程式單元(過程、函數、套件和觸發器)的全部儲存資料是儲存在SYSTEM表空間中。
透過增加表空間的資料檔案來擴大表空間,表空間的大小為組成該表空間的資料檔案大小的總和。
DBA可以使ORACLE資料庫中除SYSTEM表空間外的任何其他表空間在線上或離線(離線的該表空間不能有活動的回滾段)。表空間通常是在線,以致它所包含的資料對資料庫使用者是可用的。當表空間為離線時,其資料不可用。在下列情況下,DBA可以使其離線:
(1) 使部分資料無法使用,而剩餘的部分允許正常存取
(2) 執行離線的表空間備份
(3) 為了修改或維護一個應用,使它和它的一組表臨時不可用
包含有正在活動的回滾段的表空間不能被離線,僅當回滾段不正在使用時,該表空間才可離線。
在資料字典中記錄表格空間的狀態,在線上還是離線。如果在資料庫關閉時一表空間為離線,那麼在下次資料庫組裝和重新開啟後,它仍然保持離線。
當出現某些錯誤時,一個表空間可自動地由線上變更為離線。透過使用多個表空間,將不同類型的資料分開,更方便DBA來管理資料庫。
ORACLE資料庫中一表空間是由一個或多個實體資料檔案組成,一個資料檔案只可與一個表空間連結。
ORACLE透過段、區和資料塊等邏輯資料結構可更細緻地控制磁碟空間的使用。
2. 段
段(SEGMENT)包含表空間中一種指定類型的邏輯儲存結構,是由一組區組成。在ORACLE資料庫中有幾種類型的段:資料段、索引段、回滾段和臨時段。
資料段:對於每一個非聚集的表有一資料段,表的所有資料都存放在該段。每一聚集有一個資料段,聚集中每個表格的資料儲存在該段中。
索引段:每個索引有一個索引段,儲存索引資料。
回滾段:是由 DBA 建立,用於暫時儲存要撤銷的信息,這些資訊用於產生讀取一致性資料庫資訊、在資料庫復原時使用、回滾未提交的交易。
臨時段:當一個 SQL 語句需要暫時工作區時,由 ORACLE 建立。當語句執行完畢,臨時段的區退回給系統。
ORACLE對所有段的空間分配,以區為單位。
3. 區
一個區(EXTENT)是資料庫儲存空間分配的邏輯單位,它由連續的ORACLE資料塊所組成。每一個段是由一個或多個區組成。當一段中的所有空間已完全使用時,ORACLE會為該段分配一個新的區。
為了維護的目的,在資料庫的每一段含有段標題塊說明段的特徵以及該段中的區目錄。
4. 資料區塊
資料區塊(data block)是 ORACLE 管理資料檔案中儲存空間的單位,為資料庫所使用的I/O的最小單位,其大小可不同於作業系統的標準I/O區塊大小。
以上就是ORACLE資料庫模型概述的內容, 更多相關文章請關注PHP中文網(www.php.cn)!