Physical Storage Structures

fywocp發表於2013-11-19

Physical Storage Structures

Mechanisms for Storing Database Files

Oracle asm

Oracle 自動儲存管理

Operating system file system

作業系統檔案系統。檔案系統可以將磁碟空間分配給多個檔案。每個檔案都有一個名稱,並對應用程式(如 Oracle 資料庫)顯示為一個連續地址空間。資料庫可以建立、 讀取、 寫入、 調整大小、和刪除檔案。即磁碟上組織檔案的方法。

Raw device

裸裝置。沒有被格式化為一個檔案系統,它由應用程式負責對它進行讀寫操作。不經過檔案系統的緩衝。I/O效率更高。

Cluster file system

叢集檔案系統。使多臺計算機共享檔案儲存,同時保持一致的空間分配和檔案內容的軟體。

Oracle Automatic Storage Management (Oracle ASM)

簡化了與儲存相關的任務

跨物理磁碟分佈資料,以消除熱點,並提供均勻的磁碟效能

在儲存配置更改後自動平衡資料

Oracle asm disks

Oracle ASM 磁碟是提供給一個 Oracle ASM 磁碟組的儲存裝置。Oracle ASM 磁碟可以是某個儲存陣列的物理磁碟、分割槽、邏輯單元號 (LUN) , 或是一個邏輯卷或網路附加檔案。

Oracle ASM 磁碟,可以當資料庫正在執行時,被新增到磁碟組,或從磁碟組中刪除。當你向磁碟組中新增一個磁碟時,您可以為磁碟指定一個名稱,否則會自動被賦予一個 Oracle ASM 磁碟名稱。

Oracle asm disk groups

Oracle ASM磁碟組是一組Oracle ASM 磁碟的集合,被作為一個邏輯單元來管理。在磁碟組中的資料結構是自包含的,並會在磁碟組中消耗一些磁碟空間。

在一個磁碟組內, Oracle ASM 為資料庫檔案提供了一個檔案系統介面。儲存在磁碟組中的檔案的內容被均勻分佈或條帶化,以消除熱點,併為所有磁碟提供均勻的效能。其效能與裸裝置的效能相差無幾。

Oracle asm files

Oracle ASM 檔案是一個儲存在Oracle ASM 磁碟組中的檔案。Oracle 資料庫按檔案與 Oracle ASM 進行通訊。資料庫可以將資料檔案、 控制檔案、 聯機重做日誌檔案、和其他型別的檔案儲存為Oracle ASM 檔案。當資料庫要建立一個檔案時, Oracle ASM 建立一個 Oracle ASM 檔案,並分配一個以加號 (+)和磁碟組名稱開頭(如+ DISK1)的完全限定名稱。

Oracle asm extents

Oracle ASM extents是用於容納 Oracle ASM 檔案內容的原始儲存。一個 Oracle ASM 檔案包含一個或多個檔案擴充套件區。每個 Oracle ASM 擴充套件區是由特定的磁碟上的一個或多個分配單元組成的。

Oracle asm allocation units

分配單元是磁碟組中空間分配的基本單位。分配單元是由Oracle ASM 分配的最小連續磁碟空間。由一個或多個分配單元形成一個 Oracle ASM 擴充套件區。

Oracle ASM Instances

Oracle ASM 例項是一個專門用於管理 Oracle ASM 磁碟的Oracle 例項。ASM 例項管理磁碟組的後設資料,並提供對資料庫例項的檔案佈局資訊。資料庫例項直接與 ASM 磁碟進行I/O ,而不需要通過 ASM 例項。

 

Oracle Managed Files and User-Managed Files

Oracle 管理的檔案是一種命名策略,使您能夠按資料庫物件而不是按檔名稱來指定操作。例如,您可以建立一個表空間,而無需指定其資料檔案的名稱。這樣一來,Oracle 管理的檔案不需要管理員直接管理資料庫中的作業系統檔案。Oracle ASM 需要使用Oracle 管理的檔案。

你可以使用使用者管理的檔案來直接管理資料庫中的作業系統檔案。由你來決定關於檔案的結構和命名。例如,當建立表空間時,由您設定表空間資料檔案的名稱和路徑。

Data Files

Oracle 資料庫將表空間中的資料在物理上儲存為資料檔案。每個資料庫必須至少有一個資料檔案。

每個表空間包含一個或多個資料檔案

資料庫資料被集中地儲存在位於每個資料庫表空間的資料檔案中

段可以跨越一個或多個資料檔案,但它不能跨多個表空間。

資料庫必須有SYSTEM表空間和SYSAUX表空間。Oracle 資料庫自動在資料庫建立過程中為SYSTEM表空間分配資料庫的第一個資料檔案。

Permanent and Temporary Data Files

permanent tablespace永久表空間中包含永續性的模式物件。永久表空間中的物件儲存在資料檔案中。

temporary tablespace臨時表空間中僅包含用於會話期間的模式物件。本地管理的臨時表空間具有臨時檔案,它是被設計用於儲存在雜湊、 排序、和其他操作使用的資料的特殊檔案。臨時檔案還用於儲存在記憶體中的空間不足時的結果集資料。

注意:

永久性資料庫物件(如表)絕不會儲存在臨時檔案中。

臨時檔案始終被設定為NOLOGGING模式,這意味著永遠不會為其生成重做。介質恢復不識別臨時檔案。

你不能將臨時檔案置為只讀模式。

你無法使用 ALTER DATABASE 語句來建立一個臨時檔案。

當你建立臨時檔案或調整其大小時,並不能始終保證會為他們分配指定檔案大小的磁碟空間。在 Linux UNIX 等的檔案系統上,臨時檔案被建立為稀疏檔案。在這種情況下,磁碟塊並不是在檔案的建立或調整大小時分配的,而是在塊第一次被訪問時分配的。

Online and Offline Data Files

每個資料檔案可能是聯機的(可用) 或離線的(不可用)。可以通過讓單個資料檔案或臨時檔案離線或聯機,來改變其可用性。離線的資料檔案不能被訪問,直至他們恢復聯機狀態。包括執行離線備份、重新命名資料檔案、或資料塊破壞。如果資料庫無法寫入資料檔案,則資料庫自動將其離線。

與資料檔案類似,表空間本身也可以是離線的或聯機的。當你將一個聯機表空間中的資料檔案離線時,表空間本身將仍保持聯機狀態。您可以將整個表空間離線,來使該表空間中的所有資料檔案暫時不可用。

Data File Structure

Oracle 資料庫通過分配指定數量的磁碟空間,加上資料檔案頭開銷,來為表空間建立資料檔案。

資料檔案頭包含資料檔案的後設資料,例如資料檔案大小和檢查點SCN每個檔案頭包含一個絕對檔案號和一個相對檔案號。絕對檔案號唯一地標識資料庫內的資料檔案。相對檔案號唯一地標識表空間內的資料檔案。

Control Files

資料庫控制檔案是一個小的二進位制檔案,僅與一個資料庫相關聯。每個資料庫有一個唯一的控制檔案,但是他可能有多個相同的拷貝。

控制檔案包含以下資訊:

資料庫名稱和資料庫唯一識別符號

? 建立資料庫的時間戳

? 有關資料檔案、 聯機重做日誌檔案、和歸檔重做日誌檔案的資訊

? 表空間資訊

? RMAN備份

在資料庫使用期間, Oracle 資料庫不斷讀取和寫入控制檔案,並且只要資料庫處於開啟狀態,控制檔案就必須是可用的,以便可以寫入。

Multiple Control Files

Oracle 資料庫對同一資料庫啟用多個完全相同的控制檔案,並同時開啟和寫入。通過在不同的磁碟上多路複用控制檔案,資料庫可以實現冗餘,從而避免單點故障。

Control File Structure

有關資料庫的資訊儲存在控制檔案的各個不同部分中。每個部分是有關資料庫的某個方面的一組記錄。。例如,控制檔案中有一個部分跟蹤資料檔案,幷包含一個記錄集合,每一個資料檔案有一條記錄。每個部分儲存在多個邏輯控制檔案塊中。同一部分的記錄可以跨越塊。

控制檔案中包含以下型別的記錄:

? 迴圈重用記錄

這些記錄包含必要時可以被覆蓋的非關鍵資訊。當所有可用的記錄槽用完時,資料庫要麼會擴充套件控制檔案,以便為新記錄騰出空間,要麼會覆蓋最舊的記錄。其示例包括有關歸檔重做日誌檔案和 RMAN 備份的記錄。

? 非迴圈重用記錄

這些記錄包含不經常更改且不能被覆蓋的關鍵資訊。其示例包括表空間、 資料檔案、 聯機重做日誌檔案、和重做執行緒。Oracle 資料庫絕不會重用這些記錄,除非從表空間中刪除相應的物件。

控制檔案塊的讀取和寫入不同於資料塊的讀取和寫入。對控制檔案,Oracle資料庫直接從磁碟讀取並寫入到程式全域性區(PGA)。每個程式為控制檔案塊分配一定的 PGA 記憶體。

Online Redo Log

用於恢復的最關鍵結構是聯機重做日誌,它由兩個或多個預分配檔案組成,用於儲存資料庫發生的更改。聯機重做日誌用於記錄對資料檔案的更改。

Oracle 資料庫將每個事務同步地寫入重做日誌緩衝區,然後將其寫入到聯機重做日誌。日誌的內容包括未提交的事務、撤消資料、和模式和物件管理語句。

一個聯機重做日誌包含兩個或更多聯機重做日誌檔案。Oracle 資料庫要求最少兩個檔案,以保證當另一個正在被歸檔時,總有一個始終可供寫入(如果資料庫是在歸檔模式下)。

Oracle 資料庫一次只使用一個聯機重做日誌檔案來儲存從重做日誌緩衝區寫入的記錄。正在由日誌寫入器(LGWR) 程式寫入的聯機重做日誌檔案稱為當前聯機重做日誌檔案。

Online Redo Log Switches

當資料庫停止向一個聯機重做日誌檔案寫入,並開始向另一個寫入時,發生日誌切換。通常,切換髮生在當前聯機重做日誌檔案已滿,且必須繼續寫入時。但是,您可以配置定期日誌切換,而不論當前聯機重做日誌檔案是否已滿,或者也可以手動強制日誌切換。

日誌寫入器以迴圈方式寫入聯機重做日誌檔案。當日志寫入器填滿最後一個可用的聯機重做日誌檔案時,該程式又向第一個日誌檔案寫入,如此等等,周而復始。

當發生日誌切換時,資料庫為每個檔案分配一個新的日誌序列號,然後日誌寫入器便開始向新的日誌寫入。當資料庫重複使用一個聯機重做日誌檔案時,此檔案接收下一個可用的日誌序列號。

已填充的聯機重做日誌檔案的可重用性取決於歸檔模式:

如果禁用了歸檔,這意味著資料庫處於NOARCHIVELOG模式下,則填充的聯機重做日誌檔案,在資料庫寫入器 (DBWn) 已對該日誌中的更改記錄執行過檢查點操作並寫入到磁碟後,該日誌即是可重新使用的。

如果啟用了歸檔,這意味著資料庫是在ARCHIVELOG模式下,則填充的聯機重做日誌檔案,只有在該日誌中所包含的更改記錄被寫入資料檔案,且該日誌已被歸檔後,該日誌才是可重新使用的。

在某些情況下,日誌寫入器可能無法重新使用某個現有的聯機重做日誌檔案。例如,聯機重做日誌檔案可能處於活動狀態(例項恢復需要它),而不是非活動狀態 (例項恢復不需要它)。另外,一個聯機重做日誌檔案可能正處於被清除過程中。

Multiple Copies of Online Redo Log Files

Oracle 資料庫可以在不同的位置自動維護兩個或更多聯機重做日誌的相同副本。一個聯機重做日誌組包括一個聯機重做日誌檔案及其冗餘副本。每個完全相同的副本是聯機重做日誌組的一個成員。每個組由一個數字來定義,如組 1、 組 2等等。

在圖 中, A_LOG1 B_LOG1 是組 1的兩個相同的成員,A_LOG2 B_LOG2 是組2的兩個相同的成員。每個組中的所有成員必須具有相同的大小。LGWR 同時寫入組 1 (成員 A_LOG1 B_LOG1),然後同時寫入組 2 (成員 A_LOG2 B_LOG2),然後又重新寫入到組 1,如此等等。LGWR 永遠不會同時寫入不同組的成員。

Structure of the Online Redo Log

聯機重做日誌檔案包含重做記錄。重做記錄由一組更改向量組成,每個向量描述對某資料塊的一個更改。

重做記錄記錄了與更改相關的所有後設資料,包括如下:

? 更改的SCN和時間戳

? 變更事務的事務ID

? 事務提交時的SCN和時間戳(如果它已提交)

? 所做更改的操作型別

? 被修改的資料段的名稱和型別

Archived Redo Log Files

歸檔重做日誌檔案是聯機重做日誌組的已填充成員的副本。此檔案不是該資料庫的一部分,而是由該資料庫生成、並被寫到使用者指定位置的聯機重做日誌檔案離線副本。一個歸檔重做日誌檔案包括重做條目和聯機重做日誌組的相同成員的日誌序列號。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25427762/viewspace-777001/,如需轉載,請註明出處,否則將追究法律責任。

相關文章