Para agentes de IA: um índice de documentação está disponível em https://www.mongodb.com/pt-br/docs/llms.txt — as versões de markdown de todas as páginas estão disponíveis anexando .md a qualquer caminho de URL.
Menu Docs

replSetStepDown (comando de banco de dados)

replSetStepDown

Instrui o primário do conjunto de réplicas a se tornar um secundário. Após as etapas primárias, os secundários elegíveis realizam uma eleição para as primárias.

O comando não diminui imediatamente o primary. Se nenhum secundário electable estiver atualizado com o primário, o primário aguardará até secondaryCatchUpPeriodSecs (por padrão, 10 segundos) para que um secundário se atualize. Uma vez que um secundário elegível esteja disponível, o comando retira o primário.

Uma vez recuado, o primário original torna-se secundário e não se qualifica para se tornar primário novamente pelo restante do tempo especificado por replSetStepDown: <seconds>.

Para uma explicação detalhada da execução do comando, consulte Comportamento.

Observação

O comando só é válido contra o primário e gera um erro se for executado em um membro não primário.

Dica

In mongosh, this command can also be run through the rs.stepDown() helper method.

Helper methods are convenient for mongosh users, but they may not return the same level of information as database commands. In cases where the convenience is not needed or the additional return fields are required, use the database command.

The replSetStepDown can only run on the admin database.

Esse comando está disponível em implantações hospedadas nos seguintes ambientes:

  • MongoDB Enterprise: a versão autogerenciada e baseada em assinatura do MongoDB

  • MongoDB Community: uma versão com código disponível, de uso gratuito e autogerenciada do MongoDB

Importante

Este comando não é aceito em clusters do MongoDB Atlas. Para obter informações sobre o suporte do Atlas a todos os comandos, consulte Comandos não suportados.

O comando tem a seguinte sintaxe:

db.adminCommand(
{
replSetStepDown: <seconds>,
secondaryCatchUpPeriodSecs: <seconds>,
force: <true|false>
}
)

O comando utiliza os seguintes campos:

Campo
Tipo
Descrição

replSetStepDown

número

O número de segundos para deixar o primário, período durante o qual o nó renunciante não está qualificado para se tornar primário. Se você especificar um valor não numérico, o comando usará 60 segundos.

O período de recuo começa a partir do momento em que o mongod recebe o comando. O período de recuo deve ser maior que secondaryCatchUpPeriodSecs.

secondaryCatchUpPeriodSecs

número

Opcional. O número de segundos que o mongod aguardará até que um secundário elegível alcance o primário.

Quando especificado, secondaryCatchUpPeriodSecs substitui o tempo de espera padrão de 10 segundos ou, se force: true, 0 segundos.

force

booleano

Opcional. Um booleano que determina se o primário será desativado se não houver nenhum secundário elegível e atualizado dentro do período de espera.

Se true, o primário desiste mesmo que não exista nenhum membro secundário adequado; isso pode levar a reversões se um secundário com atraso de replicação se tornar o novo primário.

Se false, o primário não será desativado se não existir nenhum membro secundário adequado e o comando retornar um erro.

Padrão é false.

The replSetStepDown command 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.

Em seguida, o comando inicia um período de recuperação em que aguarda até secondaryCatchUpPeriodSeconds, por padrão 10 segundos, para que um secundário fique atualizado com o primário. O primary só é desativado se um secundário estiver atualizado com o primary durante o período de recuperação para evitar rollbacks.

Se nenhum secundário elegível atender a esse critério até o final do período de espera, o primário não será rebaixado e o comando apresentará erros. Você pode substituir esse comportamento e emitir com o comando com a opção force: true para descer imediatamente o primary.

Uma vez que o primário se retira com sucesso, esse nó não pode se tornar o primário pelo restante do período replSetStepDown: <seconds> , que começou quando o nó recebeu o comando.

replSetStepDown o comando não fecha todas as conexões do cliente.

Observação

All writes to the primary fail during the period starting when the replSetStepDown command 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 replSetStepDown is run are killed. In-progress transactions also fail with TransientTransactionError and can be retried as a whole.

O período de tempo em que as gravações falham é no máximo:

secondaryCatchUpPeriodSecs (10s por padrão) + electionTimeoutMillis (10s por padrão).

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.

O exemplo a seguir, executado no primário atual, tenta reduzir o membro por 120 segundos.

A operação aguarda até os 10 segundos padrão para que um secundário se atualize. Se não existir nenhum secundário adequado, o primário não será desativado e o comando apresentará erro.

Observação

All writes to the primary fail during the period starting when the replSetStepDown command 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 replSetStepDown is run are killed. In-progress transactions also fail with TransientTransactionError and can be retried as a whole.

O período de tempo em que as gravações falham é no máximo:

secondaryCatchUpPeriodSecs (10s por padrão) + electionTimeoutMillis (10s por padrão).

db.adminCommand( { replSetStepDown: 120 } )

O exemplo a seguir, executado no primário atual, tenta reduzir o membro por 120 segundos, aguardando até 15 segundos para que um secundário elegível se atualize. Se não existir nenhum secundário adequado, o primário não será desativado e o comando apresentará erro.

Observação

All writes to the primary fail during the period starting when the replSetStepDown command 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 replSetStepDown is run are killed. In-progress transactions also fail with TransientTransactionError and can be retried as a whole.

O período de tempo em que as gravações falham é no máximo:

secondaryCatchUpPeriodSecs (10s por padrão) + electionTimeoutMillis (10s por padrão).

db.adminCommand( { replSetStepDown: 120, secondaryCatchUpPeriodSecs: 15 } )

O exemplo a seguir, executado no primário atual, tenta reduzir o membro por 120 segundos, aguardando até 15 segundos para que um secundário elegível se atualize. Devido à opção force: true , o primário desiste mesmo que não exista um secundário adequado.

Observação

All writes to the primary fail during the period starting when the replSetStepDown command 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 replSetStepDown is run are killed. In-progress transactions also fail with TransientTransactionError and can be retried as a whole.

O período de tempo em que as gravações falham é no máximo:

secondaryCatchUpPeriodSecs (10s por padrão) + electionTimeoutMillis (10s por padrão).

db.adminCommand( { replSetStepDown: 120, secondaryCatchUpPeriodSecs: 15, force: true } )