desligar
Alterado na versão 5.0.
shutdown
O comando
shutdown
limpa todos os recursos do banco de dados e encerra o processo. Você deve emitir o comandoshutdown
no banco de dados admin.
Compatibilidade
Esse comando está disponível em implantações hospedadas nos seguintes ambientes:
MongoDB Atlas: o serviço totalmente gerenciado para implantações do MongoDB na nuvem
Importante
Este comando não é suportado em M0, M2, M5 e M10+ clusters. Para obter mais informações, 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
Sintaxe
O comando tem a seguinte sintaxe:
db.adminCommand( { shutdown: 1, force: <boolean> timeoutSecs: <int>, comment: <any> } )
Campos de comando
O comando usa esses campos:
Campo | Descrição |
---|---|
Especifique | |
Opcional. Especifique Você pode pausar e retomar as construções de índices em andamento usando | |
Opcional. A partir do MongoDB 5.0, Se um
Para uma solicitação de desligamento secundária ou O período de silêncio é especificado por:
Os clientes não podem abrir novas conexões com um timeoutSecs especifica um período de tempo em segundos. O padrão é:
A partir do MongoDB 5.0, No MongoDB 4.4 e versões anteriores, para um | |
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). |
Comportamento
Para um mongod
iniciado com autenticação em sistemas autogerenciados, você deve executar shutdown
em uma conexão autenticada. Consulte Controle de acesso para obter mais informações.
Para um mongod
iniciado sem autenticação em sistemas autogerenciados, você deve executar shutdown
de 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
em Membros do Conjunto de Réplica
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.
Desligando o conjunto de réplicas primário, secundário ou mongos
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:
Tentativas de descer para um secundário.
Se a redução falhar e a:
Entra no período de inatividade.
Termina todas as operações restantes do banco de dados.
Desliga.
Para uma solicitação de desligamento secundária ou mongos
mongod
, o período de desligamento é inserido depois que um desligamento foi solicitado.
O período de silêncio é especificado por:
Campo timeoutSecs se um comando
shutdown
oudb.shutdownServer()
foi executado, ouparâmetro de servidor
shutdownTimeoutMillisForSignaledShutdown
se um sinalSIGTERM
foi enviado paramongod
, ouParâmetro do servidor do
mongosShutdownTimeoutMillisForSignaledShutdown
se um sinal doSIGTERM
foi enviado paramongos
.
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.
Controle de acesso
Para executar shutdown
em um mongod
impondo a autenticação em implantações autogerenciadas, o usuário autenticado deve ter o privilégio shutdown
. Por exemplo, um usuário com a função incorporada hostManager
tem as permissões apropriadas.
Exemplos
Desligue um mongod
db.adminCommand({ "shutdown" : 1 })
Forçar o desligamento de um mongod
db.adminCommand({ "shutdown" : 1, "force" : true })
Desligar um primary mongod
com tempo limite maior
db.adminCommand({ "shutdown" : 1, timeoutSecs: 60 })