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 un árbitro a un set de réplicas autogestionado

En algunas circunstancias (como tener un primario y uno secundario, pero las limitaciones de costos impiden agregar otro secundario), puedes optar por 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 que no almacenan datos (es decir, no proporcionan redundancia de datos). Sin embargo, pueden participar en las 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

Evita implementar más de un árbitro en un set de réplicas. Consulta Preocupaciones con múltiples árbitros.

Agregar un árbitro a un set de réplicas existente:

No necesitas cambiar el nivel de confirmación de escritura a nivel de clúster antes de iniciar un nuevo set de réplicas con un árbitro.

Tip

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 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 equipo. Este comportamiento de vinculación incluye mongosh y otros miembros de su conjunto de réplicas o clúster fragmentado. Los clientes remotos no pueden conectarse a archivos binarios vinculados únicamente al host local.

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.

Advertencia

Evita implementar más de un árbitro en un set de réplicas. Consulta Preocupaciones con múltiples árbitros.

Agregar un árbitro a un set de réplicas existente:

No necesitas cambiar el nivel de confirmación de escritura a nivel de clúster antes de iniciar un nuevo set de réplicas con un árbitro.

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

    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

Implementar un set de réplicas con redundancia geográfica

En esta página