Docs Menu
Docs Home
/ /
Implementar
/ / /

Agrega miembros a un set de réplicas autogestionado

Este tutorial explica cómo agregar un miembro adicional a una cuenta existente. Conjunto de réplicas. Para obtener información sobre los patrones de implementación de replicación, consulte el documento "Arquitecturas de implementación de conjuntos 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 las implementaciones de producción, puede configurar un script de inicio para administrar los procesos miembros.

Puede utilizar estos procedimientos para agregar nuevos miembros a un conjunto 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 se eliminó.

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 independiente. Si el nodo independiente se reincorpora al conjunto de réplicas, las operaciones posteriores en la nueva colección generarán un error.

Si tiene una copia de seguridad o una instantánea de un miembro existente, puede mover los archivos de datos (por ejemplo, el directorio) a un nuevo sistema y usarlos para iniciar rápidamente un nuevo miembro. Los archivos dbPath deben:

Advertencia

Antes de vincular una dirección IP que no sea local (por ejemplo, de acceso público), asegúrese de proteger su clúster contra accesos no autorizados. Para obtener una lista completa de recomendaciones de seguridad, consulte la Lista de verificación de seguridad para implementaciones autogestionadas. Como mínimo, considere 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.

  1. Un conjunto de réplicas activas.

  2. Un nuevo sistema MongoDB capaz de soportar su conjunto de datos, accesible mediante el conjunto de réplicas activo a través de la red.

De lo contrario, utilice el tutorial de instalación de MongoDB y los tutoriales Implementar un conjunto de réplicas autoadministradas.

Antes de agregar un nuevo miembro a un conjunto de réplicas existente, prepare el directorio de datos del nuevo miembro utilizando 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 el nuevo miembro se encuentra en estado de recuperación, debe salir y convertirse en secundario para que MongoDB pueda copiar todos los datos como parte del proceso de replicación. Este proceso lleva tiempo, pero no requiere la intervención del 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.

    Utilice para comprobar el estado actual de los miembros del conjunto de réplicas con respecto al registro de rs.printReplicationInfo() operaciones.

Para obtener información sobre los patrones de implementación de replicación, consulte el documento Arquitecturas de implementación de conjuntos 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 una dirección IP que no sea local (por ejemplo, de acceso público), asegúrese de proteger su clúster contra accesos no autorizados. Para obtener una lista completa de recomendaciones de seguridad, consulte la Lista de verificación de seguridad para implementaciones autogestionadas. Como mínimo, considere 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 mongod manual.

    Nota

    Opcional

    Puede especificar el directorio de datos, el nombre del conjunto de réplicas y el enlace de IP en el mongod.conf archivo de configuración e iniciar con el siguiente mongod 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. Use para agregar el nuevo miembro rs.add() member configuration document al conjunto de réplicas. Pase al método. Por ejemplo, para mongodb3.example.netagregar un miembro en el host, ejecute el siguiente comando:

    rs.add( { host: "mongodb3.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.

Volver

Convertir en conjunto de réplicas

En esta página