Descripción
rs.stepDown(stepDownSecs, secondaryCatchUpPeriodSecs)Indica al primario del set de réplicas que pase a ser un secundario. Después de que el primario renuncie, los secundarios elegibles llevan a cabo una elección para primario.
El método no reduce inmediatamente la primaria. Si ningún
electablesecundario está al día con el primario, el primario espera hastasecondaryCatchUpPeriodSecs(por defecto 10 segundos) para que un secundario se ponga al día. Una vez que se dispone de una secundaria elegible, el método de descenso se realiza en la primaria.Una vez replegado, el primario original se convierte en secundario y no es elegible para volver a ser primario durante el resto del tiempo especificado por
stepDownSecs.Para una explicación detallada de la ejecución del método, consulte Comportamiento.
Nota
El método solo es válido para el primario y arroja un error si se ejecuta en un miembro que no es primario.
Importante
Método mongosh
This page documents a
mongoshmethod. This is not the documentation for database commands or language-specific drivers, such as Node.js.Para el comando de base de datos, consulta el comando
replSetStepDown.Para los drivers de API de MongoDB, consulte la documentación del driver de MongoDB específica del lenguaje.
The
rs.stepDown()method has the following parameters:ParameterTipoDescripciónstepDownSecsNúmero
El número de segundos para degradar el primario, durante el cual el nodo degradado no es elegible para convertirse en primario. Si se especifica un valor no numérico, la comando utiliza
60segundos.El periodo de reducción de potencia comienza en el momento en que el
mongodrecibe la orden. El período Secuencia posterior debe ser superior an elsecondaryCatchUpPeriodSecs.secondaryCatchUpPeriodSecsNúmero
opcional. El número de segundos que
mongodesperará a que un secundario elegible se ponga al nivel del primario.Cuando se especifica,
secondaryCatchUpPeriodSecsanula el tiempo de espera por defecto de10segundos.
Compatibilidad
Este método está disponible en implementaciones alojadas en los siguientes entornos:
MongoDB Enterprise: La versión basada en suscripción y autogestionada de MongoDB
MongoDB Community: La versión de MongoDB con código fuente disponible, de uso gratuito y autogestionada.
Comportamiento
Operaciones Concurrentes
The rs.stepDown() method attempts to terminate long running user operations that block the primary from stepping down, such as an index build, a write operation or a map-reduce job.
Disponibilidad de secundarios elegibles
El método entonces inicia un período de actualización en el que espera hasta secondaryCatchUpPeriodSeconds, por defecto 10 segundos, para que un secundario se ponga al día con el primario. El primario solo se baja si un secundario está actualizado con el primario durante el período de puesta al día para evitar reversiones.
Si ningún secundario elegible cumple con este criterio al final del periodo de espera, el primario no cede y el método produce un error.
Una vez que el nodo primario se retira con éxito, ese nodo no puede convertirse en el primario durante el resto del período stepDownSecs, que comenzó cuando el nodo recibió el método.
Conexiones del cliente
rs.stepDown() el método no cierra todas las conexiones de clientes.
Escribe durante la reducción
Nota
All writes to the primary fail during the period starting when the rs.stepDown() method is received until either a new primary is elected, or if there are no electable secondaries, the original primary resumes normal operation.
Writes that were in progress when rs.stepDown() is run are killed. In-progress transactions also fail with TransientTransactionError and can be retried as a whole.
El período en el que fallan los guardados es, como máximo:
secondaryCatchUpPeriodSecs (10s por defecto) + electionTimeoutMillis (10s por defecto).
Entrega de elecciones
When you step down a primary using rs.stepDown() or replSetStepDown without setting the force field to true, the stepped-down primary nominates an eligible secondary to call an election immediately.