संपादित 2 सप्ताह पहले द्वारा ExtremeHow संपादकीय टीम
कॉन्फ़िगरेशनप्रतिकृति सेटलिनक्समोंगोडीबीडेटाबेससेटअपविकासउच्च उपलब्धताक्लस्टरसमकालिकीकरण
अनुवाद अपडेट किया गया 2 सप्ताह पहले
MongoDB पर निर्भर आपके एप्लिकेशनों में उपलब्धता और डेटा पुनरावृत्ति सुनिश्चित करने के लिए एक MongoDB रेप्लिका सेट बनाना अत्यंत आवश्यक है। इस गाइड में, हम विस्तार से बताएंगे कि लिनक्स-सिस्टम पर MongoDB रेप्लिका सेट कैसे कॉन्फ़िगर करें। यह व्याख्या कई विषयों को कवर करेगी, जिनमें यह समझना कि एक रेप्लिका सेट क्या है, पूर्वापेक्षाएँ, इंस्टॉलेशन, कॉन्फ़िगरेशन, परीक्षण, और अधिक शामिल हैं। यह विस्तृत गाइड आपको सरल अंग्रेजी में आरंभ से एक रेप्लिका सेट सेट करने के लिए आवश्यक सभी चीजें प्रदान करता है।
तकनीकी कॉन्फ़िगरेशन में जाने से पहले, यह समझना महत्वपूर्ण है कि एक MongoDB रेप्लिका सेट क्या है। MongoDB में एक रेप्लिका सेट एक समूह होता है जिसमें एक जैसे डेटा सेट के साथ कई MongoDB डेटाबेस नोड्स होते हैं, जिससे डेटा पुनरावृत्ति और उच्च उपलब्धता होती है। एक सामान्य रेप्लिका सेट में कम से कम तीन इंस्टैंस या नोड्स होते हैं:
रेप्लिका सेट सीवनलैस फेलओवर की अनुमति देते हैं, अर्थात् यदि प्राइमरी नोड डाउन हो जाता है, तो सेकंडरीज में से एक को प्राइमरी बनाया जा सकता है, जिससे आपका एप्लिकेशन न्यूनतम बाधा के साथ चालू रह सकता है।
MongoDB रेप्लिका सेट सेट करने के लिए आपको निम्नलिखित पूर्वापेक्षाएँ चाहिए:
पहला कदम आपके सभी लिनक्स मशीनों पर MongoDB इंस्टॉल करना है। आपके लिनक्स वितरण के आधार पर इंस्टॉलेशन कमांड भिन्न हो सकते हैं।
उबंटू (apt का उपयोग करते हुए) के लिए:
sudo apt update
sudo apt install -y mongodb
CentOS (yum का उपयोग करते हुए) के लिए:
sudo yum install -y mongodb-org
यह सुनिश्चित करें कि MongoDB प्रत्येक मशीन पर चल रहा है:
sudo systemctl start mongod
sudo systemctl enable mongod
प्रत्येक नोड पर MongoDB इंस्टॉल और चलाने के बाद, आपको प्रत्येक इंस्टैंस को रेप्लिका सेट का हिस्सा बनने के लिए कॉन्फ़िगर करना होगा। अपने पसंदीदा टेक्स्ट एडिटर के साथ MongoDB कॉन्फ़िगरेशन फाइल, जो सामान्यत: /etc/mongod.conf
में होती है, को संपादित करें।
replication:
से शुरू होने वाली पंक्ति को ढूँढें और replSetName
सेट करें। सुनिश्चित करें कि नाम आपके रेप्लिका सेट के सभी नोड्स में एक जैसा है। सेक्शन को इस तरह से जोड़ें या संशोधित करें:
replication:
replSetName: "myReplicaSet"
फाइल को सहेजें और बंद करें। फिर परिवर्तनों को लागू करने के लिए सभी नोड्स पर MongoDB सेवा को पुनरारंभ करें:
sudo systemctl restart mongod
अब जब MongoDB इंस्टैंस कॉन्फ़िगर हो गए हैं, तो उस सर्वर पर जाएँ जिसे आप प्राइमरी के रूप में नामांकित करना चाहते हैं।
MongoDB शेल चलाएँ:
mongo
MongoDB शेल में, रेप्लिका सेट शुरू करने के लिए निम्नलिखित कमांड का उपयोग करें:
rs.initiate()
उपरोक्त कमांड आपके प्राइमरी सर्वर पर रेप्लिका सेट को शुरू करता है।
एक बार रेप्लिका सेट प्रारंभ हो जाने पर, आप rs.add()
कमांड का उपयोग करते हुए अन्य नोड्स (सेकंडरीज, और वैकल्पिक रूप से एक आर्बिटर) को रेप्लिका सेट में जोड़ सकते हैं।
उदाहरण के लिए, एक सेकंडरी नोड जोड़ने के लिए:
rs.add("hostname2:27017")
hostname2:27017
को सेकंडरी नोड के वास्तविक पता और पोर्ट से बदलें।
यदि उपलब्ध हो, तो अतिरिक्त सेकंडरी नोड्स के लिए प्रक्रिया को दोहराएँ:
rs.add("hostname3:27017")
यदि आप एक आर्बिटर नोड जोड़ना चाहते हैं:
rs.addArb("hostname4:27017")
रेप्लिका सेट की स्थिति की जाँच करने के लिए निम्नलिखित कमांड का उपयोग करें:
rs.status()
यह कमांड प्रत्येक नोड की स्थिति दिखाने वाली एक विस्तृत रिपोर्ट प्रदान करेगा। सुनिश्चित करें कि प्रत्येक नोड प्रत्याशित स्थिति में है (प्राइमरी, सेकंडरी, आर्बिटर)।
एक बार रेप्लिका सेट कॉन्फ़िगर हो जाने के बाद, उसके कार्य में विश्वास सुनिश्चित करने के लिए उसका परीक्षण करना महत्वपूर्ण है। यहाँ कुछ परीक्षण हैं जो आप कर सकते हैं:
वर्तमान प्राइमरी नोड पर MongoDB सेवा को बंद करें:
sudo systemctl stop mongod
किसी भी सेकंडरी नोड पर रेप्लिका सेट स्थिति की जाँच करें:
mongo
फिर MongoDB शेल में चलाएँ:
rs.status()
अब सेकंडरी नोड्स में से एक नया प्राइमरी नोड बन जाना चाहिए। मूल प्राइमरी नोड पर MongoDB को पुनः चालू करें और सुनिश्चित करें कि यह सेकंडरी नोड के रूप में रेप्लिका सेट में फिर से जुड़ गया है।
जब नया प्राइमरी नोड चुना जाता है, उसमें डेटा डालें और जाँच करें कि यह डेटा सेकंडरी नोड्स तक पहुँच रहा है।
use testDB
db.testCollection.insert({"name": "Replication Test"})
फिर, सेकंडरी नोड्स में से किसी एक पर डेटा की उपस्थिति की जाँच करें:
rs.slaveOk()
db.testCollection.find()
यदि आपके पास एक आर्बिटर है, तो आप उसकी कार्यक्षमता का परीक्षण एक नोड को जानबूझकर रोककर कर सकते हैं और यह जांच सकते हैं कि आर्बिटर नए प्राइमरी के चुनाव में मदद करता है।
किसी सेकंडरी MongoDB सेवा को रोकें और पुनः प्रारंभ करें:
rs.status()
सुनिश्चित करें कि आपका आर्बिटर उपस्थित है और जब चित्र का चुनाव आवश्यक हो तो उसके भूमिका को सही ढंग से निभाता है।
समस्याएँ अक्सर गलत नेटवर्क कॉन्फ़िगरेशन के कारण उत्पन्न होती हैं; सुनिश्चित करें कि सभी नोड्स एक-दूसरे से संचार कर सकते हैं और सभी फायरवॉल संचार को पोर्ट 27017 (या जो भी पोर्ट MongoDB के लिए कॉन्फ़िगर है) पर अनुमति देते हैं।
यदि प्रमाणीकरण सक्षम है, तो सुनिश्चित करें कि आप उचित उपयोगकर्ता भूमिकाएँ और क्रेडेंशियल्स बनाते हैं जो रेप्लिका सेट के नोड्स को एक-दूसरे से प्रमाणीकरण करने की अनुमति देते हैं।
समझें कि MongoDB की पढ़ाई और लिखाई की चिंताएँ स्तर कैसे काम करते हैं ताकि आप उन्हें क्षमता की आवश्यकताओं के अनुसार कॉन्फ़िगर कर सकें, विशेष रूप से रेप्लिका सेट परिदृश्यों में।
लिनक्स सिस्टम पर MongoDB रेप्लिका सेट को कॉन्फ़िगर करना उन एप्लिकेशनों के लिए महत्वपूर्ण है जिन्हें उच्च उपलब्धता और विश्वसनीयता की आवश्यकता होती है। इस व्यापक गाइड का पालन करके, आपको प्रभावी रूप से रेप्लिका सेट सेट करने में सक्षम होना चाहिए, प्रत्येक चरण के महत्व को समझते हुए। एक रेप्लिका सेट चलाने से यह सुनिश्चित होता है कि आपका डेटा कई नोड्स पर पुनरावृत्ति होता है, जिससे आपका डेटाबेस प्रणाली अधिक दोष सहिष्णु और वास्तविक-विश्व एप्लिकेशन की मांगों को संभालने के लिए अच्छी तरह से सुसज्जित बन जाता है।
याद रखें, हमेशा अपने MongoDB रेप्लिका सेट के स्वास्थ्य और प्रदर्शन की निगरानी करें और बदलती आवश्यकताओं के अनुसार कॉन्फ़िगरेशन को समायोजित करें। सही सेटअप और रखरखाव के साथ, MongoDB रेप्लिका सेट मिशन-क्रिटिकल अनुप्रयोगों के लिए एक मजबूत डेटाबेस समाधान प्रदान कर सकते हैं।
यदि आपको लेख की सामग्री में कुछ गलत लगता है, आप कर सकते हैं