Los miembros sin derecho a voto permiten agregar miembros adicionales para distribuir la lectura más allá de los 7 miembros con derecho a voto máximos.
Para configurar un nodo como sin derecho a voto, utiliza el
replSetReconfig comandar o sus
mongosh método asistente rs.reconfig() para establecer sus valores members[n].votes y members[n].priority en 0. Los miembros del set de réplicas sin derecho a voto deben tener una priority de 0.
Nota
La reconfiguración de réplicas puede agregar o remover no más de un miembro del set de réplicas votante a la vez. Para modificar los votos de varios nodos, emite una serie de operaciones replSetReconfig o rs.reconfig() para modificar un nodo a la vez. Consulta La reconfiguración puede agregar o remover no más de un nodo votante a la vez para obtener más información.
Procedimiento
El siguiente procedimiento configura un único miembro secundario del set de réplicas para que sea sin derecho a voto. Para convertir al miembro primario en uno sin derecho a voto, primero se debe desactivar correctamente el primario usando replSetStepDown o su asistente de shell rs.stepDown() antes de ejecutar este procedimiento.
- 1) Conectarse al primario del conjunto de réplicas
Conecta
mongoshal set de réplicas primario:mongosh --host "<hostname>:<port>" Reemplaza el
<hostname>y el<port>con el nombre de host y el puerto del nodo primario del set de réplicas. Incluya cualquier otro parámetro requerido para su implementación.- 2) Recuperar la configuración de la réplica
Ejecute el método
rs.conf()en la shell y asigne el resultado a una variablecfg:cfg = rs.conf(); El documento devuelto contiene un
membersarreglo, donde cada elemento del arreglo contiene la configuración de un solo miembro del juego de réplicas.- 3) Configurar al nodo como no votante
Para que el nodo del réplicaSet cambie a ser sin votos, configura su
votesypriorityen0.cfg.members[n].votes = 0; cfg.members[n].priority = 0; Reemplace
npor la posición del índice del arreglo del nodo que desea modificar. Elmembersarreglo es indexada en cero, donde el primer elemento en el arreglo tiene una posición de índice de0.La posición del índice de un nodo en el
membersarreglo es distinta de lamembers[n]._idde un nodo específico. No use el_idpara referenciar la posición del índice del arreglo de cualquier nodo enmembers.- 4) Reconfigura el set de réplicas con la nueva configuración
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.rs.reconfig(cfg);
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, elmongodcierra 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.