Definición
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.
ParameterTipoDescripciónhoststring 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
membersmatriz. Debe especificar elhostcampo 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,
membersconsulte.Si es una cadena, especifique el nombre de host y, opcionalmente, el número de puerto para el nuevo miembro.
arbiterOnlybooleano
Opcional. Se aplica solo si el valor
<host>es una cadena. Si estrue, el host añadido es un árbitro.rs.add()proporciona un contenedor para algunas de las funciones delreplSetReconfigcomando de base de datos y el correspondientemongoshrs.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.
Compatibilidad
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.
Asociación de IP
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.
Advertencia
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.
Comportamiento
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.
Ejemplo
Agregar un secundario a un nuevo conjunto de réplicas
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" )
Agregar un Secundario a un Set de Réplicas Existente
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.
Agregar un miembro prioritario 0 a un conjunto de réplicas
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
Añadir un árbitro a un set de réplicas
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: