Menu Docs
Página inicial do Docs
/
Manual do MongoDB
/ / /

desligar

Nesta página

  • Sintaxe
  • Campos de comando
  • Comportamento
  • Controle de acesso
  • Exemplos

Alterado na versão 5.0.

shutdown

O comando shutdown limpa todos os recursos do banco de dados e, em seguida, encerra o processo. Você deve enviar o comando { shutdown } no banco dedados admindo .

O comando tem a seguinte sintaxe:

db.adminCommand(
{
shutdown: 1,
force: <boolean>
timeoutSecs: <int>,
comment: <any>
}
)

O comando usa esses campos:

Campo
Descrição
desligar

Especifique 1.

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.

Você pode pausar e retomar as construções de índices em andamento usando force. Consulte shutdown em Membros do Conjunto de Réplicas para obter mais informações.

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 MongoDB 5.0, 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 mongos . Nas versões do MongoDB anteriores a 5.0, mongos é desligado imediatamente e não usa timeoutSecs.

No MongoDB 4.4 e versões anteriores, para um mongod primary, timeoutSecs é o número de segundos que o primary deve esperar até que um secundário se atualize. Se nenhum secundário for alcançado dentro do tempo especificado, o comando falhará. O padrão é 10 segundos.

comment

Opcional. Um comentário fornecido pelo usuário para anexar a este comando. Depois de definido, esse comentário aparece junto com os registros desse comando nos seguintes locais:

Um comentário pode ser qualquer tipo BSON válido (string, inteiro, objeto, array etc).

Dica

Veja também:

Para um mongod iniciado com Autenticação, você deve executar o shutdown por meio de uma conexão autenticada. Consulte Controle de acesso para obter mais informações.

Para um mongod iniciado sem autenticação, você deve executar shutdown em um cliente conectado à interface localhost. Por exemplo, execute mongosh com a opção --host "127.0.0.1" na mesma máquina host que o mongod.

shutdown falhará se o membro do conjunto de réplicas estiver executando determinadas operações, como contruções de índices. Você pode especificar force: true para forçar o membro a salvar o progresso das construções de índices no disco. O mongod recupera a construção do índice quando é reiniciado e continua a partir do checkpoint salvo.

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 MongoDB 5.0, 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 mongos . Nas versões do MongoDB anteriores a 5.0, mongos é desligado imediatamente e não usa 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.

Para executar o shutdown em um mongod aplicando a Autenticação, o usuário autenticado deve ter o privilégio do shutdown. Por exemplo, um usuário com a função incorporada hostManager tem as permissões apropriadas.

db.adminCommand({ "shutdown" : 1 })
db.adminCommand({ "shutdown" : 1, "force" : true })
db.adminCommand({ "shutdown" : 1, timeoutSecs: 60 })
← setUserWriteBlockMode