Modificado en la versión 5.0.
shutdownEl
shutdownEl comando limpia todos los recursos de la base de datos y luego finaliza el proceso. Debe ejecutar elshutdowncomando contra el base de datos de administración.
Compatibilidad
Este comando está disponible en implementaciones alojadas en los siguientes entornos:
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.
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.
Sintaxis
El comando tiene la siguiente sintaxis:
db.adminCommand( { shutdown: 1, force: <boolean> timeoutSecs: <int>, comment: <any> } )
Campos de comandos
El comando toma estos campos:
Campo | Descripción |
|---|---|
Especifique | |
Opcional. Especifique Puede pausar y reanudar las compilaciones de índices en curso mediante. Consulte sobre | |
Opcional. A partir de MongoDB,5.0 Si un
Para una El período de inactividad se especifica mediante:
Los clientes no pueden abrir nuevas conexiones a un timeoutSecs especifica un periodo de tiempo en segundos. El valor predeterminado es:
A partir de 5.0 MongoDB, | |
| Opcional. Un comentario proporcionado por el usuario para adjuntar a este comando. Una vez configurado, este comentario aparece junto a los registros de este comando en las siguientes ubicaciones:
Un comentario puede ser de cualquier tipo BSON válido (string, objeto, arreglo, etc.). |
Comportamiento
Para un mongod iniciado con autenticación en implementaciones autogestionadas, debe ejecutar shutdown mediante una conexión autenticada.Consulte Control de acceso para obtener más información.
Para unmongodiniciado sin autenticación en implementaciones autogestionadas, debe ejecutarshutdowndesde un cliente conectado a la interfaz localhost. Por ejemplo, ejecutemongoshcon la opción--host "127.0.0.1"en el mismo host quemongod.
shutdown sobre los miembros del conjunto de réplicas
shutdown falla si el set de réplicas está ejecutando ciertas operaciones como la creación de índices. Puedes especificar force: true para forzar que el nodo guarde el progreso de la creación de índices en el disco. El mongod recupera la creación de índices cuando se reinicia y continúa desde el punto de control guardado.
Apagado del conjunto de réplicas primaria, secundaria o mongos
A partir de MongoDB,5.0 mongod y ingresan a un período de inactividad para permitir que cualquier operación de base mongos de datos en curso se complete antes de apagarse.
Si un mongod servidor principal recibe una solicitud de apagado, el servidor principal:
Intentos de pasar a un secundario.
Si el paso hacia abajo falla y:
Entra en el período de inactividad.
Finaliza cualquier operación de base de datos restante.
Se apaga.
Para una mongod mongos solicitud de apagado secundario o, el período de inactividad se ingresa después de que se solicitó el apagado.
El período de inactividad se especifica mediante:
campotimeoutSecs
shutdowndb.shutdownServer()si se ejecutó un comando o, oshutdownTimeoutMillisForSignaledShutdownparámetro del servidor si se envió una señal deSIGTERMamongod, omongosShutdownTimeoutMillisForSignaledShutdownParámetro del servidor siSIGTERMse envió una señalmongosa.
Los clientes no pueden abrir nuevas conexiones a un mongod o que se está mongos cerrando.
timeoutSecs especifica un periodo de tiempo en segundos. El valor predeterminado es:
15 segundos comenzando en MongoDB 5.0.
10 segundos en versiones de MongoDB anteriores a 5.0.
mongod utiliza timeoutSecs de la siguiente manera:
Si el nodo actual es el nodo primario de un set de réplicas,
mongodespera 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
SECONDARYdespué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 periodo de inactividad, lo que permite que las operaciones existentes se completen. Las nuevas operaciones se envían a otros nodos. En versiones de MongoDB mongos anteriores 5 0a., mongos se cierra inmediatamente y no utiliza timeoutSecs.
Advertencia
El apagado forzado del servidor principal puede provocar la reversión de cualquier escritura que aún no se haya replicado en un servidor secundario.
Control de acceso
Para ejecutarshutdownen unmongodque aplica autenticación en implementaciones autogestionadas, el usuario autenticado debe tener el privilegioshutdown. Por ejemplo, un usuario con el rol integradohostManagertiene los permisos adecuados.
Ejemplos
Apagar un mongod
db.adminCommand({ "shutdown" : 1 })
Apagado forzado de un mongod
db.adminCommand({ "shutdown" : 1, "force" : true })
Apagar un servidor principal mongod con un tiempo de espera más largo
db.adminCommand({ "shutdown" : 1, timeoutSecs: 60 })