2015-05-20 8 views
6

मैं हाल ही में मेरे द्वारा बनाए गए एक नए उपयोगकर्ता में एक .dmp आयात करने के लिए की जरूरत है। ,ओरेकल टेबलस्पेस MAXSIZE "असीमित" वास्तव में असीमित नहीं

ORA-01652 Unable to extend my_tablespace segment by in tablespace 

जब मैं dba_data_files तालिका में डेटा फ़ाइलों की जांच:

create tablespace my_tablespace 
datafile 'C:\My\Oracle\Install\DataFile01.dbf' size 10M 
autoextend on 
next 512K 
maxsize unlimited; 

जबकि आयात चल रहा था मैं एक त्रुटि मिली: मैं भी निम्न आदेश के साथ उपयोगकर्ता के लिए एक नया टेबल बनाए गए मैंने देखा कि अधिकतम 34 जीबी था। क्योंकि मैं डेटाबेस के सामान्य आकार को जानता था, इसलिए मैं टेबल स्पेस में एकाधिक डेटाफाइल जोड़ने के बाद किसी भी समस्या के बिना .dmp आयात करने में सक्षम था।

मैं टेबल-स्पेस जब पहले एक मैं जोड़ा स्वचालित रूप से एक असीमित आकार के लिए विकसित करने के लिए स्थापित किया गया था करने के लिए कई डाटाफाइलों जोड़ने के लिए की आवश्यकता क्यों किया? अधिकतम आकार 34 जीबी और असीमित क्यों नहीं था? क्या 34 जीबी की हार्ड कैप है?

+3

आपका डीबी अवरोध क्या है? ए (स्मॉलफाइल टेबलस्पेस) [डेटाफाइल में केवल 2^22 ब्लॉक हो सकते हैं] (http://docs.oracle.com/cd/E11882_01/server.112/e40402/limits002.htm#REFRN0042), तो मुझे लगता है कि आप मार रहे हैं 8kb ब्लॉक के साथ सीमा? –

+0

मेरा मानना ​​है कि मैं उस सीमा को मार रहा हूं। मैंने (स्पष्ट रूप से गलती से) माना था कि निर्दिष्ट "असीमित" तब तक विस्तारित होगा जब तक कि ओएस वास्तव में एचडी स्पेस से बाहर नहीं हो जाता। स्पष्टीकरण के लिए, आप क्या कह रहे हैं कि एक हार्ड कैप है? – spots

+1

हां; लेकिन यह ब्लॉक आकार से भिन्न होता है - ब्लॉक की संख्या सीमित है, यह आकार पर सीधी सीमा नहीं है। आपके द्वारा निर्दिष्ट आकार एक नरम सीमा है। जैसा कि जॉन उल्लेख करता है, आप कई डेटाफाइल निर्दिष्ट कर सकते हैं जिनकी सॉफ्ट डिस्क उपलब्ध डिस्क स्थान से अधिक है। और याद रखें ओरेकल भौतिक से तार्किक को अलग करना पसंद करता है - एक ही तार्किक डीडीएल के पास विभिन्न प्रणालियों के साथ दो प्रणालियों पर एक अलग भौतिक सीमा होती है। –

उत्तर

7

आप की खोज की है के रूप में, और के रूप में एलेक्स पूल ने कहा, वहाँ एक व्यक्ति डेटा फ़ाइल आकार सीमाएं होती हैं। छोटे ब्लॉक 128 जीबी तक सीमित हैं और आपके ब्लॉक आकार के आधार पर bigfiles 128TB तक सीमित हैं। (लेकिन आप उन सीमाओं को बढ़ाने के लिए अपने ब्लॉक आकार को बदलना नहीं चाहते हैं।) create tablespace कमांड में आकार सीमा केवल तभी होती है जब आप आकार को और सीमित करना चाहते हैं।

इसमें कुछ समय भ्रमित कर सकते हैं। आप शायद फाइलों के प्रबंधन की परवाह नहीं करते हैं और इसे "बस काम" करना चाहते हैं। डेटाबेस भंडारण प्रबंध हमेशा वाला कष्टप्रद हो जाता है, लेकिन यहाँ कुछ चीजें आप कर सकते हैं:

  1. एक न्यूनतम करने के लिए अपने टेबलस्पेस रखें। वहाँ कुछ दुर्लभ मामलों में जहां यह छोटे टेबलस्पेस के बहुत सारे में डेटा विभाजन मददगार है कर रहे हैं। लेकिन उन दुर्लभ लाभों को आमतौर पर उन दर्दों से अधिक माना जाता है जिन्हें आप उन सभी वस्तुओं के प्रबंधन का अनुभव करेंगे।
  2. हमेशा एक से अधिक डेटा फ़ाइल जोड़ने की आदत में जाओ। यदि आप एएसएम का उपयोग कर रहे हैं (जो कि यह एक स्थानीय उदाहरण है तो मैं अनुशंसा नहीं करता), तो डेटाफाइल जोड़ने के दौरान "पागल" नहीं जाने का लगभग कोई कारण नहीं है। भले ही आप एएसएम का उपयोग नहीं कर रहे हैं, फिर भी आपको थोड़ा पागल होना चाहिए। जब तक आप मूल आकार को कम तक सेट करते हैं, तब तक आप MAX_FILES सीमा के करीब नहीं हैं, और आप यूएनडीओ और टीईएमपी जैसे विशेष टेबलस्पेस से निपट नहीं रहे हैं, और अधिक फ़ाइलों को जोड़ने के लिए कोई दंड नहीं है। अपने हार्ड ड्राइव की तुलना में अधिक संभावित स्थान आवंटित करने के बारे में बहुत चिंता न करें। यह कुछ डीबीए पागल हो जाता है, लेकिन आपको एक सौ फाइलों में अंतरिक्ष से बाहर निकलने का मौका बनाम ओएस स्पेस से बाहर निकलने का मौका वजन करना होगा। (या तो मामले में, आपके आवेदन दुर्घटना होगा।)
  3. सेट RESUMABLE_TIMEOUT पैरामीटर। तब SQL कथन निलंबित कर दिया जाएगा, एक चेतावनी उत्पन्न कर सकता है, DBA_RESUMABLE में सूचीबद्ध किया जाएगा, और अधिक स्थान के लिए धैर्यपूर्वक इंतजार करेंगे। यह डेटा गोदामों में बहुत उपयोगी है।

यह "असीमित" क्यों कहा जाता है?

मैं कीवर्ड UNLIMITED लगता होगा एक ऐतिहासिक गलती है। ओरेकल के पास at least version 7, और शायद पहले के बाद से फ़ाइल आकार सीमा थी। ओरेकल 7 को 1 99 2 में रिलीज़ किया गया था, जब 1GB hard drive cost $1995। हो सकता है कि उस समय प्रत्येक ऑपरेटिंग सिस्टम में फ़ाइल आकार की सीमा कम हो। शायद 128 जीबी के बारे में सोचने के लिए "असीमित" के रूप में उचित था।

+0

मेरे मामले में, मुझे संग्रहीत होने के बाद अंतरिक्ष से बाहर निकलने के बारे में चिंता करने की आवश्यकता नहीं है क्योंकि यह डेटाबेस केवल पढ़ने के लिए है। मैं अभी भी इसके बारे में उलझन में हूं क्यों अधिकतम आकार असीमित नहीं होने पर "असीमित" स्वीकार करता है। उदाहरण के लिए, यदि मैं "असीमित" टेबलस्पेस में प्रारंभिक रूप से छोटा डेटाबेस बनाता हूं (मेरे उदाहरण में तालिका तालिका बनाम cmd का उपयोग करके), क्या डेटाबेस अंततः 34 जीबी तक बढ़ने के बाद मुझे ओआरए -01652 मिल जाएगा? आपके सुझावों से मुझे अतिरिक्त स्थान के लिए अतिरिक्त डेटाफ़ाइल बनाना चाहिए। एचडी स्पेस वास्तव में मेरे लिए कोई मुद्दा नहीं है, जो मैं रोकना चाहता हूं वह अप्रत्याशित ओआरए -01652 एस है। – spots

+1

@ स्पॉट्स - मुझे लगता है कि जॉन क्या कह रहा है कि जब आप पहली बार 32 जीबी सीमा को हिट करते हैं या बंद करते हैं तो अतिरिक्त डेटाफाइल बनाने के बजाय, आप पहली बार टेबलस्पेस बनाते समय 10 (या 100, या जो कुछ भी) डेटाफाइल बनाते हैं; वे सभी बढ़ेंगे और जब तक आप 320 जीबी (या 3200 जीबी, ...) प्राप्त नहीं करेंगे, तब तक आप एक समस्या नहीं देख पाएंगे। –

+0

@ असीमित "कीवर्ड" स्पॉट केवल ऑटोएक्स्टेंड क्लॉज से संबंधित है। इसका मतलब है कि डेटाफाइल तब तक बढ़ सकते हैं जब तक कि वे अपनी शारीरिक सीमा तक नहीं पहुंच जाते। अधिकांश उत्पादन प्रणालियां वैसे भी ऑटोएक्स्टेंड क्लॉज का उपयोग नहीं करती हैं (कुछ अच्छे कारणों से)। उदाहरण के लिए, जब आप डेटाफ़ाइल आकार ओएस की सीमा तक पहुंचते हैं, या जब डेटाफाइल 100% फाइल सिस्टम पर कब्जा करते हैं तो गंभीर समस्याएं हो सकती हैं, और ओरेकल अचानक नियंत्रण फ़ाइल के आकार को बढ़ाने में असमर्थ है। जब ऐसा होता है तो यह डेटाबेस को पुन: स्थापित करने के लिए गैर-तुच्छ हो सकता है। – ibre5041

संबंधित मुद्दे