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

Agrega un árbitro a un set de réplicas autogestionado

En algunas circunstancias (como si tienes un primario y un secundario, pero las restricciones de costos impiden agregar otro secundario), puedes elegir agregar un mongod instancia a un set de réplicas como árbitro para votar en la elección.

Los árbitros son instancias mongod que forman parte de un set de réplicas pero no contienen datos (es decir, no proporcionan redundancia de datos). Sin embargo, pueden participar en elecciones.

Los árbitros tienen requisitos mínimos de recursos y no requieren hardware dedicado. Puedes desplegar un árbitro en un servidor de aplicaciones o en un host de supervisión.

Importante

No ejecutar un árbitro en sistemas que también sean los hosts de los miembros primarios o secundarios del set de réplicas.

Advertencia

No implemente más de un árbitro por conjunto de réplicas.

Consulte también: Inquietudes sobre varios árbitros

Si está utilizando una arquitectura de tres nodos de primario-secundario-árbitro (PSA), considere lo siguiente:

  • El nivel de confirmación de escritura "majority" puede causar problemas de rendimiento si un secundario no está disponible o está retrasado. Para obtener consejos sobre cómo mitigar estos problemas, consulta Mitigar problemas de rendimiento con un set de réplicas de PSA autogestionado.

  • Si estás utilizando un "majority" global por defecto y el nivel de confirmación de escritura es menor que el tamaño de la mayoría, tus consultas pueden devolver datos obsoletos (no completamente replicados).

Un árbitro no almacena datos, pero hasta que el proceso mongod del árbitro se añada al set de réplicas, el árbitro actuará como cualquier otro proceso de mongod y se iniciará con un conjunto de archivos de datos y con un journalde tamaño completo.

Advertencia

Antes de enlazar a un host que no sea localhost (por ejemplo, Públicamente accesible) dirección IP, asegúrese de que ha protegido su clúster de accesos no autorizados. Para obtener una lista completa de recomendaciones de seguridad, consulta la Lista de verificación de seguridad para implementaciones autogestionadas. Como mínimo, considera activar la autenticación y fortalecer 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.

Advertencia

No implemente más de un árbitro por conjunto de réplicas.

Consulte también: Inquietudes sobre varios árbitros

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. Crea un directorio de datos (por ejemplo, storage.dbPath) para el árbitro. La instancia mongod utiliza el directorio para los datos de configuración. El directorio no contendrá el conjunto de datos. Por ejemplo, crea el directorio /var/lib/mongodb/arb:

    mkdir /var/lib/mongodb/arb
  2. Inicia el árbitro, especificando el directorio de datos y el nombre del set de réplicas al que se unirá. Lo siguiente inicia un árbitro utilizando el /var/lib/mongodb/arb como dbPath y rs para el nombre del set de réplicas:

    Advertencia

    Antes de enlazar a un host que no sea localhost (por ejemplo, Públicamente accesible) dirección IP, asegúrese de que ha protegido su clúster de accesos no autorizados. Para obtener una lista completa de recomendaciones de seguridad, consulta la Lista de verificación de seguridad para implementaciones autogestionadas. Como mínimo, considera activar la autenticación y fortalecer la infraestructura de red.

    mongod --port 27017 --dbpath /var/lib/mongodb/arb --replSet rs --bind_ip localhost,<hostname(s)|ip address(es)>
  3. Conéctese al primario y añada el árbitro al conjunto de réplicas. Utilice el método rs.addArb(), como en el siguiente ejemplo que asume que m1.example.net es el nombre del host asociado con la dirección IP especificada para el árbitro:

    rs.addArb("m1.example.net:27017")

    Esta operación agrega el árbitro que se ejecuta en el puerto 27017 en el host m1.example.net.

Volver

Agregar nodos

En esta página