Alterado na versão 5.0.
db.shutdownServer()Desliga o processo atual
mongodoumongosde forma limpa e segura. Você deve executar a operaçãodb.shutdownServer()no banco de dados admin.db.shutdownServer()tem esta sintaxe:db.shutdownServer({ force: <boolean>, timeoutSecs: <int> }) O método utiliza estes campos:
CampoDescriçãoOpcional. Especifique
truepara forçar o encerramento demongodoumongos. O desligamento forçado interrompe quaisquer operações em andamento nomongodoumongose pode resultar em comportamento inesperado.Você pode pausar e retomar as construções de índices em andamento usando.
forcedb.shutdownServer()Consulte em Membros do conjunto de réplicas para mais informações.Opcional.
A partir do MongoDB 5.0,
mongodemongosentram 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
mongodprimário receber uma solicitação de desligamento, o primário:Tentativas de descer para um secundário.
Se a redução falhar e a:
shutdownOdb.shutdownServer()comando ou foi executado, somente continuamongodas etapas de desligamento se o campo de força for verdadeiro ou um
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
mongosmongod, o período de desligamento é inserido depois que um desligamento foi solicitado.O período de silêncio é especificado por:
campotimeoutSecs se um
shutdowncomando ou foi executado, oudb.shutdownServer()parâmetro de servidor
shutdownTimeoutMillisForSignaledShutdownse um sinalSIGTERMfoi enviado paramongod, ouParâmetro do servidor do
mongosShutdownTimeoutMillisForSignaledShutdownse um sinal doSIGTERMfoi enviado paramongos.
Os clientes não podem abrir novas conexões com um
mongodoumongosque 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.
mongodutiliza timeoutSecs como segue:Se o nó atual for o nó primário de um conjunto de réplicas,
mongodaguardará 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
SECONDARYapó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,
mongosusa 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 MongoDBmongosanteriores 5 0a., é desligado imediatamente e nãomongosusa timeoutSecs.
Esta operação fornece um invólucro para o comando shutdown.
Compatibilidade
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
Comportamento
Para um mongod iniciado com autenticação em sistemas autogerenciados, você deve executar db.shutdownServer() em uma conexão autenticada.Consulte Controle de acesso para obter mais informações.
Para ummongodiniciado sem autenticação em sistemas autogerenciados, você deve executardb.shutdownServer()de um cliente conectado à interface localhost. Por exemplo, executemongoshcom a opção--host "127.0.0.1"na mesma máquina host que omongod.
db.shutdownServer() em Membros do Conjunto de Réplica
db.shutdownServer() falhará se o membro do mongod conjunto de réplicas estiver executando determinadas operações, como compilações de índice. Você pode especificar force: true para salvar o progresso da construção do índice no disco. O recupera a compilação do índice quando é reiniciado e continua a partir do checkpoint salvo.mongod
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:
shutdownOdb.shutdownServer()comando ou foi executado, somente continuamongodas etapas de desligamento se o campo de força for verdadeiro ou um
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 mongosmongod, o período de desligamento é inserido depois que um desligamento foi solicitado.
O período de silêncio é especificado por:
campotimeoutSecs se um
shutdowncomando ou foi executado, oudb.shutdownServer()parâmetro de servidor
shutdownTimeoutMillisForSignaledShutdownse um sinalSIGTERMfoi enviado paramongod, ouParâmetro do servidor do
mongosShutdownTimeoutMillisForSignaledShutdownse um sinal doSIGTERMfoi 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,
mongodaguardará 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
SECONDARYapó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.
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 odb.shutdownServer()em ummongodaplicando a Autenticação em Sistemas Autogerenciados, o usuário autenticado deve ter o privilégio dodb.shutdownServer(). Por exemplo, um usuário com a função integradahostManagertem as permissões apropriadas.
Exemplos
Desligue um mongod
db.getSiblingDB("admin").shutdownServer()
Forçar o desligamento de um mongod
db.getSiblingDB("admin").shutdownServer({ "force" : true })
Desligue um primário mongod com tempo limite maior
db.getSiblingDB("admin").shutdownServer({ "timeoutSecs": 60 })