Docs Menu
Docs Home
/ /

rs.add() (método mongosh)

rs.add(host, arbiterOnly)

Agrega un miembro a una Conjunto de réplicas. Para ejecutar el método, debe conectarse al servidor principal del conjunto de réplicas.

Parameter
Tipo
Descripción

host

string o documento

El nuevo miembro que se añadirá al conjunto de réplicas. Especifíquelo como una cadena o un documento de configuración:

  • Si se trata de un documento, especifique un documento de configuración de miembro del conjunto de réplicas, tal como se encuentra en la members matriz. Debe especificar el host campo en el documento de configuración de miembro.

    {
    _id: <int>,
    host: <string>, // required
    arbiterOnly: <boolean>,
    buildIndexes: <boolean>,
    hidden: <boolean>,
    priority: <number>,
    tags: <document>,
    secondaryDelaySecs: <int>,
    votes: <number>
    }

    Para obtener una descripción del campo de configuración,members consulte.

  • Si es una cadena, especifique el nombre de host y, opcionalmente, el número de puerto para el nuevo miembro.

arbiterOnly

booleano

Opcional. Se aplica solo si el valor <host> es una cadena. Si es true, el host añadido es un árbitro.

rs.add() proporciona un contenedor para algunas de las funciones del replSetReconfig comando de base de datos y el correspondiente mongosh rs.reconfig()asistente. Consulte el documento "Configuración del conjunto de réplicas autoadministradas" para obtener la documentación completa de todas las opciones de configuración del conjunto de réplicas.

Este método está disponible en implementaciones alojadas en los siguientes entornos:

  • MongoDB Enterprise: La versión basada en suscripción y autogestionada de MongoDB

  • MongoDB Community: La versión de MongoDB con código fuente disponible, de uso gratuito y autogestionada.

Advertencia

Antes de vincular la instancia a una dirección IP de acceso público, se debe asegurar el clúster contra accesos no autorizados. Para obtener una lista completa de recomendaciones de seguridad, se debe consultar Checklist de seguridad para implementaciones autogestionadas. Como mínimo, se debe considerar habilitar la autenticación y reforzar la infraestructura de red.

Los binarios de MongoDB, mongod y mongos, se enlazan a localhost por defecto. Si se establece el ajuste del archivo de configuración net.ipv6 o la opción de línea de comandos --ipv6 para el binario, el binario se vincula además a la dirección IPv6 de localhost.

Por defecto, mongod y mongos que están vinculados a localhost solo aceptan conexiones de clientes que se ejecutan en el mismo ordenador. Este comportamiento de vinculación incluye mongosh y otros nodos del set de réplicas o clúster. Los clientes remotos no pueden conectarse a binarios que están vinculados únicamente a localhost.

Para anular la vinculación por defecto y enlazar a otras direcciones IP, utiliza la configuración del archivo de configuración net.bindIp o la opción de línea de comandos --bind_ip para especificar una lista de nombres de host o direcciones IP.

Por ejemplo, la siguiente instancia de mongod se vincula tanto al localhost como al nombre de host My-Example-Associated-Hostname, que está asociado con la dirección IP 198.51.100.1:

mongod --bind_ip localhost,My-Example-Associated-Hostname

Para conectarse a esta instancia, los clientes remotos deben especificar el nombre de host o su dirección IP asociada 198.51.100.1:

mongosh --host My-Example-Associated-Hostname
mongosh --host 198.51.100.1

Importante

Para evitar actualizaciones de configuración debido a cambios en las direcciones IP, utilice nombres de host DNS en lugar de direcciones IP. Es particularmente importante usar un nombre de host DNS en lugar de una dirección IP al configurar miembros de set de réplicas o miembros de clústeres particionados.

Utiliza nombres de host en lugar de direcciones IP para configurar clústeres en un horizonte de red dividido. A partir de MongoDB 5.0, los nodos que solo están configurados con una dirección IP no pasan la validación de inicio y no se inician.

rs.add() En algunos casos, puede activar una elección para el principal, lo que desconectará el shell (por ejemplo, al añadir un nuevo miembro con mayor prioridad que el principal actual). En tales casos, mongosh puede mostrar un error incluso si la operación se realiza correctamente.

Advertencia

Antes de MongoDB,5.0 un miembro secundario recién añadido seguía contando como miembro con derecho a voto, aunque no pudiera realizar lecturas ni convertirse en miembro principal hasta que sus datos fueran consistentes. Si ejecuta una versión de MongoDB anterior a 5.0 y añade un miembro secundario votes con sus valores y priority mayores que cero, esto puede provocar que la mayoría de los miembros con derecho a voto estén conectados, pero no se pueda elegir ningún miembro principal. Para evitar estas situaciones, considere añadir el nuevo miembro secundario inicialmente con priority :0 votes :0y. A continuación, ejecute rs.status() para asegurarse de que el miembro haya pasado al SECONDARY estado. Finalmente, utilice rs.reconfig() para actualizar su prioridad y votos.

Para agregar un nuevo miembro secundario con configuraciones de prioridad y voto predeterminadas a un nuevo conjunto de réplicas, puede llamar al método rs.add() con:

  • Documento de configuración de miembros

    rs.add( { host: "mongodbd4.example.net:27017" } )
  • Nombre de host

    rs.add( "mongodbd4.example.net:27017" )

Agregue un nuevo miembro secundario con configuraciones de prioridad y voto predeterminadas a un conjunto de réplicas existente:

rs.add( { host: "mongodbd4.example.net:27017" } )

Advertencia

Antes de MongoDB,5.0 un miembro secundario recién añadido seguía contando como miembro con derecho a voto, aunque no pudiera realizar lecturas ni convertirse en miembro principal hasta que sus datos fueran consistentes. Si ejecuta una versión de MongoDB anterior a 5.0 y añade un miembro secundario votes con sus valores y priority mayores que cero, esto puede provocar que la mayoría de los miembros con derecho a voto estén conectados, pero no se pueda elegir ningún miembro principal. Para evitar estas situaciones, considere añadir el nuevo miembro secundario inicialmente con priority :0 votes :0y. A continuación, ejecute rs.status() para asegurarse de que el miembro haya pasado al SECONDARY estado. Finalmente, utilice rs.reconfig() para actualizar su prioridad y votos.

La siguiente operación agrega una instancia, que se ejecuta en el mongod host mongodb4.example.net y es accesible en el puerto 27017 predeterminado, como un 0 miembro secundario de prioridad:

rs.add( { host: "mongodbd4.example.net:27017", priority: 0 } )

Debe especificar el campo en el documento de configuración del members[n].host miembro.

Consulte para conocer las configuraciones de miembros del conjunto de réplicas disponibles.members

La siguiente operación agrega una instancia, que se ejecuta en el mongod host mongodb3.example.net y es accesible en el puerto predeterminado 27017 como árbitro:

  • Documento de configuración de miembros

    rs.add( { host: "mongodb3.example.net:27017", arbiterOnly: true } )
  • Nombre de host

    rs.add("mongodb3.example.net:27017", true)

Véase también:

Volver

db.updateRole

En esta página