sql >> Database >  >> NoSQL >> MongoDB

Een MongoDB-replicaset converteren naar een stand-alone server

Verwijder alle secundaire hosts uit de replicaset (rs.remove('host:port')), start de mongo-deamon opnieuw zonder parameter replSet (bewerken /etc/mongo.conf) en de secundaire hosts starten opnieuw in de zelfstandige modus.

De primaire host is lastig, omdat je hem niet uit de replicaset kunt verwijderen met rs.remove. Zodra je alleen de primaire node in de replicaset hebt, moet je mongo-shell afsluiten en mongo stoppen. Vervolgens bewerk je de /etc/mongo.conf en verwijder je de parameter replSet en start je mongo opnieuw. Zodra je mongo start, ben je al in de zelfstandige modus, maar de mongo-shell zal een bericht oproepen als:

2015-07-31T12:02:51.112+0100 [initandlisten] ** WAARSCHUWING:mongod is gestart zonder --replSet, maar er zijn nog 1 documenten aanwezig in local.system.replset

om de waarschuwing te verwijderen, kunt u 2 procedures uitvoeren:1) De lokale db laten vallen en mongo opnieuw starten:

use local
db.dropDatabase();

/etc/init.d/mongod restart

2) Of als je niet zo radicaal wilt zijn, kun je het volgende doen:

use local
db.system.replset.find()

en er verschijnt een bericht als:

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

dan wis je het met:

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

en het zal waarschijnlijk vragen:

WriteResult({ "nRemoved" : 1 })

Nu kun je de mongo opnieuw opstarten en de waarschuwing zou weg moeten zijn, en je zult je mongo in stand-alone modus hebben zonder waarschuwingen



  1. Redis hash paginering

  2. Mongoose-aggregatiequery mislukt in Jest/Mockgoose-test, werkt elders

  3. MongoDB Java Driver databaseverbinding pooling met Tomcat

  4. $uitgeschakeld is leeg. U moet een veld als volgt specificeren:{$unset:{<field>:...}}