Para eliminar a un miembro de una conjunto de réplicas utilice cualquiera de los siguientes procedimientos.
Eliminar un miembro usando rs.remove()
Cierre la instancia del miembro que desea eliminar. Para cerrar la instancia, conéctese
mongodmediantemongoshy utilice eldb.shutdownServer()método.Conéctese al servidor principal actual del conjunto de réplicas. Para determinarlo, utilice
db.hello()mientras esté conectado a cualquier miembro del conjunto de réplicas.Utilice en cualquiera de las siguientes formas para eliminar el
rs.remove()miembro:rs.remove("mongod3.example.net:27017") rs.remove("mongod3.example.net") MongoDB puede desconectar el shell brevemente si el conjunto de réplicas necesita elegir una nueva réplica principal. En tales casos, el shell se reconecta automáticamente. El shell puede mostrar un error
DBClientCursor::init call() failedincluso si el comando se ejecuta correctamente.
Eliminar un miembro usando rs.reconfig()
Puede eliminar un miembro reconfigurando el conjunto de réplicas mediante un members documento de configuración de réplica donde ese miembro se elimina de la matriz.
rs.reconfig() permite añadir o eliminar un máximo 1 voting de miembros a la vez. Para eliminar varios miembros con derecho a voto del conjunto de réplicas, ejecute una serie de rs.reconfig() operaciones para eliminar un miembro a la vez.Consulte "Reconfiguración: No se puede añadir ni eliminar más de un miembro con derecho a voto a la vez" para obtener más información.
Procedimiento
Cierre la instancia del miembro que desea
mongodeliminar. Para cerrar la instancia, conéctese mediante ymongoshdb.shutdownServer()use el método.Conéctese al servidor principal actual del conjunto de réplicas. Para determinarlo, utilice
db.hello()mientras esté conectado a cualquier miembro del conjunto de réplicas.Emite el método
rs.conf()para ver el documento de configuración actual y determinar la posición en el arreglomembersdel nodo a remover:Ejemplo
mongod_C.example.netestá en la posición2del siguiente archivo de configuración:{ "_id" : "rs", "version" : 7, "members" : [ { "_id" : 0, "host" : "mongod_A.example.net:27017" }, { "_id" : 1, "host" : "mongod_B.example.net:27017" }, { "_id" : 2, "host" : "mongod_C.example.net:27017" } ] } Asignar el documento de configuración actual a la variable
cfg:cfg = rs.conf() Modifique el objeto
cfgpara eliminar el miembro.Ejemplo
Para eliminar
mongod_C.example.net:27017utilice la siguiente operación de JavaScript:cfg.members.splice(2,1) Sobrescriba el documento de configuración del conjunto de réplicas con la nueva configuración emitiendo lo siguiente:
rs.reconfig(cfg) Para confirmar la nueva configuración,
rs.conf()emita.Para el ejemplo anterior, el resultado sería:
{ "_id" : "rs", "version" : 8, "members" : [ { "_id" : 0, "host" : "mongod_A.example.net:27017" }, { "_id" : 1, "host" : "mongod_B.example.net:27017" } ] }