MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

ClusterControl के साथ अपने डेटा की सुरक्षा

ब्लॉग श्रृंखला की पिछली चार पोस्टों में, हमने क्लस्टरिंग/प्रतिकृति (MySQL/Galera, MySQL प्रतिकृति, MongoDB और PostgreSQL) की तैनाती, आपके मौजूदा डेटाबेस और समूहों के प्रबंधन और निगरानी, ​​प्रदर्शन की निगरानी और स्वास्थ्य और अंतिम पोस्ट में कवर किया है। HAProxy और ProxySQL के माध्यम से अपने सेटअप को अत्यधिक उपलब्ध कैसे करें।

तो अब जब आपके पास अपने डेटाबेस हैं और चल रहे हैं और अत्यधिक उपलब्ध हैं, तो आप कैसे सुनिश्चित करते हैं कि आपके पास अपने डेटा का बैकअप है?

आप कई चीजों के लिए बैकअप का उपयोग कर सकते हैं:आपदा वसूली, विकास के खिलाफ परीक्षण के लिए उत्पादन डेटा प्रदान करने के लिए या यहां तक ​​​​कि दास नोड का प्रावधान करने के लिए। यह अंतिम मामला पहले से ही ClusterControl द्वारा कवर किया गया है। जब आप अपने प्रतिकृति सेटअप में एक नया (प्रतिकृति) नोड जोड़ते हैं, तो ClusterControl मास्टर नोड का बैकअप/स्नैपशॉट बनाएगा और प्रतिकृति बनाने के लिए इसका उपयोग करेगा। यदि आप मास्टर पर उस अतिरिक्त भार से बचना चाहते हैं, तो यह प्रतिकृति को चरणबद्ध करने के लिए मौजूदा बैकअप का भी उपयोग कर सकता है। बैकअप निकालने, तैयार करने और डेटाबेस के ऊपर और चलने के बाद, ClusterControl स्वचालित रूप से प्रतिकृति सेट कर देगा।

झटपट बैकअप बनाना

संक्षेप में, बैकअप बनाना गैलेरा, MySQL प्रतिकृति, PostgreSQL और MongoDB के लिए समान है। आप बैकअप अनुभाग को ClusterControl> बैकअप . के अंतर्गत पा सकते हैं और डिफ़ॉल्ट रूप से आप क्लस्टर के बनाए गए बैकअप (यदि कोई हो) की एक सूची देखेंगे। अन्यथा, आपको बैकअप बनाने के लिए एक प्लेसहोल्डर दिखाई देगा:

यहां से आप तत्काल बैकअप बनाने या नया बैकअप शेड्यूल करने के लिए "बैकअप बनाएं" बटन पर क्लिक कर सकते हैं:

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

"बैकअप बनाएं" और "शेड्यूल बैकअप" शेड्यूलिंग भाग और बाद के लिए वृद्धिशील बैकअप विकल्पों को छोड़कर समान विकल्प साझा करते हैं। इसलिए, हम क्रिएट बैकअप फीचर (उर्फ इंस्टेंट बैकअप) को और गहराई से देखने जा रहे हैं।

चूंकि इन सभी विभिन्न डेटाबेस में अलग-अलग बैकअप टूल होते हैं, इसलिए स्पष्ट रूप से आपके द्वारा चुने जा सकने वाले विकल्पों में कुछ अंतर होता है। उदाहरण के लिए MySQL के साथ आपको mysqldump और xtrabackup (पूर्ण और वृद्धिशील) के बीच चयन करने को मिलता है। MongoDB के लिए, ClusterControl mongodump और mongodb-consistent-backup (बीटा) का समर्थन करता है जबकि PostgreSQL, pg_dump और pg_basebackup समर्थित हैं। यदि संदेह है कि MySQL के लिए किसे चुनना है, तो अंतर के बारे में इस ब्लॉग को देखें और mysqldump और xtrabackup के मामलों का उपयोग करें।

MySQL और Galera का बैकअप लेना

जैसा कि पिछले पैराग्राफ में बताया गया है, आप mysqldump या xtrabackup (पूर्ण या वृद्धिशील) का उपयोग करके MySQL बैकअप बना सकते हैं। "बैकअप बनाएँ" विज़ार्ड में, आप चुन सकते हैं कि आप किस होस्ट पर बैकअप चलाना चाहते हैं, वह स्थान जहाँ आप बैकअप फ़ाइलें संग्रहीत करना चाहते हैं, और उसकी निर्देशिका और विशिष्ट स्कीमा (xtrabackup) या स्कीमा और टेबल (mysqldump)।

यदि आप जिस नोड का बैकअप ले रहे हैं, वह (उत्पादन) ट्रैफ़िक प्राप्त कर रहा है, और आप डरते हैं कि अतिरिक्त डिस्क लिखने से घुसपैठ हो जाएगी, तो यह सलाह दी जाती है कि "स्टोर ऑन कंट्रोलर" विकल्प चुनकर बैकअप को क्लस्टर कंट्रोल होस्ट को भेजें। यह बैकअप को नेटवर्क पर फ़ाइलों को क्लस्टरकंट्रोल होस्ट पर स्ट्रीम करने का कारण बनेगा और आपको यह सुनिश्चित करना होगा कि इस नोड पर पर्याप्त जगह उपलब्ध है और स्ट्रीमिंग पोर्ट क्लस्टरकंट्रोल होस्ट पर खोला गया है।

कई अन्य विकल्प भी हैं कि क्या आप संपीड़न और संपीड़न स्तर का उपयोग करना चाहते हैं। संपीड़न स्तर जितना अधिक होगा, बैकअप आकार उतना ही छोटा होगा। हालांकि, इसे कंप्रेशन और डीकंप्रेसन प्रक्रिया के लिए उच्च CPU उपयोग की आवश्यकता होती है।

यदि आप बैकअप के लिए विधि के रूप में xtrabackup चुनते हैं, तो यह अतिरिक्त विकल्प खोलेगा:desync, बैकअप लॉक, संपीड़न और xtrabackup समानांतर थ्रेड/gzip। Desync विकल्प केवल Galera क्लस्टर से किसी नोड को desync करने के लिए लागू होता है। बैकअप लॉक एक नए एमडीएल लॉक प्रकार का उपयोग गैर-लेन-देन वाली तालिकाओं के अपडेट को ब्लॉक करने के लिए करता है और सभी तालिकाओं के लिए डीडीएल स्टेटमेंट जो कि इनो डीबी-विशिष्ट वर्कलोड के लिए अधिक कुशल है। यदि आप गैलेरा क्लस्टर पर चल रहे हैं, तो इस विकल्प को सक्षम करने की अनुशंसा की जाती है।

तत्काल बैकअप शेड्यूल करने के बाद आप गतिविधि> कार्य में बैकअप कार्य की प्रगति पर नज़र रख सकते हैं :

इसके समाप्त होने के बाद, आपको बैकअप सूची के अंतर्गत एक नई प्रविष्टि देखने में सक्षम होना चाहिए।

PostgreSQL का बैकअप लेना

MySQL के तत्काल बैकअप के समान, आप अपने Postgres डेटाबेस पर बैकअप चला सकते हैं। पोस्टग्रेज बैकअप के साथ दो बैकअप विधियाँ समर्थित हैं - pg_dumpall या pg_basebackup। ध्यान दें कि चुनी गई बैकअप विधि पर ध्यान दिए बिना ClusterControl हमेशा एक पूर्ण बैकअप निष्पादित करेगा।

हमने इस पहलू को इस विवरण में पोस्टग्रेएसक्यूएल डीबीए - लॉजिकल एंड फिजिकल पोस्टग्रेएसक्यूएल बैकअप में शामिल किया है।

MongoDB का बैकअप लेना

MongoDB के लिए, ClusterControl Percona द्वारा विकसित मानक mongodump और mongodb-consistent-backup का समर्थन करता है। उत्तरार्द्ध अभी भी बीटा संस्करण में है जो शार्प क्लस्टर सेटअप के लिए उपयुक्त MongoDB के क्लस्टर-संगत पॉइंट-इन-टाइम बैकअप प्रदान करता है। चूंकि शार्प किए गए MongoDB क्लस्टर में कई प्रतिकृति सेट, एक कॉन्फ़िगरेशन प्रतिकृति सेट और शार्प सर्वर होते हैं, इसलिए केवल mongodump का उपयोग करके एक सुसंगत बैकअप बनाना बहुत मुश्किल है।

ध्यान दें कि विज़ार्ड में, आपको बैकअप लेने के लिए डेटाबेस नोड चुनने की आवश्यकता नहीं है। ClusterControl स्वचालित रूप से बैकअप नोड के रूप में स्वास्थ्यप्रद माध्यमिक प्रतिकृति का चयन करेगा। अन्यथा, प्राथमिक का चयन किया जाएगा। जब बैकअप चल रहा हो, तो बैकअप प्रक्रिया पूरी होने तक चयनित बैकअप नोड लॉक हो जाएगा।

बैकअप शेड्यूल करना

अब जब हमने झटपट बैकअप बनाने का काम पूरा कर लिया है, तो अब हम बैकअप शेड्यूल करके इसे बढ़ा सकते हैं।

शेड्यूलिंग करना बहुत आसान है:आप चुन सकते हैं कि किस दिन बैकअप करना है और किस समय इसे चलाना है।

एक्स्ट्राबैकअप के लिए एक अतिरिक्त सुविधा है:वृद्धिशील बैकअप। एक वृद्धिशील बैकअप केवल उस डेटा का बैकअप लेगा जो पिछले बैकअप के बाद से बदल गया है। बेशक, वृद्धिशील बैकअप बेकार हैं यदि प्रारंभिक बिंदु के रूप में पूर्ण बैकअप नहीं होगा। दो पूर्ण बैकअप के बीच, आपके पास जितने चाहें उतने वृद्धिशील बैकअप हो सकते हैं। लेकिन उन्हें पुनर्स्थापित करने में अधिक समय लगेगा।

एक बार निर्धारित कार्य (कार्यों) को "अनुसूचित बैकअप" टैब के तहत दिखाई देना चाहिए और आप "संपादित करें" बटन पर क्लिक करके उन्हें संपादित कर सकते हैं। तत्काल बैकअप की तरह, ये कार्य एक बैकअप के निर्माण को शेड्यूल करेंगे और आप गतिविधि टैब के माध्यम से प्रगति का ट्रैक रख सकते हैं।

बैकअप सूची

आप बैकअप सूची को ClusterControl> बैकअप . के अंतर्गत पा सकते हैं और यह आपको किए गए सभी बैकअप का क्लस्टर स्तर का अवलोकन देगा। प्रत्येक प्रविष्टि पर क्लिक करने से पंक्ति का विस्तार होगा और बैकअप के बारे में अधिक जानकारी सामने आएगी:

प्रत्येक बैकअप के साथ एक बैकअप लॉग होता है जब ClusterControl ने कार्य निष्पादित किया, जो "अधिक क्रियाएँ" बटन के अंतर्गत उपलब्ध है।

क्लाउड में ऑफसाइट बैकअप

चूंकि अब हमारे पास डेटाबेस होस्ट या क्लस्टरकंट्रोल होस्ट पर बहुत सारे बैकअप संग्रहीत हैं, इसलिए हम यह भी सुनिश्चित करना चाहते हैं कि अगर हम कुल बुनियादी ढांचे की कमी का सामना करते हैं तो वे खो नहीं जाते हैं। (उदाहरण के लिए डीसी में आग या बाढ़) इसलिए क्लस्टर कंट्रोल आपको क्लाउड पर अपने बैकअप ऑफसाइट को स्टोर या कॉपी करने की अनुमति देता है। समर्थित क्लाउड प्लेटफ़ॉर्म Amazon S3, Google Cloud Storage और Azure Cloud Storage हैं।

बैकअप सफलतापूर्वक बनने के बाद अपलोड प्रक्रिया ठीक होती है (यदि आप "क्लाउड पर बैकअप अपलोड करें" टॉगल करते हैं) या आप बैकअप सूची के क्लाउड आइकन बटन पर मैन्युअल रूप से क्लिक कर सकते हैं:

क्लाउड क्रेडेंशियल चुनें और उसके अनुसार बैकअप स्थान निर्दिष्ट करें:

पुनर्स्थापित करें और/या बैकअप सत्यापित करें

बैकअप सूची इंटरफ़ेस से, आप किसी विशेष बैकअप के लिए "पुनर्स्थापित करें" बटन पर क्लिक करके या "पुनर्स्थापित बैकअप" बटन पर क्लिक करके क्लस्टर में किसी होस्ट को सीधे बैकअप पुनर्स्थापित कर सकते हैं:

एक अच्छी विशेषता यह है कि यह पूर्ण और वृद्धिशील बैकअप का उपयोग करके एक नोड या क्लस्टर को पुनर्स्थापित करने में सक्षम है क्योंकि यह पिछले पूर्ण बैकअप का ट्रैक रखेगा और वहां से वृद्धिशील बैकअप शुरू करेगा। फिर यह अगले पूर्ण बैकअप तक सभी वृद्धिशील बैकअप के साथ एक पूर्ण बैकअप समूहित करेगा। यह आपको पूर्ण बैकअप से प्रारंभ करके और इसके ऊपर वृद्धिशील बैकअप लागू करने की अनुमति देता है।

ClusterControl किसी मौजूदा डेटाबेस नोड पर पुनर्स्थापना का समर्थन करता है या नए स्टैंडअलोन होस्ट पर पुनर्स्थापित और सत्यापित करता है:

ये दो विकल्प बहुत समान हैं, सिवाय इसके कि सत्यापित करें कि नए होस्ट जानकारी के लिए अतिरिक्त विकल्प हैं। यदि आप पुनर्स्थापना विज़ार्ड का पालन करते हैं, तो आपको एक नया होस्ट निर्दिष्ट करना होगा। यदि "डेटाबेस सॉफ़्टवेयर स्थापित करें" सक्षम है, तो ClusterControl लक्ष्य होस्ट पर किसी भी मौजूदा MySQL स्थापना को हटा देगा और मौजूदा MySQL सर्वर के समान संस्करण के साथ डेटाबेस सॉफ़्टवेयर को पुनर्स्थापित करेगा।

एक बार बैकअप पुनर्स्थापित और सत्यापित हो जाने पर, आपको पुनर्स्थापना स्थिति पर एक सूचना प्राप्त होगी और नोड अपने आप बंद हो जाएगा।

प्वाइंट-इन-टाइम रिकवरी

MySQL के लिए, xtrabackup और mysqldump दोनों का उपयोग पॉइंट-इन-टाइम रिकवरी करने के लिए किया जा सकता है और मास्टर-स्लेव प्रतिकृति या गैलेरा क्लस्टर के लिए एक नया प्रतिकृति दास का प्रावधान करने के लिए भी किया जा सकता है। एक mysqldump PITR- संगत बैकअप में एक सिंगल डंप फ़ाइल होती है, जिसमें GTID जानकारी, बिनलॉग फ़ाइल और स्थिति होती है। इस प्रकार, केवल डेटाबेस नोड जो बाइनरी लॉग उत्पन्न करता है, उसके पास "PITR संगत" विकल्प उपलब्ध होगा:

जब PITR संगत विकल्प को टॉगल किया जाता है, तो डेटाबेस और टेबल फ़ील्ड धूसर हो जाते हैं क्योंकि ClusterControl हमेशा लक्ष्य MySQL सर्वर के सभी डेटाबेस, ईवेंट, ट्रिगर और रूटीन के विरुद्ध एक पूर्ण बैकअप निष्पादित करेगा।

अब बैकअप को रिस्टोर कर रहे हैं। यदि बैकअप PITR के साथ संगत है, तो पॉइंट-इन-टाइम रिकवरी करने के लिए एक विकल्प प्रस्तुत किया जाएगा। उसके लिए आपके पास दो विकल्प होंगे - "समय आधारित" और "स्थिति आधारित"। "समय आधारित" के लिए, आप बस दिन और समय गुजार सकते हैं। "स्थिति आधारित" के लिए, आप ठीक उसी स्थिति को पास कर सकते हैं जहां आप पुनर्स्थापित करना चाहते हैं। यह पुनर्स्थापित करने का एक अधिक सटीक तरीका है, हालांकि आपको mysqlbinlog उपयोगिता का उपयोग करके बिनलॉग स्थिति प्राप्त करने की आवश्यकता हो सकती है। पॉइंट इन टाइम रिकवरी के बारे में अधिक विवरण इस ब्लॉग में पाया जा सकता है।

बैकअप एन्क्रिप्शन

विश्व स्तर पर, ClusterControl MySQL, MongoDB और PostgreSQL के लिए बैकअप एन्क्रिप्शन का समर्थन करता है। AES-256 CBC एल्गोरिथम का उपयोग करके बैकअप को आराम से एन्क्रिप्ट किया जाता है। /etc/cmon.d/cmon_X.cnf (जहाँ X क्लस्टर आईडी है) के अंतर्गत क्लस्टर की कॉन्फ़िगरेशन फ़ाइल में एक स्वतः उत्पन्न कुंजी संग्रहीत की जाएगी:

$ sudo grep backup_encryption_key /etc/cmon.d/cmon_1.cnf
backup_encryption_key='JevKc23MUIsiWLf2gJWq/IQ1BssGSM9wdVLb+gRGUv0='

यदि बैकअप गंतव्य स्थानीय नहीं है, तो बैकअप फ़ाइलें एन्क्रिप्टेड स्वरूप में स्थानांतरित की जाती हैं। यह सुविधा क्लाउड पर ऑफसाइट बैकअप का पूरक है, जहां हमारे पास अंतर्निहित स्टोरेज सिस्टम तक पूर्ण पहुंच नहीं है।

अंतिम विचार

हमने आपको दिखाया कि आप अपने डेटा का बैकअप कैसे ले सकते हैं और उन्हें साइट से सुरक्षित रूप से कैसे स्टोर कर सकते हैं। रिकवरी हमेशा एक अलग चीज होती है। ClusterControl पूर्व में किए गए बैकअप से आपके डेटाबेस को स्वचालित रूप से पुनर्प्राप्त कर सकता है जो परिसर में संग्रहीत हैं या क्लाउड से वापस कॉपी किए गए हैं।

स्पष्ट रूप से आपके डेटा को सुरक्षित करने के लिए और भी बहुत कुछ है, विशेष रूप से आपके कनेक्शन सुरक्षित करने के पक्ष में। हम इसे अगले ब्लॉग पोस्ट में कवर करेंगे!


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. ClusterControl 1.5 दस्तावेज़ीकरण - नया क्या है

  2. MongoDB प्रोजेक्शन में एक स्ट्रिंग को एक संख्या में बदलें

  3. Java mongodb ड्राइवर में _id फ़ील्ड का उपयोग करके दस्तावेज़ों को कैसे क्वेरी करें?

  4. MongoDB $oid बनाम ObjectId

  5. Amazon वेब सेवाओं पर DIY क्लाउड डेटाबेस - नया श्वेतपत्र