प्रत्येक टेबलस्पेस में एक या अधिक डेटाफ़ाइलें होती हैं जिनका उपयोग वह डेटा संग्रहीत करने के लिए करता है।
डेटाफ़ाइल का अधिकतम आकार डेटाबेस के ब्लॉक आकार पर निर्भर करता है। मेरा मानना है कि, डिफ़ॉल्ट रूप से, यह आपके साथ अधिकतम 32GB प्रति डेटाफ़ाइल छोड़ देता है।
यह पता लगाने के लिए कि क्या वास्तविक सीमा 32GB है, निम्नलिखित चलाएँ:
select value from v$parameter where name = 'db_block_size';
आपको मिलने वाले परिणाम की तुलना नीचे दिए गए पहले कॉलम से करें, और यह इंगित करेगा कि आपका अधिकतम डेटाफ़ाइल आकार क्या है।
मेरे पास Oracle व्यक्तिगत संस्करण 11g r2 है और एक डिफ़ॉल्ट इंस्टॉल में इसका 8,192 ब्लॉक आकार (32GB प्रति डेटा फ़ाइल) था।
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
आप इस क्वेरी को यह पता लगाने के लिए चला सकते हैं कि आपके पास कौन सी डेटाफ़ाइलें हैं, वे किस टेबलस्पेस से जुड़ी हैं, और आपने वर्तमान में अधिकतम फ़ाइल आकार को किस पर सेट किया है (जो कि उपरोक्त 32 जीबी से अधिक नहीं हो सकता):
select bytes/1024/1024 as mb_size,
maxbytes/1024/1024 as maxsize_set,
x.*
from dba_data_files x
MAXSIZE_SET वह अधिकतम आकार है जिस पर आपने डेटाफ़ाइल सेट की है। यह भी प्रासंगिक है कि क्या आपने AUTOEXTEND विकल्प को ON पर सेट किया है (इसका नाम वही करता है जो इसका तात्पर्य है)।
यदि आपकी डेटाफ़ाइल का अधिकतम आकार कम है या ऑटोएक्सटेंड चालू नहीं है तो आप आसानी से चला सकते हैं:
alter database datafile 'path_to_your_file\that_file.DBF' autoextend on maxsize unlimited;
हालाँकि यदि इसका आकार 32GB पर/निकट है, तो एक ऑटोएक्सटेंड चालू है, तो हाँ, आपको टेबलस्पेस के लिए एक और डेटाफ़ाइल की आवश्यकता है:
alter tablespace system add datafile 'path_to_your_datafiles_folder\name_of_df_you_want.dbf' size 10m autoextend on maxsize unlimited;