अद्यतन करें: compact
. के साथ कमांड और WiredTiger ऐसा लगता है कि अतिरिक्त डिस्क स्थान वास्तव में OS के लिए जारी किया जाएगा।
अद्यतन करें: v1.9+ के रूप में एक compact
है आदेश।
यह आदेश "इन-लाइन" संघनन करेगा। इसे अभी भी कुछ अतिरिक्त स्थान की आवश्यकता होगी, लेकिन उतनी नहीं।
MongoDB निम्न द्वारा फ़ाइलों को संपीड़ित करता है:
- फ़ाइलों को एक नए स्थान पर कॉपी करना
- दस्तावेजों के माध्यम से लूपिंग और उन्हें पुनः क्रमित/पुनः हल करना
- मूल फाइलों को नई फाइलों से बदलना
आप यह "संपीड़न" mongod --repair
. चलाकर कर सकते हैं या सीधे कनेक्ट करके और db.repairDatabase()
. चलाकर ।
किसी भी मामले में आपको फ़ाइलों की प्रतिलिपि बनाने के लिए कहीं जगह चाहिए। अब मुझे नहीं पता कि आपके पास कंप्रेस करने के लिए पर्याप्त जगह क्यों नहीं है, हालांकि, यदि आपके पास अधिक स्थान वाला दूसरा कंप्यूटर है तो आपके पास कुछ विकल्प हैं।
- डेटाबेस को किसी अन्य कंप्यूटर पर निर्यात करें जिसमें Mongo इंस्टॉल हो (
mongoexport
. का उपयोग करके) ) और फिर आप उसी डेटाबेस को आयात कर सकते हैं (mongoimport
. का उपयोग करके) ) इसके परिणामस्वरूप एक नया डेटाबेस होगा जो अधिक संकुचित है। अब आप मूलmongod
को रोक सकते हैं नई डेटाबेस फ़ाइलों के साथ बदलें और आप जाने के लिए अच्छे हैं। - वर्तमान मोंगॉड को रोकें और डेटाबेस फ़ाइलों को एक बड़े कंप्यूटर पर कॉपी करें और उस कंप्यूटर पर मरम्मत चलाएं। फिर आप नई डेटाबेस फ़ाइलों को मूल कंप्यूटर पर वापस ले जा सकते हैं।
वर्तमान में मोंगो का उपयोग करके "कॉम्पैक्ट इन प्लेस" करने का कोई अच्छा तरीका नहीं है। और मोंगो निश्चित रूप से बहुत सारी जगह चूस सकता है।
संघनन के लिए अभी सबसे अच्छी रणनीति मास्टर-स्लेव सेटअप चलाना है। फिर आप दास को संकुचित कर सकते हैं, उसे पकड़ने दें और उन्हें बदल दें। मुझे अभी भी थोड़ा बालों वाला पता है। हो सकता है कि मोंगो टीम बेहतर जगह संघनन के साथ आएगी, लेकिन मुझे नहीं लगता कि यह उनकी सूची में उच्च है। ड्राइव स्थान को वर्तमान में सस्ता माना जाता है (और यह आमतौर पर होता है)।