MongoDB प्रतिकृति: कैसे बनाएं MongoDB प्रतिकृति सेट
एचएमबी क्या है? MongoDB प्रतिकृति?
प्रतिकृतिकरण से तात्पर्य यह सुनिश्चित करने की प्रक्रिया से है कि एक ही डेटा एक से अधिक मोंगो डीबी सर्वर पर उपलब्ध है। कभी-कभी डेटा उपलब्धता बढ़ाने के उद्देश्य से इसकी आवश्यकता होती है।
क्योंकि यदि आपका मुख्य MongoDB किसी भी कारण से सर्वर बंद हो जाने पर डेटा तक पहुँच नहीं होगी। लेकिन अगर आपने नियमित अंतराल पर डेटा को दूसरे सर्वर पर दोहराया है, तो आप प्राथमिक सर्वर के विफल होने पर भी दूसरे सर्वर से डेटा तक पहुँच सकेंगे।
प्रतिकृति का एक और उद्देश्य लोड संतुलन की संभावना है। यदि सिस्टम से कई उपयोगकर्ता जुड़ रहे हैं, तो सभी को एक सिस्टम से जोड़ने के बजाय, उपयोगकर्ताओं को कई सर्वरों से जोड़ा जा सकता है ताकि लोड का समान वितरण हो सके।
In MongoDB, कई MongoDB सर्वर को सेट में समूहीकृत किया जाता है जिसे रेप्लिका सेट कहते हैं। रेप्लिका सेट में एक प्राथमिक सर्वर होगा जो क्लाइंट से सभी लेखन ऑपरेशन स्वीकार करेगा। इसके बाद सेट में जोड़े गए सभी अन्य इंस्टेंस को सेकेंडरी इंस्टेंस कहा जाएगा जिसका उपयोग मुख्य रूप से सभी रीड ऑपरेशन के लिए किया जा सकता है।
प्रतिकृति सेट कैसे बनाएं? MongoDB rs.initiate() का उपयोग करके प्रथम सदस्य को जोड़ना
जैसा कि पिछले अनुभाग में बताया गया है, प्रतिकृति को सक्षम करने के लिए, हमें सबसे पहले एक प्रतिकृति सेट बनाना होगा MongoDB उदाहरणों।
मान लीजिए कि हमारे उदाहरण के लिए, हमारे पास ServerA, ServerB और ServerC नामक 3 सर्वर हैं। इस कॉन्फ़िगरेशन में, ServerA हमारा प्राथमिक सर्वर होगा और ServerB और ServerC हमारे द्वितीयक सर्वर होंगे। नीचे दिया गया स्क्रीनशॉट इस पर बेहतर विचार देगा।
नीचे वे चरण दिए गए हैं जिनका पालन करके आप अपना खाता बना सकते हैं: MongoDB प्रतिकृति सेट के साथ-साथ सेट में प्रथम सदस्य को जोड़ना।
चरण 1) सुनिश्चित करें कि सभी mongod.exe इंस्टेंस जोड़े गए हैं
सुनिश्चित करें कि सभी mongod.exe इंस्टेंस जो प्रतिकृति सेट में जोड़े जाएंगे, अलग-अलग सर्वर पर स्थापित हैं। यह सुनिश्चित करने के लिए है कि भले ही एक सर्वर बंद हो जाए, अन्य उपलब्ध रहेंगे और इसलिए अन्य इंस्टेंस उपलब्ध रहेंगे। MongoDB उपलब्ध होगी।
चरण 2) सभी mongo.exe इंस्टैंस एक दूसरे से कनेक्ट होते हैं
सुनिश्चित करें कि सभी mongo.exe इंस्टेंस एक दूसरे से कनेक्ट हो सकें। ServerA से, नीचे दिए गए 2 कमांड जारी करें।
mongo –host ServerB –port 27017
mongo –host ServerC –port 27017
इसी प्रकार, शेष सर्वरों से भी यही कार्य करें।
चरण 3) पहला mongod.exe इंस्टैंस प्रारंभ करें
replSet विकल्प के साथ पहला mongod.exe इंस्टेंस शुरू करें। यह विकल्प उन सभी सर्वरों के लिए एक समूह प्रदान करता है जो इस प्रतिकृति सेट का हिस्सा होंगे।
mongo –replSet "Replica1"
जहाँ “Replica1” आपके प्रतिकृति सेट का नाम है। आप अपने प्रतिकृति सेट नाम के लिए कोई भी सार्थक नाम चुन सकते हैं।
चरण 4) पहला सर्वर प्रतिकृति सेट में जोड़ा गया है
अब चूंकि पहला सर्वर प्रतिकृति सेट में जोड़ दिया गया है, अगला चरण निम्नलिखित कमांड rs.initiate () जारी करके प्रतिकृति सेट को आरंभ करना है।
चरण 5) प्रतिकृति सेट सत्यापित करें
प्रतिकृति सेट को सही ढंग से स्थापित करने के लिए rs.conf() कमांड जारी करके प्रतिकृति सेट को सत्यापित करें।
प्रतिकृति सेट: rs.add() का उपयोग करके द्वितीयक जोड़ना
सेकेंडरी सर्वर को केवल rs.add कमांड का उपयोग करके प्रतिकृति सेट में जोड़ा जा सकता है। यह कमांड सेकेंडरी सर्वर का नाम लेता है और सर्वर को प्रतिकृति सेट में जोड़ता है।
चरण 1) मान लीजिए यदि आपके पास ServerA, ServerB, और ServerC हैं, जो आपके प्रतिकृति सेट का हिस्सा होने चाहिए और ServerA को प्रतिकृति सेट में प्राथमिक सर्वर के रूप में परिभाषित किया गया है।
ServerB और ServerC को प्रतिकृति सेट में जोड़ने के लिए आदेश जारी करें
rs.add("ServerB") rs.add("ServerC")
प्रतिकृति सेट: rs.remove() का उपयोग करके पुनः कॉन्फ़िगर करना या हटाना
कॉन्फ़िगरेशन सेट से किसी सर्वर को हटाने के लिए, हमें “rs.remove” कमांड का उपयोग करना होगा
चरण 1) सबसे पहले उस इंस्टेंस को शटडाउन करें जिसे आप हटाना चाहते हैं। ऐसा करने के लिए आप मोंगो शेल से db.shutdownserver कमांड जारी कर सकते हैं।
चरण 2) प्राथमिक सर्वर से कनेक्ट करें
चरण 3) रेप्लिका सेट से आवश्यक सर्वर को हटाने के लिए rs.remove कमांड का उपयोग करें। तो मान लीजिए कि आपके पास ServerA, ServerB और ServerC वाला रेप्लिका सेट है, और आप रेप्लिका सेट से ServerC को हटाना चाहते हैं, तो कमांड जारी करें
rs.remove("ServerC")
प्रतिकृति सेट का समस्या निवारण
निम्नलिखित चरण वही तरीके हैं जिनसे प्रतिकृति सेटों के उपयोग में आने वाली समस्याओं का निवारण किया जा सकता है।
- सुनिश्चित करें कि सभी mongo.exe इंस्टेंस एक दूसरे से कनेक्ट हो सकें। मान लीजिए कि आपके पास ServerA, ServerB और ServerC नामक 3 सर्वर हैं। सर्वर A से, नीचे दिए गए 2 कमांड जारी करें
mongo –host ServerB –port 27017 mongo –host ServerC –port 27017
- rs.status कमांड चलाएँ। यह कमांड रेप्लिका सेट की स्थिति बताता है। डिफ़ॉल्ट रूप से, प्रत्येक सदस्य एक दूसरे को "हार्टबीट" संदेश नामक संदेश भेजेगा जो केवल यह दर्शाता है कि सर्वर चालू है और काम कर रहा है। "स्थिति" कमांड इन संदेशों की स्थिति प्राप्त करता है और दिखाता है कि क्या रेप्लिका सेट में किसी भी सदस्य के साथ कोई समस्या है।
- ओपलॉग का आकार जांचें - ओपलॉग एक संग्रह है MongoDB जो कि उन लेखनों का इतिहास संग्रहीत करता है जो कि किये गये थे MongoDB डेटाबेस। MongoDB फिर इस Oplog का उपयोग प्रतिकृति सेट में अन्य सदस्यों को लिखे गए डेटा को दोहराने के लिए करता है। Oplog की जाँच करने के लिए, आवश्यक सदस्य इंस्टेंस से कनेक्ट करें और rs.printReplicationInfo कमांड चलाएँ। यह कमांड लॉग का आकार दिखाएगा और यह बताएगा कि लॉग फ़ाइल के पूर्ण होने से पहले यह कितने समय तक लेन-देन को अपने लॉग फ़ाइल में रख सकता है।
सारांश
प्रतिकृति MongoDB यह सुनिश्चित करने की प्रक्रिया को संदर्भित करता है कि एक ही डेटा एक से अधिक मोंगो डीबी सर्वर पर उपलब्ध है। कई सदस्य (MongoDB आवश्यकताओं के आधार पर प्रतिकृति सेट में इंस्टैंस जोड़े जा सकते हैं।