डेटाबेस का उचित बैकअप बनाना एक महत्वपूर्ण कार्य है। डेटाबेस सेवाओं के लिए अपने MongoDB की उच्च उपलब्धता संरचना स्थापित करने के अलावा, आपदा के मामले में डेटा की उपलब्धता सुनिश्चित करने के लिए आपके पास अपने डेटाबेस का बैकअप भी होना चाहिए। उदाहरण के लिए, यदि आप गलती से किसी उत्पादन डेटाबेस से कुछ डेटा हटा देते हैं, तो डेटाबेस के दृष्टिकोण से डेटा को पुनर्प्राप्त करने का एकमात्र तरीका बैकअप से पुनर्स्थापित करना है।
हाल ही में, ClusterControl ने एक नई बैकअप पद्धति का समर्थन करना शुरू किया, जिसे Percona द्वारा विकसित MongoDB के लिए Percona Backup कहा जाता है। यह MongoDB प्रतिकृति सेट और साझा क्लस्टर के लिए लगातार बैकअप चला सकता है।
इस ब्लॉग में, हम MongoDB प्रतिकृति सेट और साझा क्लस्टर के लिए बैकअप प्रबंधन पर एक नज़र डालेंगे।
अत्यधिक उपलब्ध आर्किटेक्चर में MongoDB बैकअप
ClusterControl 3 बैकअप विधियों का समर्थन करता है, जो mongodump, mongodb संगत और Mongodb के लिए Percona बैकअप हैं। मोंगोडब सुसंगत बैकअप बैकअप विधि के रूप में मोंगोडम्प उपयोगिता का उपयोग कर रहा है, और बैकअप को मोंगोरेस्टोर का उपयोग करके पुनर्स्थापित किया जा सकता है।
नवीनतम समर्थित बैकअप विधि मोंगोडब के लिए पेरकोना बैकअप है जो रेप्लिका सेट और साझा क्लस्टर के सुसंगत और पॉइंट इन टाइम बैकअप के लिए है, इसके लिए प्रत्येक नोड या प्रतिकृति सेट या शार्प नोड्स और प्रबंधन नोड्स पर चलने के लिए एक एजेंट की आवश्यकता होती है। शार्प क्लस्टर के लिए जैसा कि यहां बताया गया है।
ClusterControl में Mongodb के लिए Percona बैकअप का उपयोग करके लगातार बैकअप को कॉन्फ़िगर और शेड्यूल करना बहुत आसान है। बैकअप पृष्ठ पर जाएँ, और फिर Mongodb के लिए Percona बैकअप कॉन्फ़िगर करें। शर्त यह है कि प्रत्येक नोड पर MongoDB के लिए Percona बैकअप चल रहा हो, जिसे ClusterControl से भी स्थापित किया जा सकता है।
निम्नानुसार बैकअप शेड्यूल करने में सक्षम होने से पहले हमें पहले MongoDB एजेंट के लिए Percona बैकअप इंस्टॉल करना होगा:
और फिर बैकअप निर्देशिका को कॉन्फ़िगर करें। कृपया ध्यान दें कि बैकअप निर्देशिका एक साझा डिस्क होनी चाहिए जिसे सभी नोड्स पर ठीक उसी तरह से माउंट किया गया हो जैसा कि नीचे दिया गया है:
यदि आपके पास सिस्टम में किसी प्रकार की साझा डिस्क तैयार नहीं है, आप इसे पूरा करने के लिए एनएफएस का उपयोग कर सकते हैं। एनएफएस सर्वर को कॉन्फ़िगर करने के लिए, हमें एक समर्पित सर्वर/वर्चुअल मशीन की आवश्यकता है जिसमें बैकअप को स्टोर करने के लिए पर्याप्त खाली स्थान हो। सर्वर में nfs-utils और nfs-utils-lib लाइब्रेरी को नीचे के रूप में स्थापित करें (यह मानते हुए कि हम CentOS आधारित का उपयोग कर रहे हैं):
[[email protected] ~]# yum install nfs-utils nfs-utils-lib
[[email protected] ~]# yum install portmap
और पोर्टमैप और nfs सेवाएं प्रारंभ करें।
[[email protected] ~]# /etc/init.d/portmap start
[[email protected] ~]# /etc/init.d/nfs start
उसके बाद, /etc/exports में नई प्रविष्टियां जोड़ें जैसा कि नीचे दिखाया गया है:
[[email protected] ~]# vi /etc/exports
/backup 10.10.10.11(rw,sync,no_root_squash)
डेटाबेस नोड पर, हमें स्टोरेज डिस्क को साझा स्टोरेज के रूप में माउंट करने की आवश्यकता है।
आखिरी बात, बस इंस्टॉल बटन पर क्लिक करें और यह प्रत्येक नोड पर एजेंट को कॉन्फ़िगर करने के लिए एक नया कार्य ट्रिगर करेगा।
सभी PBM ggent स्थापित होने के बाद, हम बैकअप विधि को कॉन्फ़िगर कर सकते हैं नीचे के रूप में क्लस्टर:
भौतिक बनाम तार्किक बैकअप
MongoDB बैकअप तार्किक बैकअप और भौतिक बैकअप का समर्थन करता है। जब आप मोंगोडब पैकेज स्थापित करते हैं तो मोंगोडम्प सुविधा का उपयोग करके तार्किक बैकअप के लिए विधि शामिल होती है। Mongodump को आपके mongodb डेटाबेस तक पहुंच की आवश्यकता होती है, इस प्रकार इसे बैकअप भूमिकाओं के विशेषाधिकारों के साथ mongodump के लिए क्रेडेंशियल एक्सेस की आवश्यकता होती है और डेटाबेस को बैकअप करने के लिए ग्रांट फाइंड एक्शन होना चाहिए।
यह बीएसओएन डेटा डंप प्रारूपों के लिए काम करता है। मोंगोडम्प प्रदान किए गए क्रेडेंशियल्स के साथ आपके डेटाबेस से कनेक्ट होगा, आपके डेटाबेस में संपूर्ण डेटा पढ़ें और डेटा को फाइलों में डंप करें। चूंकि यह एक सिंगल थ्रेडेड प्रक्रिया है, इसलिए बैकअप के लिए विशेष रूप से बड़े आकार के डेटाबेस के साथ अधिक समय लगेगा। मोंगोडम्प शार्क के पार लेनदेन की परमाणुता को बनाए नहीं रखता है, यही कारण है कि इसे एक शार्प क्लस्टर में मोंगोडब संस्करण 4.2 और इसके बाद के संस्करण के लिए बैकअप रणनीति के रूप में उपयोग नहीं किया जा सकता है। MongoDB के लिए Percona बैकअप एक तार्किक बैकअप है लेकिन यह क्लस्टर के लगातार बैकअप का समर्थन करता है।
MongoDB में भौतिक बैकअप mongodb फ़ाइल सिस्टम के स्नैपशॉट के माध्यम से काम करता है, यह आपके mongodb डेटाबेस के आधार बैकअप के रूप में अंतर्निहित mongodb फ़ाइलों को किसी अन्य स्थान पर कॉपी कर रहा है। फ़ाइल सिस्टम स्नैपशॉट ऑपरेटिंग सिस्टम है यदि आप LVM (लॉजिकल वॉल्यूम मैनेजर) का उपयोग अपने डिस्क लेआउट और डिवाइस, या सॉफ़्टवेयर उपकरण के प्रबंधन के लिए सॉफ़्टवेयर के रूप में करते हैं, जैसे। वेरिटास, या नेटएप बैकअप। बैकअप को सुसंगत बनाने के लिए आपको फाइल सिस्टम स्नैपशॉट चलाने से पहले जर्नलिंग, परिवर्तन गतिविधि लॉग इन मोंगोडब को सक्षम करना होगा।
फाइल सिस्टम स्नैपशॉट के अलावा, आप MongoDB डेटा फ़ाइलों की प्रतिलिपि बनाने के लिए cp या rsync कमांड का भी उपयोग कर सकते हैं, लेकिन आपको mongodb में लिखने की प्रक्रिया को रोकने की आवश्यकता है क्योंकि डेटाफ़ाइलों की प्रतिलिपि बनाने की प्रक्रिया एक परमाणु संचालन नहीं है। बैकअप का उपयोग रेप्लिका सेट या साझा क्लस्टर आर्किटेक्चर में पॉइंट इन टाइम रिकवरी के लिए नहीं किया जा सकता है।
मोंगोडीबी के लिए पेरकोना बैकअप में दो घटक होते हैं, पीबीएम-एजेंट जिसे प्रत्येक नोड पर स्थापित करने की आवश्यकता होती है और पीबीएम को एक कमांड लाइन इंटरफेस के रूप में इंटरैक्ट करने और बैकअप चलाने के लिए। पीबीएम-एजेंट के बीच समन्वय करता है डेटाबेस नोड्स और बैकअप और बहाली प्रक्रिया चला रहा है। पीबीएम-एजेंट बैकअप लेने के लिए सबसे अच्छा नोड तय करेगा।
PITR बैकअप
कई डेटाबेस सिस्टम में, डेटा को डिस्क में फ़्लश करने के लिए चेकपॉइंट का उपयोग करना आम बात है। MongoDB एक डिफ़ॉल्ट स्टोरेज इंजन के रूप में WiredTiger स्टोरेज इंजन का उपयोग करता है और डेटा का एक सुसंगत दृश्य प्रदान करने के लिए चौकियों का भी उपयोग करता है। इतना ही नहीं, MongoDB में चेकपॉइंट का उपयोग अंतिम चेकपॉइंट से पुनर्प्राप्त करने के लिए किया जा सकता है। जर्नलिंग प्रत्येक चेकपॉइंट के बीच काम करता है, चेकपॉइंट्स के बीच किसी भी समय होने वाले अप्रत्याशित आउटेज से उबरने के लिए जर्नलिंग की आवश्यकता होती है। जर्नलिंग गारंटी देता है कि लिखने के संचालन डिस्क पर लॉग इन हैं, मोंगोडीबी प्रत्येक परिवर्तन के लिए जर्नल प्रविष्टि बनाएगा, जिसमें बाइट्स और डिस्क स्थान बदल गया है।
Mongodump और mongorestore का उपयोग पॉइंट इन टाइम रिकवरी बैकअप के लिए किया जा सकता है, oplog का लाभ उठाने का एक विकल्प है। oplog MongoDB में एक कैप्ड संग्रह है जो प्रत्येक लेखन लेनदेन के लिए संग्रह में सभी परिवर्तनों को ट्रैक करता है (उदाहरण के लिए सम्मिलित करें, अपडेट करें, हटाएं)। इसलिए, यदि आप पॉइंट इन टाइम रिकवरी करना चाहते हैं, तो आपको पिछले पूर्ण बैकअप से पुनर्स्थापित करने की आवश्यकता है और परिवर्तनों को ठीक उसी समय पर लागू करने के लिए ओपलॉग फ़ाइल का उपयोग करना होगा जिसे आप पुनर्प्राप्त करना चाहते हैं। एक अन्य उपकरण जिसका उपयोग किया जा सकता है वह है मोंगोडीबी के लिए पेरकोना बैकअप, प्रक्रिया मोंगोडम्प की तरह ही है, हमें बैकअप से पुनर्स्थापित करने और फिर ओप्लॉग लागू करने की आवश्यकता है।
निष्कर्ष
लगातार बैकअप लेना महत्वपूर्ण है, विशेष रूप से क्लस्टर किए गए MongoDB सेटअप (प्रतिकृति सेट या शार्प क्लस्टर) में। ClusterControl आपके क्लस्टर में MongoDB के लिए Percona बैकअप को कॉन्फ़िगर करने और आपके बैकअप को शेड्यूल करने का एक आसान तरीका प्रदान करता है।