Docs Menu
Docs Home
/ /

Configurar autogestionado mongod Procesos

MongoDB se ejecuta como un programa estándar. Puede iniciar MongoDB desde la línea de comandos ejecutando el comando mongod Comando y especificación de opciones. Para obtener una lista de opciones, consulte la mongod referencia.

Los siguientes ejemplos asumen que el directorio que contiene el procesomongodse encuentra en las rutas de su sistema. El procesomongodes el proceso principal de la base de datos que se ejecuta en un servidor individual. mongosproporciona una interfaz coherente de MongoDB equivalente a unamongoddesde la perspectiva de un cliente. mongosh El binario proporciona el shell administrativo.

Este documento discute el proceso mongod; sin embargo, algunas partes de este documento pueden ser aplicables a instancias mongos.

Por defecto, MongoDB escucha conexiones de clientes en el puerto 27017 y almacena datos en el directorio /data/db.

En Windows, esta ruta se encuentra en la unidad desde la cual se inicia MongoDB. Por ejemplo, si no se especifica un --dbpath, al iniciar un servidor de MongoDB en la unidad C:\, se almacenan todos los archivos de datos en C:\data\db.

Para iniciar MongoDB utilizando todos los valores por defecto, emite el siguiente comando en el shell del sistema:

mongod

Si deseas que mongod almacene archivos de datos en una ruta distinta de /data/db, puedes especificar un dbPath. La dbPath debe existir antes de que empiece mongod. Si no existe, crea el directorio y los permisos para que mongod pueda leer y guardar datos en esta ruta. Para obtener más información sobre los permisos, consulta la documentación de operaciones de seguridad.

Para especificar un dbPath para que mongod lo use como directorio de datos, utilice la opción --dbpath. La siguiente invocación iniciará una instancia de mongod y almacenará datos en la ruta /srv/mongodb.

mongod --dbpath /srv/mongodb/

Nota

mongod incluye un mecanismo de Full Time Diagnostic Data Capture para asistir a los ingenieros de MongoDB con la solución de problemas en las implementaciones. Si este hilo falla, termina el proceso que lo originó. Para evitar los errores más comunes, confirme que el usuario que ejecuta el proceso tenga permisos para crear el directorio FTDC diagnostic.data. Para mongod, el directorio se encuentra dentro de storage.dbPath. Para mongos, es paralelo a systemLog.path.

Solo un proceso puede escuchar conexiones en una interfaz de red a la vez. Si ejecutas varios procesos mongod en una sola máquina, o tienes otros procesos que deben usar este puerto, debes asignar a cada uno un puerto diferente para escuchar las conexiones de los clientes.

Para especificar un puerto para mongod, utiliza la opción --port en la línea de comandos. El siguiente comando inicia mongod en modo escucha en el puerto 12345:

mongod --port 12345

Utiliza el número de puerto por defecto siempre que sea posible para evitar confusiones.

Para ejecutar un proceso mongod como un demonio (es decir, fork), y guardar la salida en una entrada de registro, se deben usar las opciones --fork y --logpath. Se debe crear el directorio de registros; sin embargo, mongod crea la entrada de registro si no existe.

El siguiente comando inicia mongod como un demonio y registra la salida de los registros en /var/log/mongodb/mongod.log.

mongod --fork --logpath /var/log/mongodb/mongod.log

Para obtener una visión general de las configuraciones e implementaciones comunes para casos de uso habituales, consultar Configuración de base de datos en tiempo de ejecución para implementaciones autogestionadas.

En un apagado limpio, un mongod completa todas las operaciones pendientes, guarda todos los datos en los archivos de datos y cierra todos los archivos de datos. Otros apagados son incorrectos y pueden comprometer la validez de los archivos de datos.

Para garantizar un apagado limpio, siempre apaga las instancias de mongod utilizando uno de los siguientes métodos:

Apagar el mongod desde mongosh utilizando el método db.shutdownServer() de la siguiente manera:

use admin
db.shutdownServer()

Llamar al mismo método desde un script de inicio logra el mismo resultado.

Para sistemas con authorization habilitado, los usuarios solo pueden emitir db.shutdownServer() cuando estén autenticados en la base de datos admin o a través de la interfaz localhost en sistemas sin autenticación habilitada.

Compatible solo con Linux. Desde la línea de comandos, apaga el mongod utilizando la opción --shutdown:

mongod --shutdown

Al ejecutar la instancia mongod en modo interactivo (es decir, sin --fork), emite Control-C para realizar un cierre limpio.

Compatible solo con Linux y macOS. Desde la línea de comandos, apaga una instancia específica de mongod usando uno de los siguientes comandos:

kill <mongod process ID>
kill -2 <mongod process ID>

Si un Primario de un Set de réplicas recibe un SIGTERM, el Primario intenta ceder su rol antes de apagarse.

  • Si la degradación tiene éxito, la instancia no vota en la elección subsiguiente del nuevo Primario y continúa su apagado.

  • Si falla el paso a modo inferior, la instancia continúa con su apagado.

Advertencia

Nunca uses kill -9 (es decir, SIGKILL) para finalizar una instancia de mongod.

Para instancias de MongoDB que se ejecutan en Linux:

  • Cuando los procesos mongod y mongos reciben una señal SIGUSR2, se añaden detalles de retrotrazado a los registros para cada hilo del proceso.

  • Los detalles de Backtrace muestran las llamadas a funciones del proceso, que se pueden utilizar para diagnósticos y proporcionarse al soporte de MongoDB si es necesario.

La funcionalidad de retrotrazado está disponible para estas arquitecturas:

  • x86_64

  • arm64 (a partir de MongoDB 5.0.10, y 6.0)

Importante

Emitir la señal SIGUSR2 únicamente a un proceso mongod que no responde. Emitir esta señal a un proceso mongod saludable puede provocar que el proceso se quede en un estado de bloqueo y requiera un reinicio.

Para emitir una señal SIGUSR2 a un proceso mongod en ejecución, ejecuta el siguiente comando:

kill -SIGUSR2 <mongod process ID>

Los datos de rastreo resultantes se escriben en el archivo de registro mongod según lo configurado con --logpath.

Si el mongod es el primario en un Set de réplicas, el proceso de apagado para esta instancia de mongod tiene los siguientes pasos:

  1. Comprueba qué tan actualizados están los secundarios.

  2. Si no hay ningún secundario a menos de 10 segundos del primario, mongod devolverá un mensaje indicando que no se apagará. Puedes pasarle al comando shutdown un argumento timeoutSecs para esperar a que un secundario se sincronice.

  3. Si hay un secundario a menos de 10 segundos del primario, el primario se desactivará y esperará a que el secundario lo alcance.

  4. Después de 60 segundos o una vez que el secundario se haya sincronizado, el primario se apagará.

Si no hay ningún secundario actualizado y se desea que el primario se apague, emitir el comando shutdown con el argumento force, como en la siguiente operación mongosh:

db.adminCommand({shutdown : 1, force : true})

Para seguir comprobando los secundarios durante un número especificado de segundos si ninguno está inmediatamente actualizado, emite shutdown con el argumento timeoutSecs. MongoDB seguirá verificando los secundarios durante el número de segundos especificado si ninguno está actualizado de inmediato. Si alguno de los secundarios se sincroniza dentro del tiempo asignado, el Primario se apagará. Si ningún secundario se pone al día, no se apagará.

El siguiente comando emite shutdown con timeoutSecs configurado a 5:

db.adminCommand({shutdown : 1, timeoutSecs : 5})

Alternativamente, puedes usar el argumento timeoutSecs con el db.shutdownServer() método:

db.shutdownServer({timeoutSecs : 5})

Volver

Actualice a la última versión de parche de MongoDB

En esta página