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

Evite que un secundario autogestionado se convierta en primario

En un set de réplicas, por defecto todos miembros secundarios son elegibles para convertirse en primarios a través del proceso de elección. Puede usar el priority afectar el resultado de estas elecciones haciendo que algunos nodos tengan más probabilidades de ser primarios y otros nodos menos probabilidades o no puedan ser primarios.

Las secundarias que no pueden convertirse en primarias tampoco pueden desencadenar elecciones. En todos los demás aspectos, estos valores secundarios son idénticos a los demás valores secundarios.

Para evitar que un miembro secundario se convierta en un primario en un failover, asigna al secundario una prioridad de 0, como se describe aquí. Para una descripción detallada de los miembros únicamente secundarios y sus propósitos, consulta Miembros de set de réplicas de prioridad 0.

Al actualizar el objeto de configuración del set de réplicas, accede a los miembros del set de réplicas en el arreglo members con el índice del arreglo. El índice del arreglo comienza con 0. No confunda este valor de índice con el valor del campo members[n]._id en cada documento de la arreglo members.

Nota

MongoDB no permite que la primaria actual tenga prioridad de 0. Para evitar que el primario actual vuelva a convertirse en primario, primero debe bajar el nodo primario actual usando rs.stepDown().

Este tutorial utiliza un set de réplicas de muestra con 5 nodos.

Advertencia

  • El método de shell rs.reconfig() puede forzar el traspaso del primario actual, lo que provoca una elección. Cuando el primario renuncia, el mongod cierra todas las conexiones de los clientes. Aunque esto generalmente toma entre 10 y 20 segundos, intente hacer estos cambios durante los periodos de mantenimiento programados.

  • Evitar reconfigurar sets de réplicas que contengan miembros de diferentes versiones de MongoDB, ya que las reglas de validación pueden diferir entre versiones de MongoDB.

1

El método rs.conf() devuelve un documento de configuración de set de réplicas que contiene la configuración actual para un set de réplicas.

En mongosh, cuando esté conectado a un primario, ejecute el método rs.conf() y asigne el resultado a una variable:

cfg = rs.conf()

El documento devuelto contiene un campo members que contiene un arreglo de documentos de configuración de nodos, un documento para cada nodo del set de réplicas.

2

Para evitar que un secundario se convierta en primario, actualice el members[n].priority del secundario a 0.

Para asignar un valor de prioridad a un nodo del set de réplicas, accede al documento de configuración del nodo utilizando el índice del arreglo. En este tutorial, el nodo secundario a cambiar corresponde al documento de configuración encontrado en la posición 2 del members arreglo.

cfg.members[2].priority = 0

El cambio de configuración no surte efecto hasta que se vuelve a configurar el set de réplicas.

3

Utilice el método rs.reconfig() para reconfigurar el set de réplica con el documento actualizado de configuración del set de réplica.

Pase la variable cfg al método rs.reconfig():

rs.reconfig(cfg)

Volver

Ajustar prioridad para miembro del set de réplicas

En esta página