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

क्लाउड में MongoDB बैकअप स्टोर करने के लिए टिप्स

जब बैकअप और डेटा संग्रह की बात आती है, तो आईटी विभागों पर सख्त सेवा स्तर के समझौतों को पूरा करने, अधिक कस्टम रिपोर्ट देने, और दैनिक संग्रह और बैकअप कार्यों का प्रबंधन जारी रखते हुए अनुपालन आवश्यकताओं का विस्तार करने का दबाव होता है। निस्संदेह, डेटाबेस सर्वर आपके उद्यम की कुछ सबसे मूल्यवान जानकारी संग्रहीत करता है। किसी दुर्घटना या हार्डवेयर की विफलता की स्थिति में डेटा हानि को रोकने के लिए विश्वसनीय डेटाबेस बैकअप की गारंटी एक महत्वपूर्ण चेकबॉक्स है।

लेकिन इसे सही मायने में DR कैसे बनाया जाए जब आपका सारा डेटा एकल डेटा केंद्र या यहां तक ​​कि डेटा केंद्रों में है जो निकट भौगोलिक स्थान में हैं? इसके अलावा, चाहे वह 24x7 अत्यधिक लोड वाला सर्वर हो या कम लेन-देन-मात्रा वाला वातावरण, आपको उत्पादन वातावरण में सर्वर के प्रदर्शन को बाधित किए बिना बैकअप को एक सहज प्रक्रिया बनाने की आवश्यकता होगी।

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

हम आपको दिखाएंगे कि मोंगो सेवाओं का उपयोग करके सुरक्षित MongoDB बैकअप कैसे करें और साथ ही अन्य विधियों का उपयोग करके आप अपने डेटाबेस आपदा पुनर्प्राप्ति विकल्पों का विस्तार करने के लिए उपयोग कर सकते हैं।

यदि आपका सर्वर या बैकअप गंतव्य सार्वजनिक क्लाउड, होस्टिंग प्रदाता या किसी अविश्वसनीय WAN नेटवर्क के माध्यम से कनेक्टेड इन्फ्रास्ट्रक्चर में स्थित है, तो आपको अपनी बैकअप नीति में अतिरिक्त कार्रवाइयों के बारे में सोचने की आवश्यकता है। MongoDB के लिए डेटाबेस बैकअप करने के कुछ अलग तरीके हैं, और बैकअप के प्रकार के आधार पर, पुनर्प्राप्ति समय, आकार और बुनियादी ढांचे के विकल्प अलग-अलग होंगे। चूंकि कई क्लाउड स्टोरेज समाधान केवल अलग-अलग एपीआई फ्रंट एंड के साथ स्टोरेज हैं, इसलिए किसी भी बैकअप समाधान को थोड़ी सी स्क्रिप्टिंग के साथ किया जा सकता है। तो प्रक्रिया को सुचारू और सुरक्षित बनाने के लिए हमारे पास क्या विकल्प हैं?

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

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

एन्क्रिप्टेड बैकअप बनाते समय, एक बात का ध्यान रखें कि आमतौर पर इसे ठीक होने में अधिक समय लगता है। किसी भी पुनर्प्राप्ति गतिविधियों से पहले बैकअप को डिक्रिप्ट किया जाना चाहिए। एक बड़े डेटासेट के साथ, यह आरटीओ में कुछ देरी का परिचय दे सकता है।

दूसरी ओर, यदि आप एन्क्रिप्शन के लिए निजी कुंजियों का उपयोग कर रहे हैं, तो कुंजी को किसी सुरक्षित स्थान पर रखना सुनिश्चित करें। यदि निजी कुंजी गुम है, तो बैकअप बेकार और अप्राप्य होगा। यदि कुंजी चोरी हो जाती है, तो सभी बनाए गए बैकअप जो समान कुंजी का उपयोग करते हैं, उनसे समझौता किया जाएगा क्योंकि वे अब सुरक्षित नहीं हैं। आप निजी या सार्वजनिक कुंजियाँ बनाने के लिए लोकप्रिय GnuPG या OpenSSL का उपयोग कर सकते हैं।

GnuPG का उपयोग करके MongoDBdump एन्क्रिप्शन करने के लिए, एक निजी कुंजी उत्पन्न करें और तदनुसार विज़ार्ड का पालन करें:

$ gpg --gen-key 

हमेशा की तरह एक सादा MongoDBdump बैकअप बनाएं:

$ mongodump –db db1 –gzip –archive=/tmp/db1.tar.gz 
डंप फ़ाइल को एन्क्रिप्ट करें और पुराने सादे बैकअप को हटा दें:
$ gpg --encrypt -r '[email protected]' db1.tar.gz$ rm -f db1.tar.gz 
GnuPG स्वचालित रूप से एन्क्रिप्टेड फ़ाइल पर .gpg एक्सटेंशन जोड़ देगा। डिक्रिप्ट करने के लिए,

बस gpg कमांड को --decrypt ध्वज के साथ चलाएँ:

$ gpg --output db1.tar.gz --decrypt db1.tar.gz.gpg 
OpenSSL का उपयोग करके एक एन्क्रिप्टेड MongoDBdump बनाने के लिए, एक निजी कुंजी और एक सार्वजनिक कुंजी उत्पन्न करनी होगी:
OpenSSL req -x509 -nodes -newkey rsa:2048 -keyout dump.priv.pem -out dump.pub। पीईएम 

इस निजी कुंजी (dump.priv.pem) को भविष्य में डिक्रिप्शन के लिए सुरक्षित स्थान पर रखा जाना चाहिए। Mongodump के लिए, सामग्री को opensl में पाइप करके एक एन्क्रिप्टेड बैकअप बनाया जा सकता है, उदाहरण के लिए

मोंगोडंप -डीबी डीबी1 -जीज़िप -आर्काइव=/tmp/db1.tar.gz | Opensl smime -encrypt -binary -text -aes256-out database.sql.enc -outform DER dump.pub.pem 
डिक्रिप्ट करने के लिए, बस -डिक्रिप्ट ध्वज के साथ निजी कुंजी (dump.priv.pem) का उपयोग करें:

openssl smime -decrypt -in database.sql.enc -binary -inform

DEM -inkey dump.priv.pem -out db1.tar.gz 

MongoDB बैकअप संपीड़न

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

संग्रह के अलावा, हमने gzip का उपयोग करके संपीड़न के लिए समर्थन भी जोड़ा है। यह mongodump और mongorestore दोनों में एक नया कमांड-लाइन विकल्प "--gzip" की शुरूआत से उजागर हुआ है। संपीड़न निर्देशिका और संग्रह मोड का उपयोग करके बनाए गए बैकअप दोनों के लिए काम करता है और डिस्क स्थान के उपयोग को कम करता है।

आम तौर पर, MongoDB डंप में सबसे अच्छी संपीड़न दर हो सकती है क्योंकि यह एक फ्लैट टेक्स्ट फ़ाइल है। संपीड़न उपकरण और अनुपात के आधार पर, एक संपीड़ित MongoDBdump मूल बैकअप आकार से 6 गुना छोटा हो सकता है। बैकअप को कंप्रेस करने के लिए, आप MongoDBdump आउटपुट को एक कंप्रेशन टूल में पाइप कर सकते हैं और इसे एक गंतव्य फ़ाइल पर रीडायरेक्ट कर सकते हैं

संपीड़ित बैकअप होने से आप डेटासेट के आधार पर मूल बैकअप आकार का 50% तक बचा सकते हैं।

mongodump --db देश --gzip --archive=country.archive 

नेटवर्क थ्रूपुट सीमित करना

क्लाउड बैकअप के लिए एक बढ़िया विकल्प बैकअप करते समय नेटवर्क स्ट्रीमिंग बैंडविड्थ (एमबी/एस) को सीमित करना है। आप इसे pv टूल से हासिल कर सकते हैं। pv उपयोगिता डेटा संशोधक विकल्प -L RATE, --rate-limit RATE के साथ आती है जो स्थानांतरण को अधिकतम RATE बाइट्स प्रति सेकंड तक सीमित करती है। नीचे दिया गया उदाहरण इसे 2MB/s तक सीमित कर देगा।

$ pv -q -L 2m 

MongoDB बैकअप को क्लाउड में स्थानांतरित करना

अब जब आपका बैकअप संपीड़ित और सुरक्षित (एन्क्रिप्टेड) ​​हो गया है, तो यह स्थानांतरण के लिए तैयार है।

Google क्लाउड

gsutil कमांड-लाइन टूल का उपयोग Google क्लाउड स्टोरेज पर आपके स्टोरेज बकेट को प्रबंधित करने, मॉनिटर करने और उपयोग करने के लिए किया जाता है। यदि आपने पहले से ही gcloud उपयोग स्थापित किया है, तो आपके पास पहले से ही gsutil स्थापित है। अन्यथा, यहाँ से अपने Linux वितरण के लिए निर्देशों का पालन करें।

gcloud CLI स्थापित करने के लिए आप नीचे दी गई प्रक्रिया का पालन कर सकते हैं:

कर्ल https://sdk.cloud.google.com | बैश 
अपना शेल पुनः प्रारंभ करें:
exec -l $SHELL 
gcloud परिवेश को प्रारंभ करने के लिए gcloud init चलाएँ:
gcloud init 
gsutil कमांड लाइन टूल को स्थापित और प्रमाणित करने के साथ, अपने वर्तमान प्रोजेक्ट में MongoDB-backups-storage नामक एक क्षेत्रीय स्टोरेज बकेट बनाएं। जीएस बनाना://MongoDB-बैकअप-स्टोरेज/

अमेज़न S3

यदि आप अपने डेटाबेस को होस्ट करने के लिए RDS का उपयोग नहीं कर रहे हैं, तो यह बहुत संभव है कि आप अपना बैकअप स्वयं कर रहे हों। अमेज़ॅन का AWS प्लेटफ़ॉर्म, S3 (अमेज़ॅन सिंपल स्टोरेज सर्विस) एक डेटा स्टोरेज सेवा है जिसका उपयोग डेटाबेस बैकअप या अन्य व्यावसायिक-महत्वपूर्ण फ़ाइलों को संग्रहीत करने के लिए किया जा सकता है। या तो यह Amazon EC2 इंस्टेंस है या आपका ऑन-प्रिमाइसेस वातावरण आप अपने डेटा को सुरक्षित करने के लिए सेवा का उपयोग कर सकते हैं।

जबकि बैकअप वेब इंटरफ़ेस के माध्यम से अपलोड किए जा सकते हैं, समर्पित s3 कमांड लाइन इंटरफ़ेस का उपयोग इसे कमांड लाइन से और बैकअप ऑटोमेशन स्क्रिप्ट के माध्यम से करने के लिए किया जा सकता है। यदि बैकअप को बहुत लंबे समय तक रखा जाना है, और पुनर्प्राप्ति समय चिंता का विषय नहीं है, तो बैकअप को अमेज़ॅन ग्लेशियर सेवा में स्थानांतरित किया जा सकता है, जो बहुत सस्ता दीर्घकालिक भंडारण प्रदान करता है। फ़ाइलें (अमेज़ॅन ऑब्जेक्ट्स) तार्किक रूप से बकेट नामक एक विशाल फ्लैट कंटेनर में संग्रहीत की जाती हैं। S3 अपने आंतरिक के लिए एक REST इंटरफ़ेस प्रस्तुत करता है। आप इस API का उपयोग बकेट और ऑब्जेक्ट पर CRUD संचालन करने के साथ-साथ दोनों पर अनुमतियाँ और कॉन्फ़िगरेशन बदलने के लिए कर सकते हैं।

लिनक्स, विंडोज़ और मैकोज़ पर एडब्ल्यूएस सीएलआई के लिए प्राथमिक वितरण विधि पाइप है, जो पायथन के लिए एक पैकेज मैनेजर है। निर्देश यहां देखे जा सकते हैं।

aws s3 cp Manynines.sql s3://severalnine-sbucket/MongoDB_backups 
डिफ़ॉल्ट रूप से, S3 ग्यारह 9s ऑब्जेक्ट स्थायित्व प्रदान करता है। इसका मतलब है कि यदि आप इसमें 1.000.000.000 (1 बिलियन) ऑब्जेक्ट स्टोर करते हैं, तो आप औसतन हर 10 साल में 1 ऑब्जेक्ट खोने की उम्मीद कर सकते हैं। जिस तरह से S3 प्राप्त करता है कि 9s की एक प्रभावशाली संख्या वस्तु को कई उपलब्धता क्षेत्रों में स्वचालित रूप से दोहराती है, जिसके बारे में हम एक अन्य पोस्ट में बात करेंगे। Amazon के दुनिया भर में क्षेत्रीय डेटा केंद्र हैं।

Microsoft Azure संग्रहण

Microsoft के सार्वजनिक क्लाउड प्लेटफ़ॉर्म, Azure में इसके नियंत्रण रेखा इंटरफ़ेस के साथ संग्रहण विकल्प हैं। यहां पर सूचनाएं प्राप्त की जा सकती हैं। ओपन-सोर्स, क्रॉस-प्लेटफ़ॉर्म Azure CLI, Azure प्लेटफ़ॉर्म के साथ काम करने के लिए कमांड का एक सेट प्रदान करता है। यह रिच डेटा एक्सेस सहित, Azure पोर्टल में देखी जाने वाली अधिकांश कार्यक्षमता देता है।

Azure CLI की स्थापना काफी सरल है, आप यहां निर्देश पा सकते हैं। नीचे आप अपने बैकअप को Microsoft संग्रहण में स्थानांतरित करने का तरीका जान सकते हैं।

 एज़ स्टोरेज ब्लॉब अपलोड --कंटेनर-नाम कईनाइन --फाइल कईनिन्स.gz.tar --name Manynines_backup 

MongoDB बैकअप के लिए हाइब्रिड स्टोरेज

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

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

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

ClusterControl बैकअप प्रबंधन - हाइब्रिड स्टोरेज

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

  • नेटवर्क थ्रॉटलिंग
  • अंतर्निहित कुंजी प्रबंधन के साथ एन्क्रिप्शन
  • संपीड़न
  • स्थानीय बैकअप के लिए अवधारण अवधि
  • क्लाउड बैकअप के लिए अवधारण अवधि

क्लस्टरकंट्रोल क्लाउड, समानांतर संपीड़न, नेटवर्क बैंडविड्थ सीमा, एन्क्रिप्शन के लिए उन्नत बैकअप सुविधाएं , आदि। आपकी कंपनी बढ़ती भंडारण आवश्यकताओं के लिए क्लाउड स्केलेबिलिटी और पे-एज़-यू-गो मूल्य निर्धारण का लाभ उठा सकती है। आप तत्काल बहाली के लिए डेटासेंटर में स्थानीय प्रतियां और AWS, Google और Azure से क्लाउड स्टोरेज सेवाओं के लिए एक सहज गेटवे दोनों प्रदान करने के लिए एक बैकअप रणनीति तैयार कर सकते हैं।

उन्नत TLS और AES 256 -बिट एन्क्रिप्शन और कम्प्रेशन फीचर्स सुरक्षित बैकअप का समर्थन करते हैं जो क्लाउड में काफी कम जगह लेते हैं।


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. मोंगोडब आंतरिक सरणी के लिए नया मान पुश करें - मोंगोडब/php

  2. पाइमोंगो से कच्चे मोंगोडब कमांड कैसे चलाएं

  3. जावा/मोंगोडीबी क्वेरी तिथि के अनुसार

  4. सी # में मोंगोडीबी नेस्टेड $elemMatch क्वेरी को कैसे कार्यान्वित करें

  5. अतुल्यकालिक उप-कार्य के साथ Async कर्सर पुनरावृत्ति