在oracle中,資料庫是由例項和物理儲存結構組成的。而物理儲存結構是指儲存在磁碟上的物理檔案,包括資料檔案(data file)、控制檔案(control file)、聯機重做日誌(online redo log)、引數檔案(spfile/pfile)、警告日誌(alert log)、跟蹤檔案(trace file)等眾多作用不同的檔案所組成的。我們最關注的資料,則是儲存在資料檔案(data file)中。那我們在建立以及維護資料庫時,該如何規劃資料檔案的大小和數量呢?這裡面涉及較多的考量因素。主要有如下幾點:
1、作業系統的限制
資料庫是執行在作業系統之上的,作業系統是基礎,因此,作業系統所能支援的最大檔案容量和數量就成為資料庫所能支援的限制。但不同作業系統之間,這個限制也是不同的。
以下是較為常見的幾種作業系統對此的限制:
windows
最大資料塊:16k
最大檔案數量:20000個(資料塊2k時)/40000個(資料塊4k時)/65536個(資料塊為8k或16k時)
最大檔案容量:4gb(檔案系統為fat時)/ 64gb(檔案系統為ntfs時)
unix和linux
最大資料塊:32k (linux_x86為16k)
最大檔案數量:65534個
2、oracle資料庫的限制
每個資料庫可管理的最大檔案數量:65533個
每個表空間可管理的最大檔案數量:取決於作業系統可同時開啟的檔案數量。通常是1022個。
每個資料檔案的最大容量:該值等於 資料塊大小 * 最大可管理的資料塊數量
其中,資料塊的大小最大不超過32k,一般取值是8k;可管理的資料塊數量是2的22次方減1,約等於4m個塊。因此,對於乙個資料塊大小為8k的資料檔案,其最大不能超過32g。但是,若作業系統支援的單個檔案最大容量小於此值,則以作業系統的最大容量為限。
3、引數db_files的限制
引數db_files指定了乙個例項可以建立的最大檔案數量。這個值可以被修改,但只有重啟例項後,才會生效。db_files設定得過低,可能造成不成新增新的資料檔案的問題。設定得過高,會消耗更多的記憶體資源。
4、效能和便利性影響
a) 通過精心設計,將同一表空間內經常訪問的物件放置在不同的資料檔案中,並將這些資料檔案放置到不同的磁碟通道上,可以改善i/o吞吐量。
b) 將經常改變的資料和不變的資料,放置到不同的資料檔案中,備份時,可以只對改變的資料檔案進行備份,從而減少備份和恢復的時間
注:從oracle 10g起,引入了大表空間的技術。所謂大表空間就是該錶空間僅由1個資料檔案組成。其優點如下:
1、顯著增加了儲存容量。大表空間可管理的資料塊數量由傳統的小表空間的2的22次方,提公升到2的32次方。在同樣採用8k大小的資料塊大小時,其最大可管理空間為32t。
2、減少了資料庫所需的資料檔案的數量。
3、簡化資料庫管理。
Oracle資料檔案大小
oracle資料檔案的大小存在乙個內部限制,這個限制是 每個資料檔案最多只能包含2 22 1個資料塊 這個限制也就直接導致了每個資料檔案的最大允許大小,一般可以有4m個資料塊大小。在2k的block size下,資料檔案最大只能達到約8g 4m 1024 2 在32k的block size下,資料檔...
Oracle資料檔案大小的限制
oracle資料檔案大小的限制 通常我們資料庫block 8192的資料檔案最大不超過32g 新增乙個maxsize為unlimited的資料檔案 sql alter tablespace users add datafile opt oracle oradata test user32g.dbf ...
Oracle資料檔案大小限制原因
rowid偽列返回行的位址。rowid值主要包含以下資訊 1.物件人資料物件編號 2.該行所在的資料檔案中的資料塊 3.該行中資料塊的問位置 4.資料行所在的資料檔案 oooooo 資料物件編號 6位表示 fff 相關資料檔案編號 3位表示 bbbbbb 資料塊編號 6位表示 rrr 資料塊中行的編...