2013-03-04 21 views
9

Ubuntu kullanıyorum.Çoğaltma mongodb'de nasıl kapatılır?

$ 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 

Bunları nasıl kapatabilir:

ben şöyle üç mongod çoğaltma kümesi başlar?

cevap

14

Unix kabuğundan aşağıdaki komutları çalıştırın: Gelecekte Sharding kullanacak olasılığı var ise

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'u kullanın, 27017-27019 numaralı bağlantı noktasıyla mongod için veri tabanları alın ve buradaki pids ile işlemleri durdurun.

+0

'ps -ef'nin tüm üyelerini öldürmek için kullanmak çok fazla bilgi yazdırıyor gibi görünüyor. Bunun yerine ps -e yerine ne dersin? – Huo

+0

Başka bir şekilde anladım 'killall mongod' da iyi olabilir. – Huo

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

arada, bu bağlantı noktalarını 27018 ve 27019 kaçınmak için en iyi olurdu Bunlar, bir shard kümesinin bazı bileşenleri için varsayılan portlardır.

9

Kabul edilen yanıtın doğru olduğunu düşünmüyorum. Bazı kullanıcılardan sonra, mongodb kullanıcı grubunda this'u en iyi cevap olarak buldum. kapatma için

:
- Çalışma db.runCommand ({replSetFreeze: numOfSeconds}) için sekonder parça birincil
için teşvik engellemek - Birincil çalıştırın rs.stepDown (saniye); numaralı telefonun kontrol edilmesinden emin olmak için, kontrolörlerden en az birinin, numaralı telefona adım atmadan önce yeterince takıldığını kontrol edecek. Makul bir bekleme süresi seçin.
- her şey ikincil olduğunda, her şey

tarihinde db.shutdownServer()

başlatmak için:
- Run replSetFreeze uzun zaman aşımı ile her iki ikincilleri (diyelim ki, 1-2 dakika)
üzerinde - getirin birincil
- ikincil nasılsa

Basitçe kapatılıyor birincil hale yeterli değilse Kullanım Stepdown birincil için teşvik ikincil düğümleri önlemek zorundayız düzeltmek için.

use admin 
db.shutdownServer() 

2] komutu altında ikincil sunucular ve türüne Linux shell- Git:

0

Windows üzerinde MongoDB 3.2, ben şu diziyi kullanıyorum:

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

kapatma ikinciller ilk rollbacks önlemek için.

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

kaynak: mongodb üniversite ders

0

Bu eski bir sorudur ama hala bu cevap gerektiğini düşünüyorum.

çalıştırın unix shell

ps -ef aşağıdaki komutu | grep Mongo'da portu 27017,27018 ve 27019.You can tekabül

Bu PID en (süreç kimlikleri) bir listesini verecekti pid'leri çoğaltmayı

İlgili konular