Hvert tablespace har en eller flere datafiler, som det bruger til at gemme data.
Den maksimale størrelse af en datafil afhænger af databasens blokstørrelse. Jeg tror, at det som standard giver dig et maksimum på 32 GB pr. datafil.
For at finde ud af, om den faktiske grænse er 32gb, skal du køre følgende:
select value from v$parameter where name = 'db_block_size';
Sammenlign det resultat, du får med den første kolonne nedenfor, og det vil indikere, hvad din maksimale datafilstørrelse er.
Jeg har Oracle Personal Edition 11g r2, og i en standardinstallation havde den en blokstørrelse på 8.192 (32gb pr. datafil).
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
Du kan køre denne forespørgsel for at finde ud af, hvilke datafiler du har, hvilke tablespaces de er knyttet til, og hvad du i øjeblikket har indstillet den maksimale filstørrelse til (som ikke må overstige de førnævnte 32gb):
select bytes/1024/1024 as mb_size,
maxbytes/1024/1024 as maxsize_set,
x.*
from dba_data_files x
MAXSIZE_SET er den maksimale størrelse, du har indstillet datafilen til. Det er også relevant, om du har sat AUTOEXTEND-indstillingen til TIL (navnet gør, hvad det antyder).
Hvis din datafil har en lav maks. størrelse, eller autoextend ikke er aktiveret, kan du blot køre:
alter database datafile 'path_to_your_file\that_file.DBF' autoextend on maxsize unlimited;
Men hvis størrelsen er på/nær 32gb, er en autoextend slået til, så ja, du har brug for en anden datafil til tablespacet:
alter tablespace system add datafile 'path_to_your_datafiles_folder\name_of_df_you_want.dbf' size 10m autoextend on maxsize unlimited;