Elke tabelruimte heeft een of meer gegevensbestanden die worden gebruikt om gegevens op te slaan.
De maximale grootte van een databestand hangt af van de blokgrootte van de database. Ik geloof dat je standaard maximaal 32 GB per databestand hebt.
Om erachter te komen of de werkelijke limiet 32 GB is, voert u het volgende uit:
select value from v$parameter where name = 'db_block_size';
Vergelijk het resultaat dat u krijgt met de eerste kolom hieronder, en dat geeft aan wat uw maximale gegevensbestandsgrootte is.
Ik heb Oracle Personal Edition 11g r2 en in een standaardinstallatie had het een blokgrootte van 8.192 (32 GB per gegevensbestand).
Block Sz Max Datafile Sz (Gb) Max DB Sz (Tb)
-------- -------------------- --------------
2,048 8,192 524,264
4,096 16,384 1,048,528
8,192 32,768 2,097,056
16,384 65,536 4,194,112
32,768 131,072 8,388,224
U kunt deze query uitvoeren om te zien welke databestanden u heeft, aan welke tablespaces ze zijn gekoppeld en waar u momenteel de maximale bestandsgrootte op heeft ingesteld (die de bovengenoemde 32 GB niet mag overschrijden):
select bytes/1024/1024 as mb_size,
maxbytes/1024/1024 as maxsize_set,
x.*
from dba_data_files x
MAXSIZE_SET is de maximale grootte waarop u het gegevensbestand heeft ingesteld. Ook relevant is of je de AUTOEXTEND-optie op AAN hebt gezet (de naam doet wat het impliceert).
Als uw databestand een lage maximale grootte heeft of autoextend niet is ingeschakeld, kunt u eenvoudig het volgende uitvoeren:
alter database datafile 'path_to_your_file\that_file.DBF' autoextend on maxsize unlimited;
Als de grootte echter op/bij 32 gb is, is een autoextend ingeschakeld, ja, dan heb je een ander gegevensbestand nodig voor de tabelruimte:
alter tablespace system add datafile 'path_to_your_datafiles_folder\name_of_df_you_want.dbf' size 10m autoextend on maxsize unlimited;