Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
Click here >
Docs Menu
Docs Home
/ /

rs.stepDown() (método mongosh)

rs.stepDown(stepDownSecs, secondaryCatchUpPeriodSecs)

Instruye a la primario del set de réplicas para convertirse en 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 electable secundario está al día con el primario, el primario espera hasta secondaryCatchUpPeriodSecs (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 , consulta 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

Esta página documenta un método mongosh. Esta no es la documentación para los comandos de base de datos ni para los drivers específicos de lenguajes, como Nodo.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.

El método rs.stepDown() tiene los siguientes parámetros:

Parameter
Tipo
Descripción

stepDownSecs

Nú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 60 segundos.

El periodo de reducción de potencia comienza en el momento en que el mongod recibe la orden. El período Secuencia posterior debe ser superior an el secondaryCatchUpPeriodSecs.

secondaryCatchUpPeriodSecs

Número

opcional. El número de segundos que mongod esperará a que un secundario elegible se ponga al nivel del primario.

Cuando se especifica, secondaryCatchUpPeriodSecs anula el tiempo de espera por defecto de 10 segundos.

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.

El método rs.stepDown() intenta terminar las operaciones de usuario de larga duración que impiden que el principal se retire, como la creación de índices, una operación de escritura o un trabajo de map-reduce.

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.

rs.stepDown() el método no cierra todas las conexiones de clientes.

Nota

Todas las escrituras para el primario fallan durante el período que comienza cuando se recibe el método rs.stepDown() hasta que se elija un nuevo primario, o si no hay secundarios electos, el primario original reanude la normal operación.

Los guardados que estaban en curso cuando se ejecuta rs.stepDown() son finalizados. Las transacciones en curso también fallan con TransientTransactionError y se pueden volver a intentar como un todo.

El período en el que fallan los guardados es, como máximo:

secondaryCatchUpPeriodSecs (10s por defecto) + electionTimeoutMillis (10s por defecto).

Cuando desescalas un primario utilizando rs.stepDown() o replSetStepDown sin configurar el campo force en true, el primario desescalado nombra a un secundario elegible para que convoque inmediatamente una elección.

Volver

rs.status

En esta página