Docs Menu
Docs Home
/ /
Mantener
/ / /

Modificar un conjunto de réplicas de PSA autogestionado de forma segura

Al reconfigurar conjuntos de réplicas de árbitro primario-secundario (PSA) o cambiar a una arquitectura PSA, debe tener especial cuidado en los siguientes casos:

  • Desea reconfigurar un secundario en un conjunto de réplicas existente de tres miembros con una arquitectura PSA para que se convierta en un nodo con derecho a votación y portador de datos con una prioridad distinta de cero.

  • Desea agregar un nuevo nodo de votación y portador de datos con una prioridad distinta de cero a un conjunto de réplicas existente de dos miembros que contiene un nodo principal y un árbitro.

Advertencia

Si el secundario que está agregando está retrasado y el conjunto de réplicas resultante es una configuración de PSA, el primer cambio de configuración cambiará la cantidad de nodos que necesitan confirmar un cambio con "majority"En este caso, su punto de confirmación quedará rezagado hasta que el secundario lo alcance.

Este documento describe el procedimiento para reconfigurar su conjunto de réplicas en estos casos específicos sin utilizar el método auxiliar rs.reconfigForPSASet() designado.

Si está realizando una de las operaciones anteriores, es necesario reconfigurar su conjunto de réplicas en dos pasos:

  1. Reconfigure el conjunto de réplicas para agregar o modificar un secundario con { votes: 1, priority: 0 }.

  2. Una vez que el secundario agregado o modificado haya alcanzado todas las escrituras confirmadas, reconfigure el secundario para que tenga una prioridad distinta de cero { votes: 1, priority: <num> }.

El enfoque de dos pasos evita la posibilidad de revertir escrituras confirmadas en el caso de una conmutación por error al nuevo secundario antes de que este tenga todas las escrituras confirmadas del primario anterior.

Para ejecutar el rs.reconfigForPSASet() método, debes conectarte al primario del set de réplicas.

1

Para evitar revertir escrituras no confirmadas al agregar o cambiar un nodo con votación que contiene datos, es necesario que primero agregue el nodo con { priority: 0 }.

mongoshEn, modifique la configuración del conjunto de réplicas. Para reconfigurar un conjunto de réplicas existente, primero recupere la configuración actual rs.conf() con, modifique el documento de configuración según sea necesario y luego pase el documento rs.reconfig() modificado a:

cfg = rs.conf();
cfg["members"] = [
{
// existing member or members
},
{
"_id" : <num>, // The array position of the new member in the
// ``members`` array.
"host" : <host>,
"arbiterOnly" : false,
"buildIndexes" : true,
"hidden" : false,
"priority" : 0,
"tags" : { <tags> },
"secondaryDelaySecs" : <num>,
"votes" : 1
},
{
// existing member or members
}
]
rs.reconfig(cfg);
2

Una vez que el secundario esté al día, establezca la prioridad en el número deseado. Antes de que esta reconfiguración se realice correctamente, el secundario debe replicar todas las escrituras confirmadas cuando tenía cero votos. Esto se verifica automáticamente al ejecutar el rs.reconfig() comando.

cfg = rs.conf();
cfg["members"] = [
{
// existing member or members
},
{
"_id" : <num>, // The array position of the new member in the
// ``members`` array.
"host" : <host>,
"arbiterOnly" : false,
"buildIndexes" : true,
"hidden" : false,
"priority" : <num>,
"tags" : { <tags> },
"secondaryDelaySecs" : <num>,
"votes" : 1
},
{
// existing member or members
}
]
rs.reconfig(cfg);

Volver

Cambiar el nombre

En esta página