MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

So konvertieren Sie ein MongoDB-Replikatset in einen eigenständigen Server

Entfernen Sie alle sekundären Hosts aus dem Replikatsatz (rs.remove('host:port')), starten Sie den Mongo-Daemon ohne replSet-Parameter neu (Bearbeiten von /etc/mongo.conf) und die sekundären Hosts starten wieder im Standalone-Modus.

Der primäre Host ist schwierig, da Sie ihn nicht mit rs.remove aus dem Replikatsatz entfernen können. Sobald Sie nur den primären Knoten im Replikatsatz haben, sollten Sie die Mongo-Shell beenden und Mongo stoppen. Dann bearbeiten Sie die /etc/mongo.conf und entfernen den replSet-Parameter und starten Mongo erneut. Sobald Sie Mongo starten, befinden Sie sich bereits im Standalone-Modus, aber die Mongo-Shell zeigt eine Meldung wie:

an

2015-07-31T12:02:51.112+0100 [initandlisten] ** WARNUNG:Mongod wurde ohne --replSet gestartet, dennoch sind 1 Dokumente in local.system.replset

vorhanden

Um die Warnung zu entfernen, können Sie zwei Verfahren ausführen:1) Löschen der lokalen Datenbank und Neustarten von Mongo:

use local
db.dropDatabase();

/etc/init.d/mongod restart

2) Oder wenn Sie nicht so radikal sein wollen, können Sie Folgendes tun:

use local
db.system.replset.find()

und es wird eine Nachricht angezeigt wie:

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

dann löschen Sie es mit:

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

und es wird wahrscheinlich auffordern:

WriteResult({ "nRemoved" : 1 })

Jetzt können Sie den Mongo neu starten und die Warnung sollte weg sein, und Sie werden Ihren Mongo ohne Warnungen im Standalone-Modus haben