Overview
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".
Máximo de miembros con derecho a voto
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.
Scripts de inicio
En las implementaciones de producción, puede configurar un script de inicio para administrar los procesos miembros.
Miembros existentes
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.
Restaurar antiguos miembros
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.
Archivos de datos
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:
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
mongodumpy para iniciar un nuevo miembro del conjunto demongorestoreréplicas.Más reciente que la operación más antigua del registro de operaciones del principal. El nuevo miembro debe poder actualizarse aplicando operaciones del registro de operaciones del principal.
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
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.
Requisitos
Un conjunto de réplicas activas.
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.
Procedimientos
Preparar el directorio de datos
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.
Agregar un miembro a un conjunto de réplicas existente
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.
Inicie la nueva instancia. Especifique el directorio de datos y el nombre del conjunto de réplicas. El siguiente ejemplo especifica
mongodel/srv/mongodb/db0directorio de datos y elrs0conjunto 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
mongodmanual.Nota
Opcional
Puede especificar el directorio de datos, el nombre del conjunto de réplicas y el enlace de IP en el
mongod.confarchivo de configuración e iniciar con el siguientemongodcomando:mongod --config /etc/mongod.conf 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.Use para agregar el nuevo miembro
rs.add()member configuration documental conjunto de réplicas. Pase al método. Por ejemplo, paramongodb3.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
votescon sus valores yprioritymayores 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 conpriority :0votes :0y. A continuación, ejecuters.status()para asegurarse de que el miembro haya pasado alSECONDARYestado. Finalmente, utilicers.reconfig()para actualizar su prioridad y votos.