sql >> Base de Datos >  >> NoSQL >> MongoDB

Cómo convertir un conjunto de réplicas de MongoDB en un servidor independiente

Elimine todos los hosts secundarios del conjunto de réplicas (rs.remove('host:port')), reinicie mongo deamon sin el parámetro replSet (editando /etc/mongo.conf) y los hosts secundarios comenzarán de nuevo en modo independiente.

El host principal es complicado, porque no puede eliminarlo del conjunto de réplicas con rs.remove. Una vez que solo tenga el nodo principal en el conjunto de réplicas, debe salir del shell de mongo y detener mongo. Luego edita /etc/mongo.conf y elimina el parámetro replSet e inicia mongo nuevamente. Una vez que inicia mongo, ya está en modo independiente, pero el shell de mongo mostrará un mensaje como:

2015-07-31T12:02:51.112+0100 [initandlisten] ** ADVERTENCIA:mongod comenzó sin --replSet pero 1 documento está presente en local.system.replset

para eliminar la advertencia, puede realizar 2 procedimientos:1) Soltar la base de datos local y reiniciar mongo:

use local
db.dropDatabase();

/etc/init.d/mongod restart

2) O si no quieres ser tan radical, puedes hacer:

use local
db.system.replset.find()

y aparecerá un mensaje como:

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

luego lo borrarás usando:

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

y probablemente le preguntará:

WriteResult({ "nRemoved" : 1 })

Ahora, puede reiniciar mongo y la advertencia debería desaparecer, y tendrá su mongo en modo independiente sin advertencias