किसी भी उत्पादन MongoDB क्लस्टर के लिए बैकअप और पुनर्स्थापना वर्कफ़्लो अत्यंत महत्वपूर्ण हैं। बैकअप और पुनर्स्थापना की वास्तविक कार्यक्षमता के अलावा, आपको अन्य गैर-कार्यात्मक कार्यों पर भी विचार करना होगा जैसे बैकअप की उपलब्धता, सुरक्षा, पुनर्प्राप्ति समय, पुनर्प्राप्ति ग्रैन्युलैरिटी, आदि। उच्च स्तर पर, आपके पास अपने MongoDB सर्वर का बैकअप लेने के लिए तीन विकल्प हैं:
- मोंगोडम्प / मोंगोरेस्टोर
- मोंगोडीबी क्लाउड मैनेजर
- डिस्क स्नैपशॉट
उपरोक्त तीन तकनीकों में से प्रत्येक के अपने फायदे और नुकसान हैं। अधिक विस्तार से समझने के लिए नीचे पढ़ें।
<एच2>1. Mongodump / MongorestoreMongodump अधिकांश MongoDB डेवलपर्स के लिए "आरंभ करना" बैकअप टूल है। संभवत:अधिकांश डेवलपर्स अपने MongoDB डेटाबेस का बैकअप लेना शुरू करते हैं। Mongodump टूल का उपयोग करना वास्तव में सरल है और डेटाबेस में सभी डेटा को बाइनरी फॉर्मेट (बीएसओएन) में डंप करता है जिसे आप अपनी पसंद के स्थान पर स्टोर कर सकते हैं।
पेशेवर:
- उपयोग में आसान।
- जहां बैकअप संग्रहीत है वहां लचीलापन - एक बार डंप पूरा हो जाने पर, आप इसे अपनी पसंद के किसी भी स्थान पर ले जा सकते हैं - NFS शेयर, AWS S3, आदि।
विपक्ष:
- पूर्ण बैकअप, हर बार - यह एक पूर्ण बैकअप है, आपके पिछले बैकअप से अलग नहीं है। इसलिए, जैसे-जैसे आपका डेटाबेस बड़ा होता जाता है, बैकअप को पूरा करने में घंटों लग सकते हैं और इसे स्टोर करना मुश्किल होता है।
- समय पर नहीं - मोंगोडम्प द्वारा बनाया गया बैकअप डिफ़ॉल्ट रूप से पॉइंट-इन-टाइम स्नैपशॉट नहीं है। इसलिए, यदि आपका डेटा बैकअप के दौरान बदल रहा है, तो आप एक मोंगोडम्प के साथ समाप्त हो सकते हैं जो एक एप्लिकेशन के नजरिए से असंगत है। आप "-oplog" विकल्प का उपयोग करके इसका समाधान कर सकते हैं जो मोंगोडम्प प्रक्रिया के अंत में एक स्नैपशॉट लेता है। हालांकि, यह विकल्प स्टैंडअलोन डेटाबेस के लिए उपलब्ध नहीं है
2. MongoDB क्लाउड मैनेजर
Cloud Manager, MongoDB टीम द्वारा प्रदान की गई एक क्लाउड सेवा है, जो आपके MongoDB क्लस्टर का बैकअप लेने में आपकी सहायता करती है।
पेशेवर:
- उपयोग में आसान - अपने क्लस्टर के बैकअप/पुनर्स्थापना को प्रबंधित करने के लिए MongoDB क्लाउड मैनेजर एजेंट स्थापित करें। यह मोंगोडंप का उपयोग करने की तुलना में थोड़ा अधिक जटिल है, लेकिन पूरी तरह से नहीं।
- सतत बैकअप - क्लाउड मैनेजर लगातार आपके ओप्लॉग से पूछताछ करता है और उसका बैकअप लेता है। इसलिए, यह आपको बैकअप लेने के विशिष्ट समय के बजाय किसी भी समय-समय पर पुनर्स्थापित करने में सक्षम बनाता है जो डेटा हानि के आपके जोखिम को कम करता है।
विपक्ष:
- डेटा नियंत्रण - बैकअप डेटा आपके नियंत्रण से बाहर MongoDB डेटासेंटर में संग्रहीत किया जाता है। दुनिया के कुछ हिस्सों (जैसे यूरोप) में और आपकी सुरक्षा आवश्यकताओं के आधार पर, यह एक बड़ी समस्या हो सकती है।
- अतिरिक्त खर्च - आप डेटा के आकार और ओप्लॉग परिवर्तनों की मात्रा के अनुसार भुगतान कर रहे हैं। यदि आपके पास एक बड़ा डेटाबेस है या लिखने की अधिक संख्या है, तो यह लागत बढ़ सकती है।
- धीमी गति से पुनर्स्थापित करें - MongoDB क्लाउड मैनेजर से अपने डेटा को पुनर्स्थापित करने के लिए, डेटा को क्लाउड मैनेजर डेटा सेंटर से भौतिक रूप से डाउनलोड करना होगा। यह बहुत समय लेने वाला ऑपरेशन हो सकता है यदि आपके पास एक बड़ा डेटाबेस है, उदाहरण के लिए, यदि आपका डेटा 1TB है, तो डेटा को डाउनलोड करने और उपयोग करने में कई घंटे लग सकते हैं।
3. डिस्क स्नैपशॉट
स्नैपशॉट या तो क्लाउड स्तर (जैसे AWS EBS डिस्क स्नैपशॉट) या OS स्तर (LVM स्नैपशॉट) पर हो सकते हैं। LVM स्नैपशॉट, हालांकि सुविधाजनक हैं, मशीन के बाहर आसानी से पोर्टेबल नहीं हैं। इसलिए, इस शेष चर्चा के लिए, हम AWS EBS स्नैपशॉट जैसे क्लाउड डिस्क स्नैपशॉट पर ध्यान केंद्रित करने जा रहे हैं।
पेशेवर:
- सरल और प्रयोग में आसान - ईबीएस डिस्क के स्नैपशॉट को ट्रिगर करने के लिए अपेक्षाकृत मामूली।
- पोर्टेबिलिटी - यदि आपको अपने बैकअप के लिए अधिक उपलब्धता की आवश्यकता है, तो आप अपने स्नैपशॉट को अन्य डेटा केंद्रों में स्थानांतरित कर सकते हैं।
- डिफ स्नैपशॉट - स्नैपशॉट भिन्न स्नैपशॉट हैं, इसलिए वे केवल आपके पिछले स्नैपशॉट के परिवर्तनों को संग्रहीत करते हैं। यह आपके बैकअप के लिए आवश्यक संग्रहण की मात्रा को कम कर देता है।
- कोई डेटा कॉपी नहीं - आपके डेटा को पुनर्स्थापित करने के लिए कोई डेटा कॉपी शामिल नहीं है। उदा. यदि आप 1TB स्नैपशॉट को पुनर्स्थापित करना चाहते हैं तो आप स्नैपशॉट से केवल एक नया वॉल्यूम बना सकते हैं और इसके परिणामस्वरूप कोई वास्तविक डेटा कॉपी नहीं होती है। बड़ी मात्रा में डेटा के साथ काम करते समय यह एक *बड़ी बात* है।
- बैकअप नियंत्रण - बैकअप आपके प्राथमिक डेटा के समान डेटासेंटर में रहते हैं और आपके प्राथमिक डेटा सर्वर के समान प्रमाणीकरण तंत्र द्वारा सुरक्षित होते हैं।
विपक्ष:
- निरंतर बैकअप नहीं - यह एक समय-समय पर बैकअप है और इसे केवल बैकअप बिंदुओं पर ही पुनर्प्राप्त किया जा सकता है।
- भौतिक मशीनें - इस तकनीक का उपयोग करके ऑन-प्रिमाइसेस भौतिक मशीनों का बैकअप नहीं लिया जा सकता है।
दिन के अंत में, यदि आपका डेटा छोटा है, तो तीनों विकल्प अच्छा काम करेंगे। जब आपके पास बड़ी मात्रा में डेटा होने लगे, तो आपको समय बिताना होगा और वह विकल्प चुनना होगा जो आपके परिदृश्य के लिए सबसे अच्छा काम करे।