-
1 # 用戶100785746348428
-
2 # 誰挽銀河
物理存儲結構簡介
Oracle的物理存儲結構與邏輯存儲結構是分離的,因此你可以在不影響邏輯結構訪問的情況下對物理存儲結構進行管理。Oracle數據庫可以看作是持久化存儲上保存有數據的文件集合。當你執行 CREATE DATABASE 時,會生成以下數據庫文件:
數據文件和臨時文件:數據文件(data file)是Oracle數據庫在持久化存儲中生成的物理文件,其中包含有表、索引等數據結構。臨時文件(temp file)是屬於臨時表空間的數據文件。Oracle會以其他軟件無法讀取的專有格式向這些文件寫入數據。
控制文件(control file):是追蹤數據庫物理組成的二進制文件。沒有控制文件數據庫就無法啟動。
在線重做日誌(online redo log):是記錄對數據庫操作的日誌文件。
數據庫實例(database instance)是管理數據庫文件的內存結構的集合。
數據庫文件的存儲機制
Oracle數據庫常見的管理物理文件存儲的機制包括:
Oracle自動存儲管理(Automatic Storage Management, ASM):Oracle ASM 是專門為 Oracle 數據庫設計的一種文件系統。
操作系統的文件系統(Operating system file system):大多數 Oracle 數據將文件存儲在文件系統中。所有的操作系統都有在文件系統中給文件分配和釋放磁盤空間的文件管理器。文件系統通常建立在邏輯卷管理器(Logical volume manager, LVM)創建的邏輯捲上。
集群文件系統(Cluster file system):集群文件系統是一個分佈式的文件系統,通常用於對客戶提供高性能服務的服務器集群。集群中的一個節點失敗不會使整個文件系統不可用。
在實際應用中,Oracle數據庫可以組合使用以上存儲機制。比如,可以將控制文件和在線 redo 日誌存儲在傳統的文件系統中,用戶的某些數據文件存儲在裸分區(raw partitions)中,其他的數據文件存儲在 ASM 中,而歸檔的 redo 日誌文件存儲到集群文件系統中。
Oracle ASM
自動存儲管理是一個高性能、易於管理的 Oracle 數據庫文件存儲解決方案。Oracle ASM 也是一個專門為 Oracle 數據庫提供文件系統的卷管理器(volume manager)。相對於傳統的文件系統和存儲管理器,ASM 具有如下優點:
簡化了存儲相關的任務,例如創建和布局(lay out)數據庫、管理磁盤空間;
在物理磁盤上分布數據,解決了熱點(hot spots)問題,同時提供了一致的性能;
在存儲結構發生變化後自動再平衡(rebalance)數據。
要使用Oracle ASM,你需要為Oracle數據庫分配已分區的磁盤,並具有條帶化(Striping)和鏡像(Mirroring)的首選項。Oracle ASM 管理磁盤空間,在所有可用資源之間分配 I/O 負載,以優化性能,同時消除了手動 I/O 調整的需要。
ASM 存儲結構
Oracle 可以將數據文件存儲為 ASM 磁盤組(ASM disk group)中的一個 ASM 文件(也可以存儲其他類型的數據庫文件)。
以下重要概念:
ASM磁盤:是分配給 ASM 磁盤組的存儲設備。ASM 磁盤可以是一個物理磁盤,也可以是一個分區、存儲陣列(storage array)中的一個邏輯單元號(Logical unit number, LUN)、一個邏輯卷、或者一個網絡附屬文件(network-attached file)。
ASM磁盤組:是 ASM 作為一個邏輯單元來管理的一個 ASM 磁盤的集合。在磁盤組內,Oracle ASM 會為數據庫文件暴露一個文件系統接口。磁盤組內存儲的文件內容是均勻分布或者條帶化的,以解決熱點問題並提供一致的性能。
ASM文件:是存儲在磁盤組中的文件。可以將 Oracle 中的數據文件、控制文件、在線重做日誌等其它類型的文件存儲為 ASM 文件。ASM 文件名以加號和ASM 磁盤組文件名開頭,例如 +DISKGROUP/DB_INSTANCE/DATAFILE/tablepsace.256.167523。
ASM區(ASM extents):是 ASM 文件的一部分。一個 ASM 文件由一個或多個 ASM 區組成。每個 ASM 區由一個磁盤上的一個或多個分配單元組成。(注意:這裡的ASM 區與邏輯存儲結構中的區不一樣。)
ASM分配單元(allocation units):是 ASM 磁盤組內的基本分配單元。分配單元是 Oracle ASM 分配的最小的鄰近的磁盤空間。一個或多個分配單元組成一個 ASM區。
ASM 實例
ASM 實例是僅用於管理 ASM 磁盤的特殊 Oracle 實例。Oracle 數據庫實例和 ASM 實例都需要共享訪問 ASM磁盤組中的磁盤。ASM 實例管理磁盤組的元數據,並向數據庫實例提供文件布局信息。數據庫實例不需要經過 ASM 實例就能直接向 ASM 磁盤進行 I/O 操作。
Oracle 使用相同的技術建立 ASM 實例與數據庫實例。例如,與數據庫實例類似,ASM 實例也有一個系統全局區(System global area, SGA)和後臺進程。但是,ASM 實例不能掛載數據庫,功能也比數據庫實例少很多。
Oracle管理的文件 vs 用戶管理的文件
Oracle 管理的文件(Oracle managed files)是一個允許你使用數據庫對象(而不是文件名)來說明操作的文件命名策略。例如,你可以創建一個表空間而無需注明它的數據文件。Oracle 管理的文件使得數據庫管理員無需直接管理數據庫中的操作系統文件。Oracle ASM 需要使用 Oracle 管理的文件。
另一方面,通過用戶管理的文件(user-managed files),你可以直接管理數據庫中的操作系統文件。你需要自主決定文件結構和命名。比如,創建一個表空間時指定其他名字和其中數據文件的路徑。
數據文件(data files)
在操作系統層面,Oracle 數據庫將數據存儲在數據文件中。Oracle 數據庫必須至少有一個數據文件。
數據文件的用途
每個未分區的 schema 對象(比如表、索引)、對象的每個分區都存儲在自己的段(segment)中。每個段都只屬於一個表空間(tablespace)。表空間和數據文件存在以下重要區別:
每個表空間由一個或多個數據文件組成;
一個數據庫的所有數據都存儲在數據庫表空間的數據文件中;
一個段可以跨越一個或多個數據文件,但是不能跨越多個表空間;
一個Oracle數據庫必須有 SYSTEM 和 SYSAUX 這兩個表空間。在數據庫創建時,Oracle 會自動為 SYSTEM 表空間分配第一批數據文件。SYSTEM 表空間中存有數據字典(data dictionary),即包含數據庫元數據的表的一個集合。通常,Oracle 數據庫還會有一個 undo 表空間和一個臨時表空間(一般命名為 TEMP)。
回覆列表
簡單來說有時候這兩個名詞有時可以互換使用、但是其概念還是不同的。 實例 instance =進程 + 進程所使用的內存(SGA) 數據庫 database=物理操作系統文件或磁盤(disk)的集合(redo文件+control文件+data文件+臨時文件) 數據庫實例也稱作服務器, 是用來訪問數據庫文件集的存儲結構及後臺進程的集合.
1、一個數據庫可以被多個實例訪問(稱為真正的應用群集選項).
2、一個實例在其生存期內只能裝載(alter database mount)和打開(alter database open)一個數據庫
3、Oracle的實例在啟動以後,只能load一次數據庫,如果想把數據庫與Instance斷開,然後再重新掛在一個數據庫Instance,那麼就需要你首先把數據庫Instance進程結束,然後重新建立這個instance的一個進程,再load另外一個數據庫。否則肯定要拋除ORA-16169錯誤,說數據庫已經被打開。因為一個數據庫Instance在其生存期中最多隻能load和打開一個instance。.
4、另外實例可以在沒有數據文件的情況下單獨啟動 startup nomount , 通常沒什麼意義