MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Come convertire un set di repliche MongoDB in un server autonomo

Rimuovere tutti gli host secondari dal set di repliche (rs.remove('host:port')), riavviare mongo deamon senza il parametro replSet (modificando /etc/mongo.conf) e gli host secondari si avviano nuovamente in modalità standalone.

L'host primario è complicato, perché non puoi rimuoverlo dal set di repliche con rs.remove. Una volta che hai solo il nodo primario nel set di repliche, dovresti uscire da mongo shell e interrompere mongo. Quindi modifichi /etc/mongo.conf e rimuovi il parametro replSet e riavvii mongo. Una volta avviato mongo sei già in modalità standalone, ma la shell mongo mostrerà un messaggio del tipo:

2015-07-31T12:02:51.112+0100 [initandlisten] ** ATTENZIONE:mongod è iniziato senza --replSet ma 1 documenti sono presenti in local.system.replset

per rimuovere l'avviso puoi eseguire 2 procedure:1) Eliminare il db locale e riavviare mongo:

use local
db.dropDatabase();

/etc/init.d/mongod restart

2)Oppure se non vuoi essere così radicale, puoi farlo:

use local
db.system.replset.find()

e ti verrà chiesto un messaggio come:

{ "_id" : "replicaSetName", "version" : 1, "members" : [ { "_id" : 0, "host" : "hostprimary:mongoport" } ] }

quindi lo cancellerai usando:

db.system.replset.remove({ "_id" : "replicaSetName", "version" : 1, "members" : [ { "_id" : 0, "host" : "hostprimary:mongoport" } ] })

e probabilmente chiederà:

WriteResult({ "nRemoved" : 1 })

Ora puoi riavviare il mongo e l'avviso dovrebbe essere scomparso e avrai il tuo mongo in modalità standalone senza avvisi