प्राथमिक फ़ाइलग्रुप पूर्ण SQL Server 2008 है


15

मेरे पास एक बड़ी तालिका है (~ 50 मिलियन पंक्तियाँ) मैं एसक्यूएल सर्वर में डालने की कोशिश कर रहा हूँ और मुझे त्रुटि मिलती है:

डेटाबेस 'I 3 स्ट्रोक' में ऑब्जेक्ट 'myDB' के लिए स्थान आवंटित नहीं किया जा सका क्योंकि 'PRIMARY' फ़ाइलग्रुप भरा हुआ है। अनावश्यक फ़ाइलों को हटाने, फ़ाइल समूह में ऑब्जेक्ट्स को हटाने, फ़ाइल समूह में अतिरिक्त फ़ाइलों को जोड़ने, या फ़ाइल समूह में मौजूदा फ़ाइलों के लिए ऑटोग्रॉथ सेट करके डिस्क स्थान बनाएं।

लगभग 25 मिलियन पंक्तियों के साथ डेटाबेस में एक और तालिका है। इस डेटाबेस का उपयोग केवल एक मशीन पर किया जाएगा, और इसे पहले से मौजूद डेटा के लिए डिज़ाइन किया जाएगा और यह किसी भी परिस्थिति में कभी भी अपने वर्तमान आकार से आगे नहीं बढ़ेगा।

इस तरह की स्थिति के लिए, एसक्यूएल सर्वर को शिकायत नहीं है, तो इससे निपटने का सबसे अच्छा तरीका क्या है? क्या समाधान का मामला यह होगा कि यह DB कई उपयोगकर्ताओं के सामने नहीं आएगा?


2
आपको डेटाबेस में अधिक स्थान जोड़ने या अप्रयुक्त वस्तुओं को हटाने की आवश्यकता है। क्या पूछते हैं?
गॉर्डन लिनोफ़

@GordonLinoff जब डेटाबेस बनाया गया था फ़ाइलग्रुप को अप्रतिबंधित वृद्धि के लिए डिज़ाइन किया गया था, और फिर भी मैं इस समस्या पर चल रहा हूं। मैं इसे फिर से होने से रोकने के लिए एक रास्ता खोजने की उम्मीद कर रहा हूं।
wootscootinboogie

1
क्या आपके पास अधिक भौतिक डिस्क स्थान उपलब्ध है? यदि ऐसा है, तो SQL सर्वर त्रुटि लॉग की जांच करें और देखें कि क्या अतिरिक्त जानकारी है कि ऑटोग्रॉथ विफल क्यों हुआ।
केविन

क्या आप पुष्टि करेंगे कि पर्याप्त डिस्क स्थान उपलब्ध है? यह एकमात्र प्रशंसनीय कारण है, सिवाय प्रतिबंधित फ़ाइल विकास (जो आपने कहा कि मामला नहीं है) को छोड़कर।
usr

1
हो सकता है कि आप sql एक्सप्रेस संस्करण के db आकार की सीमा से टकरा रहे हों।
ब्रूनो मार्टिनेज

जवाबों:


17

इन कदमों का अनुसरण करें:

  1. पहचान करें कि आप डेटाबेस संग्रहण आवंटन में कितना स्थान जोड़ना चाहते हैं:
    1. ओपन विंडोज एक्सप्लोरर
    2. उस डिस्क ड्राइव पर राइट क्लिक करें, जिस पर आपकी डेटाबेस फाइलें मौजूद हैं
    3. गुणों का चयन करें
    4. जाँच करें कि डिस्क स्थान कितना उपलब्ध है और यह तय करें कि आप डेटाबेस के लिए कितना आवंटित करना चाहते हैं
      ( सुझाव: यदि आप अपने ओएस { उप-सुझाव : डॉन के रूप में एक ही डिस्क पर डेटाबेस फ़ाइलों को घर में रखते हैं, तो कम से कम 20% डिस्क स्थान छोड़ दें। 'ऐसा मत करो! अपने डेटा को अपनी डिस्क पर फिर से बनाएँ / माइग्रेट करें; आप अपने आप को I / O पर खराब कर रहे हैं।) और शुद्ध डेटा डिस्क के लिए कम से कम 8% छोड़ दें; ये संख्याएँ इस बात का अनुमान हैं कि मुझे वास्तविक प्रतिशत सुझावों का क्या लगता है; हैं। )
  2. डेटाबेस के लिए भंडारण आवंटन का अद्यतन करें।
    1. SSMS खोलें
    2. "दृश्य" टैब पर क्लिक करें
    3. "ऑब्जेक्ट एक्सप्लोरर" चुनें
    4. "डेटाबेस" फ़ोल्डर का विस्तार करें
    5. उस डेटाबेस पर राइट क्लिक करें जिसमें आपका बल्क इंसर्ट करना है
    6. "गुण" चुनें
    7. गुण विंडो के बाईं ओर "एक पृष्ठ का चयन करें" क्षेत्र से "फ़ाइलें" सूची विकल्प पर क्लिक करें
    8. "PRIMARY" के रूप में "फाइलग्रुप" के साथ "डेटाबेस फाइल" पंक्ति खोजें
    9. जो भी मेगाबाइट्स आप डेटाबेस आबंटन में जोड़ना चाहते हैं उसे "आरंभिक आकार (एमबी)" संख्या में जोड़ें
    10. हिट "ओके"
      ( आप यहां रहते हुए भी अपने "ऑटोग्रॉथ" मूल्यों पर विचार करना चाह सकते हैं। )

आप अपने डेटाबेस को अधिक से अधिक भंडारण आवंटन देना चाहते हैं जितना आप इसे देना चाहते हैं। यदि यह स्थान से बाहर चला जाता है, तो आपको यह त्रुटि ऑटो-ग्रो के बिना प्राप्त होगी और यदि ऑटो-ग्रो है तो आप प्रत्येक बार ऑटो-ग्रो करने के लिए एक प्रदर्शन हिट लेंगे। यदि आप बस डिस्क स्थान से बाहर हैं तो वह आपका उत्तर है और आपको एक बड़ी डिस्क की आवश्यकता है।


1
क्या हम सभी को बड़े DIsK नहीं चाहिए? : पी
सांता

12

एक्सप्रेस संस्करण 2014 में प्रति डेटाबेस 10 जीबी की सीमा है। यदि किसी डेटाबेस का ऑटो ग्रोथ उस बिंदु को हिट करता है, जो SQL सर्वर () अस्पष्ट संदेश को फेंक देता है, तो लाइसेंस सीमा का उल्लेख नहीं करता है। डिस्क स्थान बहुत हो सकता है लेकिन आप अभी भी यह संदेश देखते हैं।

यदि डिजाइन अनुमति देता है तो उपाय: इस लाइसेंस के तहत कई डेटाबेस का उपयोग करें।


1

डेटाबेस अक्सर पूर्ण पुनर्प्राप्ति मोड में होने पर अंतरिक्ष से बाहर चला जाता है। यदि आप लेनदेन नहीं कर रहे हैं और मैनुअल बैकअप पर्याप्त हैं, तो आप रिकवरी मोड को सरल में बदल सकते हैं।

आपको लॉग फ़ाइल से स्थान पुनर्प्राप्त करने की भी आवश्यकता हो सकती है। । । इसे खाली किया जा सकता है लेकिन फिर भी यह जगह का उपयोग करता है।

हालाँकि, आप डीबीए से यह सवाल पूछना बेहतर समझते हैं कि कौन अधिक समाधान दे सकता है।


यह विफल लॉग वृद्धि का मुद्दा नहीं है। डेटा की वृद्धि विफल रही।
यूएसआर

@usr । । वे संभवतः उसी अंतर्निहित डिस्क स्थान पर कब्जा कर लेते हैं। समस्या डिस्क स्थान की कमी है।
गॉर्डन लिनोफ

वह कहता है कि डिस्क स्थान उपलब्ध है। मैंने स्पष्ट रूप से पूछा क्योंकि मुझे संदेह था, भी।
usr

कितना डिस्क स्थान उपलब्ध / मुफ्त है? प्राथमिक फ़ाइल समूह में सभी फ़ाइलों का वर्तमान आकार क्या है और उनकी वृद्धि सेटिंग क्या है? यह संभव है कि वृद्धि वृद्धि उपलब्ध खाली स्थान से बड़ी हो।
user9164

1

मेरे अनुभव में, यह संदेश तब होता है जब प्राथमिक फ़ाइल (.mdf) में डेटाबेस के मेटाडेटा को सहेजने के लिए कोई स्थान नहीं होता है। इस फाइल में सिस्टम टेबल शामिल हैं और वे केवल इसमें अपना डेटा सेव करते हैं।

फ़ाइल में कुछ जगह बनाएं और कमांड फिर से काम करता है। यह सब, आनंद लें


0

प्राथमिक फ़ाइल समूह को हल करने के लिए पूर्ण त्रुटि है डेटाबेस प्रॉपराइटी -> फाइल्स -> डेटाबेस फाइल्स -> फाइलग्रुप "PRIMARY" -> ऑटोग्रॉथ / मैक्ससाइज़ और चेंजग्रुप डेटाबेस_नाम इन मेगाबाइट्स को 1, मैक्सिमम फाइल साइज़ चेक अनलिमिटेड ओके।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.