Para agentes de IA: hay un índice de documentación disponible en https://www.mongodb.com/es/docs/llms.txt — versiones en markdown de todas las páginas están disponibles agregando .md a cualquier ruta URL.
Docs Menu

db.shutdownServer() (método mongosh)

Cambiado en la versión 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() tiene esta sintaxis:

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

El método toma estos campos:

Campo
Descripción

opcional. Especifique true para forzar la mongod o la mongos para que se apague. El apagado forzoso interrumpe cualquier operación en curso en el mongod o el mongos y puede resultar en un comportamiento 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 de MongoDB 5.0, mongod y mongos entran en un período de inactividad para permitir que se completen las operaciones de base de datos en curso antes de apagarse.

Si un mongod primario recibe una solicitud de apagado, el primario:

  1. Intentos de pasar a un secundario.

    Si el paso hacia abajo falla y un/una:

  2. Entra en el periodo de "quiesce".

  3. Finaliza cualquier operación de base de datos restante.

  4. Se apaga.

Para una mongod solicitud de apagado secundaria o mongos, se entra en el período de inactividad después de solicitar el apagado.

El periodo de parada se especifica por:

Los clientes no pueden abrir nuevas conexiones a un mongod o a un mongos que se está apagando.

timeoutSecs especifica un periodo de tiempo en segundos. El valor por defecto es:

  • 15 segundos a partir de MongoDB 5.0.

  • 10 segundos en las versiones de MongoDB anteriores a la 5.0.

mongod usa timeoutSecs de la siguiente manera:

  • Si el nodo actual es el nodo primario de un set de réplicas, mongod espera un periodo de hasta el número de segundos especificados por el campo timeoutSecs para que un nodo elegible se ponga al día antes de renunciar al nodo primario. Para obtener detalles sobre el tiempo de puesta al día, consulta atraso de la replicación.

  • Si el nodo actual está en el estado SECONDARY después de dejar de ser primario, cualquier tiempo restante especificado en timeoutSecs se usa para un periodo de inactividad, lo que permite que se completen las operaciones existentes. Las nuevas operaciones se envían a otros nodos del set de réplicas.

A partir de 5.0 MongoDB, mongos utiliza timeoutSecs como período de inactividad, lo que permite que las operaciones existentes finalicen. Las nuevas operaciones se envían a otros nodos. En versiones de MongoDB mongos anteriores 5 0a., mongos se apaga inmediatamente y no utiliza timeoutSecs.

Esta operación ofrece un contenedor alrededor del comando shutdown.

Este método está disponible en implementaciones alojadas en los siguientes entornos:

Importante

Este comando no es compatible con los clústeres de MongoDB Atlas. Para obtener información sobre el soporte de Atlas para todos los comandos, consulta Comandos no compatibles.

  • MongoDB Enterprise: La versión basada en suscripción y autogestionada de MongoDB

  • MongoDB Community: La versión de MongoDB con código fuente disponible, de uso gratuito y autogestionada.

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 de MongoDB 5.0, mongod y mongos entran en un período de inactividad para permitir que se completen las operaciones de base de datos en curso antes de apagarse.

Si un mongod primario recibe una solicitud de apagado, el primario:

  1. Intentos de pasar a un secundario.

    Si el paso hacia abajo falla y un/una:

  2. Entra en el periodo de "quiesce".

  3. Finaliza cualquier operación de base de datos restante.

  4. Se apaga.

Para una mongod solicitud de apagado secundaria o mongos, se entra en el período de inactividad después de solicitar el apagado.

El periodo de parada se especifica por:

Los clientes no pueden abrir nuevas conexiones a un mongod o a un mongos que se está apagando.

timeoutSecs especifica un periodo de tiempo en segundos. El valor por defecto es:

  • 15 segundos a partir de MongoDB 5.0.

  • 10 segundos en las versiones de MongoDB anteriores a la 5.0.

mongod usa timeoutSecs de la siguiente manera:

  • Si el nodo actual es el nodo primario de un set de réplicas, mongod espera un periodo de hasta el número de segundos especificados por el campo timeoutSecs para que un nodo elegible se ponga al día antes de renunciar al nodo primario. Para obtener detalles sobre el tiempo de puesta al día, consulta atraso de la replicación.

  • Si el nodo actual está en el estado SECONDARY después de dejar de ser primario, cualquier tiempo restante especificado en timeoutSecs se usa para un periodo de inactividad, lo que permite que se completen las operaciones existentes. Las nuevas operaciones se envían a otros nodos del set 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.

Advertencia

El cierre forzado del primario puede provocar el rollback de cualquier escritura que aún no se haya replicado en un secundario.

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 })