2012-01-10 23 views
6

का बैकअप करने के लिए मुझे लगता है कि किसी ने पहले ही सुझाव दिया है:MongoDB: कैसे MongoDB

1. stop the mongod 
2. backup the data directory 

यह विश्वसनीय, मेरा मतलब है, 100% सफलता बहाल करने के लिए सुनिश्चित? और मुझे नहीं पता कि कौन सी निर्देशिका डेटा स्टोर करती है ... कोई भी आदेश मुझे ढूंढने में मदद कर सकता है?

उत्तर

6

यदि mongod प्रक्रिया स्पष्ट रूप से बाहर निकलती है (यानी, कोई क्रैश या kill -9 सामान), तो डेटा फ़ाइलों को कहीं कॉपी करना सुरक्षित है।

यदि आपकी वर्तमान स्थापना टूट जाती है (उदाहरण के लिए, अशुद्ध शटडाउन के कारण डेटा भ्रष्टाचार), तो आप इसकी फाइलों को हटा सकते हैं, उस बैकअप को कॉपी कर सकते हैं और mongod फिर से शुरू कर सकते हैं।

डिफ़ॉल्ट डेटा निर्देशिका /data/db है, लेकिन यह आपकी कॉन्फ़िगरेशन फ़ाइल में किसी अन्य मान पर सेट हो सकती है। उदाहरण के लिए, मैंने इसे /var/lib/mongodb पर सेट किया है।

आप लाइव सर्वर से बैकअप करने के लिए mongodump का भी उपयोग कर सकते हैं (यह प्रदर्शन को प्रभावित कर सकता है)। mongodump द्वारा किए गए बैकअप को पुनर्स्थापित करने के लिए mongorestore का उपयोग करें।

+0

के लिए: कैसे उपयोग करने के लिए ** mongodump ** और ** mongorestore **, एक समान प्रश्न देख सकते हैं और यहां mongodump और mongorestore ** वाक्य रचना ** के लिए जवाब: http://stackoverflow.com/a/ 2130 9914/2728686 – AmpT

5

आईजीएन में हम mongodump के माध्यम से एक घंटे के क्रॉन नौकरी के रूप में चल रहे गर्म बैकअप करते हैं, और आधे घंटे के आधार पर फाइलर स्नैपशॉट्स (नेटएप स्टोरेज) लेते हैं। यदि आपका सिस्टम भारी भी लिखता नहीं है और आप लिखने वाले ब्लॉक को बर्दाश्त कर सकते हैं, डिस्क पर लिखने के लिए fsync और lock का उपयोग करने का प्रयास करें और आगे लिखने से रोकें। इसके बाद mongodump और पूरा होने पर आप डीबी अनलॉक कर सकते हैं। कृपया ध्यान दें कि ऐसा करने के लिए आपको व्यवस्थापक होना होगा।

db.runCommand({fsync:1,lock:1}) 
+0

भारी डीबी लिखने के लिए आप किस विकल्प की सिफारिश करेंगे? – VinnyD

+0

डिस्क स्नैपशॉट्स, या देरी दास। – lobster1234

+0

और किनारे वाले वातावरण में बैकअप के बारे में क्या? –

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