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

db.shutdownServer() (método mongosh)

Alterado na versão 5.0.

db.shutdownServer()

Shuts down the current mongod or mongos process cleanly and safely. You must issue the db.shutdownServer() operation against the admin database.

db.shutdownServer() tem esta sintaxe:

db.shutdownServer({
force: <boolean>,
timeoutSecs: <int>
})

O método utiliza estes campos:

Campo
Descrição

Opcional. Especifique true para forçar o encerramento de mongod ou mongos . O desligamento forçado interrompe quaisquer operações em andamento no mongod ou mongos e pode resultar em comportamento inesperado.

You can pause and resume in-progress index builds using force. See db.shutdownServer() on Replica Set Members for more information.

Opcional.

A partir do MongoDB 5.0, mongod e mongos entram em um período de desativação para permitir que quaisquer operações de banco de dados em andamento sejam concluídas antes de serem encerradas.

Se um mongod primário receber uma solicitação de desligamento, o primário:

  1. Tentativas de descer para um secundário.

    Se a redução falhar e a:

  2. Entra no período de inatividade.

  3. Termina todas as operações restantes do banco de dados.

  4. Desliga.

Para uma solicitação de desligamento secundária ou mongosmongod, o período de desligamento é inserido depois que um desligamento foi solicitado.

O período de silêncio é especificado por:

Os clientes não podem abrir novas conexões com um mongod ou mongos que está sendo desligado.

timeoutSecs especifica um período de tempo em segundos. O padrão é:

  • 15 segundos começando no MongoDB 5.0.

  • 10 segundos nas versões MongoDB anteriores a 5.0.

mongod utiliza timeoutSecs como segue:

  • Se o nó atual for o nó primário de um conjunto de réplicas, mongod aguardará um período de até o número de segundos especificado pelo campo timeoutSecs para que um nó elegível recupere o atraso antes de reduzir o nó primário. Para obter detalhes sobre o tempo de atualização, consulte atraso de replicação.

  • Se o nó atual estiver no estado SECONDARY após deixar de ser primário, qualquer tempo restante especificado em timeoutSecs será usado para um período de inatividade, o que permite que as operações existentes sejam concluídas. Novas operações são enviadas para outros nós do conjunto de réplicas.

A partir do 5.0 MongoDB, mongos usa timeoutSecs como um período de inatividade, que permite a conclusão das operações existentes. Novas operações são enviadas para outros nós . Nas versões do MongoDB mongos anteriores 5 0a., é desligado imediatamente e nãomongos usa timeoutSecs.

Esta operação fornece um invólucro para o comando shutdown.

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

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.

  • 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

For a mongod started with Authentication on Self-Managed Deployments, you must run db.shutdownServer() over an authenticated connection. See Access Control for more information.

For a mongod started without Authentication on Self-Managed Deployments, you must run db.shutdownServer() from a client connected to the localhost interface. For example, run mongosh with the --host "127.0.0.1" option on the same host machine as the mongod.

db.shutdownServer() fails if the mongod replica set member is running certain operations such as index builds. You can specify force: true to save index build progress to disk. The mongod recovers the index build when it restarts and continues from the saved checkpoint.

A partir do MongoDB 5.0, mongod e mongos entram em um período de desativação para permitir que quaisquer operações de banco de dados em andamento sejam concluídas antes de serem encerradas.

Se um mongod primário receber uma solicitação de desligamento, o primário:

  1. Tentativas de descer para um secundário.

    Se a redução falhar e a:

  2. Entra no período de inatividade.

  3. Termina todas as operações restantes do banco de dados.

  4. Desliga.

Para uma solicitação de desligamento secundária ou mongosmongod, o período de desligamento é inserido depois que um desligamento foi solicitado.

O período de silêncio é especificado por:

Os clientes não podem abrir novas conexões com um mongod ou mongos que está sendo desligado.

timeoutSecs especifica um período de tempo em segundos. O padrão é:

  • 15 segundos começando no MongoDB 5.0.

  • 10 segundos nas versões MongoDB anteriores a 5.0.

mongod utiliza timeoutSecs como segue:

  • Se o nó atual for o nó primário de um conjunto de réplicas, mongod aguardará um período de até o número de segundos especificado pelo campo timeoutSecs para que um nó elegível recupere o atraso antes de reduzir o nó primário. Para obter detalhes sobre o tempo de atualização, consulte atraso de replicação.

  • Se o nó atual estiver no estado SECONDARY após deixar de ser primário, qualquer tempo restante especificado em timeoutSecs será usado para um período de inatividade, o que permite que as operações existentes sejam concluídas. Novas operações são enviadas para outros nós do conjunto de réplicas.

Starting in MongoDB 5.0, mongos uses timeoutSecs as a quiesce period, which allows existing operations to complete. New operations are sent to other mongos nodes. In MongoDB versions earlier than 5.0, mongos shuts down immediately and does not use timeoutSecs.

Aviso

O desligamento forçado do primário pode resultar na rollback de quaisquer gravações ainda não replicadas para um secundário.

To run db.shutdownServer() on a mongod enforcing Authentication on Self-Managed Deployments, the authenticated user must have the db.shutdownServer() privilege. For example, a user with the built-in role hostManager has the appropriate permissions.

db.getSiblingDB("admin").shutdownServer()
db.getSiblingDB("admin").shutdownServer({ "force" : true })
db.getSiblingDB("admin").shutdownServer({ "timeoutSecs": 60 })