Mỗi vùng bảng có một hoặc nhiều tệp dữ liệu mà nó sử dụng để lưu trữ dữ liệu.
Kích thước tối đa của một tệp dữ liệu phụ thuộc vào kích thước khối của cơ sở dữ liệu. Tôi tin rằng, theo mặc định, điều đó mang lại cho bạn mức tối đa là 32gb cho mỗi tệp dữ liệu.
Để tìm hiểu xem giới hạn thực tế là 32gb, hãy chạy như sau:
select value from v$parameter where name = 'db_block_size';
So sánh kết quả bạn nhận được với cột đầu tiên bên dưới và điều đó sẽ cho biết kích thước tệp dữ liệu tối đa của bạn là bao nhiêu.
Tôi có Oracle Personal Edition 11g r2 và trong cài đặt mặc định, nó có kích thước khối 8.192 (32gb cho mỗi tệp dữ liệu).
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
Bạn có thể chạy truy vấn này để tìm những tệp dữ liệu nào bạn có, không gian bảng nào được liên kết với chúng và những gì bạn đã đặt kích thước tệp tối đa thành (không thể vượt quá 32gb đã nói ở trên):
select bytes/1024/1024 as mb_size,
maxbytes/1024/1024 as maxsize_set,
x.*
from dba_data_files x
MAXSIZE_SET là kích thước tối đa mà bạn đã đặt cho tệp dữ liệu. Cũng có liên quan là bạn đã đặt tùy chọn AUTOEXTEND thành BẬT hay chưa (tên của nó thể hiện ý nghĩa của nó).
Nếu tệp dữ liệu của bạn có kích thước tối đa thấp hoặc tính năng tự động lập chỉ mục không được bật, bạn có thể chỉ cần chạy:
alter database datafile 'path_to_your_file\that_file.DBF' autoextend on maxsize unlimited;
Tuy nhiên, nếu kích thước của nó ở mức / gần 32gb, tính năng tự động lập chỉ mục được bật, thì có, bạn cần một tệp dữ liệu khác cho không gian bảng:
alter tablespace system add datafile 'path_to_your_datafiles_folder\name_of_df_you_want.dbf' size 10m autoextend on maxsize unlimited;