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

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 convocar elecciones. En todos los demás aspectos, estas secundarias son idénticas a las demás.

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 base de datos principal actual tenga una prioridad 0 de. Para evitar que vuelva a serlo, primero debe reducir su prioridad rs.stepDown() usando.

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 miembro del conjunto de réplicas, acceda al documento de configuración del miembro mediante el índice de la matriz. En este tutorial, el miembro secundario que se debe cambiar corresponde al documento de configuración que se encuentra en la posición 2 de la members matriz.

cfg.members[2].priority = 0

El cambio de configuración no tendrá efecto hasta que reconfigure el conjunto 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 cfg variable al rs.reconfig() método:

rs.reconfig(cfg)

Volver

Ajustar la prioridad de los miembros

En esta página