Oracle 資料庫的物理檔案(Datafile)可設定為自動擴展模式。當表空間空間不足時,資料檔案會依據預設的增長量自動成長,直到達到指定的最大值。此機制能有效避免因無法分配Extent而導致應用程式中斷的問題。
Oracle 限制單一物理檔案最多包含 4,194,303 個資料區塊,因此不同區塊大小對應的最大檔案容量各異:
| 資料區塊大小 | 最大物理檔案 |
|---|---|
| 2 KB | 8,191 MB |
| 4 KB | 16,383 MB |
| 8 KB | 32,767 MB |
| 16 KB | 65,535 MB |
實際部署中,仍須受限於作業系統與 Oracle 版本的檔案大小上限。若超過限制,資料庫可能拋出核心錯誤並崩潰。常見平台限制如下:
各平台的 Oracle 版本對匯出、SQL*Loader、原始裝置等操作的檔案大小支援度亦有差異,部署前務必查閱相容性矩陣。
使用下列 SQL 可檢視資料檔案的自動擴展狀態與參數:
SELECT tablespace_name, file_name,
ROUND(bytes/(1024*1024),0) total_space_mb,
autoextensible, increment_by, maxbytes
FROM dba_data_files
ORDER BY tablespace_name;
若發現檔案可能超過 OS 或版本限制,建議立即關閉自動擴展或設定安全的最大值:
ALTER DATABASE DATAFILE 'D:\ORACLE\ORADATA\ORACLE8\APP01.DBF' AUTOEXTEND OFF; ALTER DATABASE DATAFILE 'D:\ORACLE\ORADATA\ORACLE8\APP01.DBF' AUTOEXTEND ON NEXT 50M MAXSIZE 1500M;
在具備完善儲存規劃的環境中,建議將物理檔案設為非自動擴展,由 DBA 手動管理空間配置,以獲得更可預測的效能與容量控管。