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
/ /

Agrega miembros a un set de réplicas autogestionado

Este tutorial explica cómo agregar un miembro adicional a una cuenta existente. set de réplicas. Para obtener información básica sobre los patrones de implementación de replicación, consulta el documento Arquitecturas de implementación de set de réplicas.

Un conjunto de réplicas puede tener un máximo de siete miembros con derecho a voto. Para añadir un miembro a un conjunto de réplicas que ya tiene siete miembros con derecho a voto, debe añadirlo como miembro sin derecho a voto o eliminar un voto de un existing member.

En implementaciones de producción, puedes configurar un script de inicio para gestionar los procesos de los nodos.

Puedes utilizar estos procedimientos para agregar nuevos nodos a un set de réplicas existente.

Advertencia

Cada nodo de set de réplicas debe pertenecer a un único set de réplicas. Los nodos de un set de réplicas no pueden pertenecer a más de un set de réplicas.

Puede utilizar estos procedimientos para volver a agregar un nodo que fue eliminado.

Si los datos del nodo eliminado son relativamente recientes, el nodo se recupera y alcanza al resto del conjunto de réplicas.

Importante

Evite crear nuevas colecciones replicadas en el nodo eliminado mientras esté en modo autónomo. Si el nodo autónomo se reincorpora al set de réplicas, las operaciones posteriores en la nueva colección producen un error.

Si tienes una copia de seguridad o un snapshot de un nodo existente, puedes mover los archivos de datos (por ejemplo, el directorio dbPath) a un nuevo sistema y utilizarlos para iniciar rápidamente un nuevo nodo. Los archivos deben ser:

  • Una copia válida de los archivos de datos de un nodo del mismo set de réplicas. Consulta el documento Respalda una implementación autogestionada con snapshots del sistema de archivos para obtener más información.

    Importante

    Utilice siempre instantáneas del sistema de archivos para crear una copia de un miembro del conjunto de réplicas existente. No utilice mongodump y para iniciar un nuevo miembro del conjunto de mongorestore réplicas.

  • Más reciente que la operación más antigua en el oplog del primario. El nuevo nodo debe poder volverse actual aplicando operaciones del registro oplog del primario.

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

A partir de MongDB 5.0, los nodos DNS de horizonte dividido que solo están configurados con una dirección IP fallan en la validación de inicio y reportan un error. Consulta disableSplitHorizonIPCheck.

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.

  1. Un set de réplicas activo.

  2. Un nuevo sistema de MongoDB capaz de admitir tu conjunto de datos, accesible por el set de réplicas activo a través de la red.

De lo contrario, se debe utilizar el tutorial de instalación de MongoDB y los tutoriales Implementar un set de réplicas autogestionado.

Antes de agregar un nuevo nodo a un set de réplicas existente, prepara el directorio de datos del nuevo nodo usando una de las siguientes estrategias:

  • Asegúrese de que el directorio de datos del nuevo miembro no contenga datos. El nuevo miembro copiará los datos de un miembro existente.

    Si un nuevo nodo está en un estado recuperando, debe salir y convertirse en secundario antes de que MongoDB pueda copiar todos los datos como parte del proceso de replicación. Este proceso lleva tiempo, pero no requiere la intervención de un administrador.

  • Copiar manualmente el directorio de datos de un miembro existente. El nuevo miembro se convierte en un miembro secundario y se actualizará al estado actual del conjunto de réplicas. Copiar los datos puede acortar el tiempo necesario para que el nuevo miembro se actualice.

    Asegúrese de poder copiar el directorio de datos al nuevo miembro e iniciar la replicación dentro del plazo permitido por el registro de operaciones. De lo contrario, la nueva instancia deberá realizar una sincronización inicial, que resincroniza completamente los datos, como se describe en Resincronizar un miembro de un conjunto de réplicas autoadministradas.

    Utiliza rs.printReplicationInfo() para verificar el estado actual de los miembros del set de réplicas con respecto al oplog.

Para obtener información de fondo sobre los patrones de implementación de la replicación, consulte el documento Arquitecturas de implementación para sets de réplicas.

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.

  1. Inicie la nueva instancia. Especifique el directorio de datos y el nombre del conjunto de réplicas. El siguiente ejemplo especifica mongod el /srv/mongodb/db0 directorio de datos y el rs0 conjunto de réplicas:

    mongod --dbpath /srv/mongodb/db0 --replSet rs0 --bind_ip localhost,<hostname(s)|ip address(es)>

    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.

    Para obtener más información sobre las opciones de configuración, consulte la página del manual mongod.

    Nota

    Opcional

    Puedes especificar el directorio de datos, el nombre del set de réplicas y la vinculación de IP en el archivo de configuración de mongod.conf, e iniciar el mongod con el siguiente comando:

    mongod --config /etc/mongod.conf
  2. Conectarse al conjunto de réplicas principal.

    Solo puede agregar miembros mientras esté conectado al conjunto de réplicas principal. Si desconoce cuál es el miembro principal, inicie sesión en cualquier miembro del conjunto de réplicas y ejecute el db.hello() comando.

  3. Usa rs.add() para añadir el nuevo nodo al set de réplicas. Pase el member configuration document al método. Por ejemplo, para añadir un nodo en el host mongodb3.example.net, ejecuta el siguiente comando:

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

    Advertencia

    Antes de MongoDB 5.0, un nuevo secundario añadido aún cuenta como nodo con derecho a voto incluso aunque no pueda servir lecturas ni convertirse en primario hasta que sus datos sean coherentes. Si tienes una versión de MongoDB anterior a la 5.0 y agregas un secundario con su votes y la configuración de priority mayor a cero, esto puede llevar a una situación en la que la mayoría de los nodos con derecho a voto estén en linea pero no se pueda elegir un primario. Para evitar estas situaciones, considera añadir el nuevo arrendatario secundario, inicialmente, con priority :0 y votes :0. Después, ejecuta rs.status() para asegurar que el nodo haya pasado al estado SECONDARY. Por último, usa rs.reconfig() para actualizar su prioridad y votos.

Volver

Convertir un mongod autónomo en un Set de réplicas

En esta página