Oracle has limitation bounds with the db_block_size. Depending the db_block_size
you can create datafiles
up to one specific size. For example.
db_block_size | Datafile upper limit
If you have db_block_size=8Kb and try to create a datafile with size 33GB you will get the error:
ORA-01144: File size (4224000 blocks) exceeds maximum of 4194303 blocks
The formula to calculate the max size is: db_block_size * 4194303.
The workaround to this situation is obvious. One simple solution is to create multiple datafiles with smaller size
. The othe is to use Bigfile tablespaces
This is a feature of Oracle 10g
. A bigfile tablespace contains only one datafile (or tempfile) which can be as big as 2^32 (=4GB) blocks.
create bigfile tablespace beeeg_ts data file '/o1/dat/beeeg.dbf' size 2T;
Bigfile tablespaces are supported only for locally managed tablespaces with automatic segment-space management (which is the default setting since Oracle 9i). There are two exceptions: locally managed undo and temporary tablespaces can be bigfile tablespaces, even though their segments are manually managed.
The system and sysaux tablespace cannot be created as bigfile tablespace. Bigfile tablespaces should be used with automatic storage management, or other logical volume managers that support dynamically extensible logical volumes, striping and RAID.