Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
Click here >
Docs Menu
Docs Home
/ /
Implementar
/ / /

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. 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. 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. El shell se vuelve a conectar automáticamente en esos casos. El shell puede mostrar un 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

Añadir un árbitro

En esta página