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
replSetReconfigcomando o su
mongosh El método auxiliar rs.reconfig() establece sus valores members[n].votes members[n].priority y 0 en. Los miembros del conjunto de réplicas sin derecho a voto deben tener un valor de igual priority 0a.
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 convierte un único miembro del conjunto de réplicas secundario en un miembro sin derecho a voto. Para convertir el miembro principal en un miembro sin derecho a voto, primero debe reducirlo correctamente mediante o su replSetStepDown rs.stepDown() ayudante de shell antes de realizar este procedimiento.
- 1) Conectarse al primario del conjunto de réplicas
Conecte al conjunto de
mongoshréplicas principal: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 miembro de la
membersmatriz es distinta del demembers[n]._idun miembro específico. No utilice el para referenciar la posición del índice de ningún_idmiembro de lamembersmatriz.- 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.