Database 是由一個或多個被稱為資料表空間(tablespace)的邏輯儲存單位構成。資料表空間內的邏輯存 儲單位為段(segment),段又可以繼續劃分為資料擴充(extent)。而資料擴充是由一組連續的資料 塊(datablock)構成。
大檔案資料表空間
在Oracle中使用者可以建立大檔案資料表空間(bigfile tablespace)。這樣Oracle資料庫使用的資料表空間 (tablespace)可以由一個單一的大檔案構成,而不是若干個小資料檔案。這使Oracle可以發揮64位 系統的能力,建立、管理超大的檔案。在64位系統中,Oracle資料庫的儲存能力被擴充到了8 EB(1EB =1024PB,1PB = 1024TB,1TB=1024GB)。
當資料庫檔案由Oracle管理(Oracle-managed files),且使用大檔案資料表空間(bigfile tablespace)時,資料檔案對使用者完全透明。換句話說,使用者只須針對錶空間(tablespace)執行管 理操作,而無須關心處於底層的資料檔案(datafile)。使用大檔案資料表空間,使資料表空間成為磁碟空間 管理,備份,和恢複等操作的主要對象。使用大檔案資料表空間,並與由Oracle管理資料庫檔案(Oracle -managed files)技術以及自動儲存管理(Automatic Storage Management)技術相結合,就 不再需要管理員手工建立新的資料檔案(datafile)並維護眾多資料庫檔案,因此簡化了資料庫檔案 管理工作。
資料庫預設建立的是小檔案資料表空間(smallfile tablespace),即Oracle中傳統的資料表空間 (tablespace)類型。資料庫中 SYSTEM 和 SYSAUX 資料表空間在建立時總是使用傳統類型只有本地管理 的(locally managed),且段空間自動管理(automatic segmentspace management)的表空 間(tablespace)才能使用大檔案資料表空間(bigfile
tablespace)。但是有兩個例外:本地管理的撤銷資料表空間(undo tablespace)和暫存資料表空間 (temporary tablespace),即使其段(segment)為手工管理(manually managed),也可以使用大 檔案資料表空間。一個Oracle資料庫可以同時包含大檔案/小檔案資料表空間(bigfile/smallfile tablespace)。SQL語句執行時無需考慮資料表空間(tablespace)的類型,除非語句中顯式地引用了資料 檔案(datafile)名。
管理員可以建立一組暫存資料表空間(temporary tablespace),使用者在需要時可以利用組內各個表空 間(tablespace)提供的臨時空間。管理員還可以指定資料表空間組(tablespace group)為資料庫預設 的暫存資料表空間。當使用者需要大量臨時空間進行排序操作時,就可以利用大檔案資料表空間及資料表空間組。
使用大檔案資料表空間的優勢
● 使用大檔案資料表空間(bigfile tablespace)可以顯著地增強Oracle資料庫的儲存能力。一個小 檔案資料表空間(smallfile tablespace)最多可以包含1024個資料檔案(datafile),而一個大檔案表 空間中只包含一個檔案,這個資料檔案的最大容量是小資料檔案的1024倍。這樣看來,大檔案資料表空間 和小檔案資料表空間的最大容量是相同的。但是由於每個資料庫最多使用64K個資料檔案,因此使用大檔案 資料表空間時資料庫中資料表空間的極限個數是使用小檔案資料表空間時的1024倍,使用大檔案資料表空間時的總資料 庫容量比使用小檔案資料表空間時高出三個數量級。換言之,當一個Oracle資料庫使用大檔案資料表空間,且 使用最大的資料區塊容量時(32K),其總容量可以達到8EB。
● 在超大型資料庫中使用大檔案資料表空間減少了資料檔案的數量,因此也簡化了對資料檔案的管理 工作。由於資料檔案的減少,SGA中關於資料檔案的資訊,以及控制檔案(control file)的容量也得 以減小。
● 由於資料檔案對使用者透明,由此簡化了資料庫管理工作。
使用大檔案資料表空間時需要考慮的因素
● 大檔案資料表空間(bigfile tablespace)應該和自動儲存管理(Automatic Storage Management)或其他邏輯卷管理工具(logical volume manager)配合使用,這些工具應該能夠支援 動態擴充邏輯卷,也能支援striping(資料跨磁碟分布)或RAID。
● 應該避免在不支援striping的系統上使用大檔案資料表空間,因為這將不利於並存執行(parallel execution)及 RMAN 的並行備份(backup
parallelization)。
● 當資料表空間正在使用的磁碟組(disk group)可能沒有足夠的空間,且擴充資料表空間的唯一辦法是 向另一個磁碟組加入資料檔案時,應避免使用
大檔案資料表空間。
● 不建議在不支援大檔案的平台上使用大檔案資料表空間,這會限制資料表空間(tablespace)的容量。 參考相關的作業系統文檔瞭解其支援的最大文
件容量。
● 如果使用大檔案資料表空間替代傳統的資料表空間,資料庫開啟(open),checkpoints,以及 DBWR 進 程的效能會得到提高。但是增大資料檔案
(datafile)容量可能會增加備份與恢複的時間。