Alterado na versão 5.0.
db.shutdownServer()Shuts down the current
mongodormongosprocess cleanly and safely. You must issue thedb.shutdownServer()operation against the admin database.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.You can pause and resume in-progress index builds using
force. Seedb.shutdownServer()on Replica Set Members for more information.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:
shutdownordb.shutdownServer()command was run,mongodonly continues the shut down steps if the force field is true, or 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
mongosmongod, o período de desligamento é inserido depois que um desligamento foi solicitado.O período de silêncio é especificado por:
timeoutSecs field if a
shutdownordb.shutdownServer()command was run, orparâ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
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() em Membros do Conjunto de Réplica
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.
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:
shutdownordb.shutdownServer()command was run,mongodonly continues the shut down steps if the force field is true, or 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 mongosmongod, o período de desligamento é inserido depois que um desligamento foi solicitado.
O período de silêncio é especificado por:
timeoutSecs field if a
shutdownordb.shutdownServer()command was run, orparâ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.
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.
Controle de acesso
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.
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 })