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