ORA-01144: File size (7864320 blocks) exceeds maximum of 4194303 blocks
Issue:
SQL> create tablespace tbsnme datafile '/u102/oradata/databaname/tbsnme_01.dbf' size 30g;
create tablespace tbsnme datafile '/u102/oradata/databaname/tbsnme_01.dbf' size 30g
*
ERROR at line 1:
ORA-01144: File size (7864320 blocks) exceeds maximum of 4194303 blocks
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_block_buffers integer 0
db_block_checking string FALSE
db_block_checksum string TYPICAL
db_block_size integer 4096
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 useBigfile tablespaces
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.
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.
Issue:
SQL> create tablespace tbsnme datafile '/u102/oradata/databaname/tbsnme_01.dbf' size 30g;
create tablespace tbsnme datafile '/u102/oradata/databaname/tbsnme_01.dbf' size 30g
*
ERROR at line 1:
ORA-01144: File size (7864320 blocks) exceeds maximum of 4194303 blocks
Cause:
SQL> sho parameter db_blockNAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_block_buffers integer 0
db_block_checking string FALSE
db_block_checksum string TYPICAL
db_block_size integer 4096
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
----------------------------------------------
2kb 8GB
4kb 16GB
8kb 32GB
16kb 64GB
32kb 128GB
----------------------------------------------
2kb 8GB
4kb 16GB
8kb 32GB
16kb 64GB
32kb 128GB
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.
Solution:
SQL> create tablespace tbsnme datafile '/u102/oradata/databaname/tbsnme_01.dbf' size 15g;
The workaround to this situation is obvious. One simple solution is to create multiple datafiles with smaller size. The othe is to useBigfile tablespaces
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 tbsnme_ts data file '/u102/oradata/databaname/tbsnme.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.