Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /

Remueve nodos de un set de réplicas autogestionado

Para remover a un nodo de un set de réplicas, utiliza uno de los siguientes procedimientos.

  1. Apaga la instancia mongod para el nodo que deseas remover. Para apagar la instancia, conectar usando mongosh y a usar el método db.shutdownServer().

  2. Conéctese al primario actual del set de réplicas. Para determinar el primario actual, utiliza db.hello() mientras estés conectado a cualquier nodo del set de réplicas.

  3. Usa rs.remove() en cualquiera de los siguientes formularios para remover al miembro:

    rs.remove("mongod3.example.net:27017")
    rs.remove("mongod3.example.net")

    MongoDB puede desconectar el shell brevemente si el set de réplicas necesita elegir un nuevo primario. La shell se vuelve a conectar automáticamente en esos casos. El shell puede mostrar el error DBClientCursor::init call() failed aunque el comando se ejecute correctamente.

Puedes remover un nodo volviendo a configurar el set de réplicas utilizando un documento de configuración de réplicas donde ese nodo se remueva del arreglo members.

rs.reconfig() permite agregar o remover no más de 1 voting nodo a la vez. Para remover varios miembros con derecho a voto del set de réplicas, realizada una serie de operaciones de rs.reconfig() para remover un nodo a la vez. Consulta La reconfiguración puede agregar o remover a no más de un nodo votante a la vez para obtener más información.

  1. Apague la instancia de mongod para el nodo que desea remover. Para apagar la instancia, conéctate utilizando mongosh y utiliza el método db.shutdownServer().

  2. Conéctese al primario actual del set de réplicas. Para determinar el primario actual, utiliza db.hello() mientras estés conectado a cualquier nodo del set de réplicas.

  3. Emite el método rs.conf() para ver el documento de configuración actual y determinar la posición en el arreglo members del nodo a remover:

    Ejemplo

    mongod_C.example.net se encuentra en la posición 2 del 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"
    }
    ]
    }
  4. Asignar el documento de configuración actual a la variable cfg:

    cfg = rs.conf()
  5. Modifica el objeto cfg para remover el nodo.

    Ejemplo

    Para remover mongod_C.example.net:27017, utiliza la siguiente operación JavaScript:

    cfg.members.splice(2,1)
  6. Sobrescribe el documento de configuración del set de réplicas con la nueva configuración emitiendo lo siguiente:

    rs.reconfig(cfg)
  7. Para confirmar la nueva configuración, emite rs.conf().

    Para el ejemplo anterior, la salida sería:

    {
    "_id" : "rs",
    "version" : 8,
    "members" : [
    {
    "_id" : 0,
    "host" : "mongod_A.example.net:27017"
    },
    {
    "_id" : 1,
    "host" : "mongod_B.example.net:27017"
    }
    ]
    }

Volver

Agregar miembros a un set de réplicas

En esta página