110+ GB संग्रह हटाने के बाद, मेरे / var / lib / mongodb निर्देशिका का आकार अभी भी एक ही क्यों है?


12

मुझे MongoDB और अंतरिक्ष उपयोग के साथ कुछ परेशानी हो रही है। विशेष रूप से, मैं एक बार डिस्क पर 110+ GB के कुल 600 मिलियन रिकॉर्ड का एक बड़ा संग्रह रखता था। हाल ही में मैंने इसे गिराने का फैसला किया क्योंकि डेटा पुराना था, ऐसा करने के लिए मैंने रॉकमोंगो के वेब इंटरफेस के माध्यम से संग्रह को गिरा दिया। तदनुसार, रॉकमॉन्गो मुझे अब संग्रह नहीं दिखाता है, हालांकि मेरी डिस्क का उपयोग बिल्कुल भी नहीं बदला है।

क्या कोई साफ संचालन है जिसके बारे में मुझे जानकारी नहीं है, जिसे डेटाबेस को डिस्क पर डेटाबेस फ़ाइलों के साथ सिंक्रनाइज़ करने के लिए चलाया जाना चाहिए?

मैंने एक "मरम्मत" करने की कोशिश की है, लेकिन सिस्टम शिकायत करता है कि डिस्क पर पर्याप्त जगह नहीं है ... ऐसा इसलिए है क्योंकि यह सभी MongoDB द्वारा उपयोग किया जाता है।

जवाबों:


19

अधिकांश डेटाबेस सिस्टम की तरह, जब आप डेटा हटाते हैं तो डेटाबेस फाइलें सिकुड़ती नहीं हैं, डेटा को केवल हटा दिया जाता है / हटा दिया जाता है, और स्थान पुन: उपयोग किया जाता है।

आपको यहांdb.repairDatabase() बताए अनुसार कॉम्पैक्ट स्थान पर चलने की आवश्यकता होगी


2
ऐसा करने के लिए हार्ड डिस्क स्थान बहुत कम था। हालांकि मैं इस तरह से हल: mongodump, oldDatabase.dropDatabase(), mongorestore --db newDatabase dump/oldDatabase
तुन्नुज

5

यद्यपि उपरोक्त मोंगोडम्प / ड्रॉप / मोंगोरस्टोर दृष्टिकोण एक तकनीकी दृष्टिकोण से ठीक काम करेगा, इसके लिए आपको ऐसा करते समय डेटाबेस को ऑफलाइन लेना होगा, जो एक सेवा-प्रभावित करने वाली घटना होगी।

यदि आप इसे डाउनटाइम के बिना करना चाहते हैं और यदि आप MongoDB प्रतिकृति सेट [1] का उपयोग कर रहे हैं, तो आप ऐसा कर सकते हैं:

  1. एक सदस्य का चयन करें और वहाँ MongoDB बंद (सेवा mongodb बंद)। यदि यह प्राथमिक था, तो किसी अन्य सदस्य के PRIMARY चुने जाने की प्रतीक्षा करें।
  2. इस सदस्य पर डेटा फ़ाइलों को निकालें (सीडी / var / lib / mongodb; rm *)।
  3. फिर से MongoDB सेवा को पुनरारंभ करें (सेवा mongodb प्रारंभ)।
  4. सदस्य के लिए PRIMARY (rs.status ()) को पुन: टाइप करने के लिए प्रतीक्षा करें।
  5. यह केवल आवश्यक (छोटी) डेटा फ़ाइलों का पुनर्निर्माण करेगा।

फिर रेप्लिका सेट में अन्य सदस्यों में से प्रत्येक के लिए उपरोक्त चरणों को दोहराएं।

[१] https://docs.mongodb.org/manual/tutorial/deploy-replica-set )


0

इसके अनुसार अक्सर पूछे जाने वाले प्रश्न https://docs.mongodb.com/manual/faq/storage/#faq-disk-size

केवल एक ही तरीका निम्नलिखित है:

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