2013-03-04 7 views
9

मैं उबंटू का उपयोग करता हूं।mongodb में प्रतिकृति सेट को कैसे बंद करें?

$ mongod --replSet setname --logpath "1.log" --dbpath /data/rs1 --port 27017 --smallfiles --fork 
$ mongod --replSet setname --logpath "2.log" --dbpath /data/rs2 --port 27018 --smallfiles --fork 
$ mongod --replSet setname --logpath "3.log" --dbpath /data/rs3 --port 27019 --smallfiles --fork 

कैसे मैं उन्हें शट डाउन कर सकते हैं:

मैं तीन mongod प्रतिकृति निम्नानुसार सेट शुरू?

उत्तर

14

यूनिक्स शेल से निम्न कमांड चलाएँ:

mongo --port 27017 --eval 'db.adminCommand("shutdown")' 
mongo --port 27018 --eval 'db.adminCommand("shutdown")' 
mongo --port 27019 --eval 'db.adminCommand("shutdown")' 
1

ps -ef | grep mongod का उपयोग करें, पोर्ट नंबर 27017-2701 9 के साथ मोंगोड के लिए पिड्स प्राप्त करें, और उस पिड्स के साथ प्रक्रियाओं को मार दें।

+0

'ps -ef' के सभी सदस्यों को मारने के लिए पिड का उपयोग बहुत अधिक जानकारी प्रिंट करना प्रतीत होता है। इसके बजाय 'ps -e' के बारे में कैसे? – Huo

+0

मुझे लगता है कि एक और तरीका 'killall mongod' भी अच्छा हो सकता है। – Huo

0
mongod --port 27017 --shutdown 
mongod --port 27018 --shutdown 
mongod --port 27019 --shutdown 

वैसे, अगर वहाँ किसी भी संभावना को आप भविष्य में sharding का उपयोग करेगा है, यह सबसे अच्छा होगा बंदरगाहों 27018 और 27019 से बचने के लिए वे एक शार्ड क्लस्टर के कुछ घटकों के लिए डिफ़ॉल्ट बंदरगाह हैं।

9

मुझे नहीं लगता कि स्वीकृत उत्तर सही है। कुछ googling के बाद, मुझे mongodb-user समूह में this मिला सबसे अच्छा जवाब होने के लिए।

बंद करने के लिए:
- भागो db.runCommand ({replSetFreeze: numOfSeconds}) को द्वितीयक पर प्राथमिक
को बढ़ावा देने से रोका जा सके - भागो rs.stepDown (सेकंड) प्राथमिक पर; यह सुनिश्चित करने के लिए जांच करेगा कि कम से कम एक सेकेंडरी को चरणबद्ध होने से पहले पर पर्याप्त रूप से पकड़ा गया है। एक उचित लंबे प्रतीक्षा समय चुनें। एक लंबा समय समाप्ति के साथ दोनों द्वितीयक (जैसे कि, 1-2 मिनट)
पर भागो replSetFreeze - -
लाओ: -
एक बार सब कुछ एक उच्च माध्यमिक है, सब कुछ

पर db.shutdownServer()

अप शुरू करने के लिए प्राथमिक
- अगर माध्यमिक किसी भी तरह प्राथमिक

, बस नीचे बंद हो जाता है पर्याप्त नहीं है का उपयोग करें stepdown ठीक करने के लिए, आप प्राथमिक करने के लिए बढ़ावा देने से माध्यमिक नोड्स को रोकने के लिए किया है।

use admin 
db.shutdownServer() 

2] आदेश नीचे द्वितीयक सर्वर और प्रकार पर लिनक्स shell- पर जाएँ:

3

1) आदेश नीचे का उपयोग करके माध्यमिक सर्वर

2) द्वितीय सर्वर बंद करो पर खोल मोंगो पर लॉगिन करें:

sudo service mongod stop 

अधिक जानकारी के लिए, कृपया नीचे दिए गए लिंक की जाँच करें:

http://www.learnit.net.in/2016/03/stopping-and-starting-mongodb.html

0

विंडोज पर MongoDB 3.2 में, मैं निम्न क्रम का उपयोग कर रहा:

mongo mongodb://localhost:27019/admin --eval "db.shutdownServer({timeoutSecs: 10})" 
mongo mongodb://localhost:27018/admin --eval "db.shutdownServer({timeoutSecs: 10})" 
mongo mongodb://localhost:27017/admin --eval "db.shutdownServer({timeoutSecs: 10})" 
0

बंद द्वितीयक पहले पुनरावर्तन को रोकने के लिए।

mongo admin --port <port> --eval "<db.auth if needed>;db.shutdownServer()" 

स्रोत: MongoDB विश्वविद्यालय पाठ्यक्रम

0

यह एक पुरानी सवाल है लेकिन मैं अभी भी लगता है कि मैं इस उत्तर देना चाहिए।

भागो यूनिक्स खोल

ps -ef में निम्न आदेश | ग्रेप मोंगो

यह आपको पीआईडी ​​के (प्रक्रिया आईडी) की एक सूची देना होगा बंदरगाह 27017,27018 और 27019.You कर सकते हैं करने के लिए इसी प्रतिकृतिसेट

संबंधित मुद्दे