Mantener respaldos de datos es una práctica vital para cualquier organización. Los respaldos de datos actúan como una medida de seguridad crucial, permitiendo que la información sea recuperada o restaurada en caso de una emergencia, pérdida accidental o fallo del sistema. Típicamente, los respaldos de bases de datos se crean replicando la base de datos, utilizando herramientas integradas o servicios de respaldo externos especializados.

MongoDB, una base de datos NoSQL muy popular, ofrece múltiples opciones de respaldo integradas, que varían según el método de despliegue que utilices. Exploraremos brevemente estas opciones, pero nos centraremos en detalle en una herramienta particular: MongoDB mongodump, ideal para realizar respaldos locales y directos de tus datos.

Opciones de Respaldo Integradas en MongoDB
MongoDB proporciona varias maneras de asegurar tus datos. Conocerlas te ayuda a elegir la estrategia más adecuada para tu entorno:
Respaldos en MongoDB Atlas
Si tu base de datos MongoDB está alojada en el servicio de base de datos en la nube MongoDB Atlas, el servicio ofrece respaldos incrementales continuos y automatizados. Además, Atlas puede crear instantáneas del proveedor de nube subyacente, utilizando la funcionalidad nativa de instantáneas para capturar el estado de los datos.
MongoDB Cloud Manager u Ops Manager
Cloud Manager es un servicio alojado que proporciona funcionalidades de respaldo, monitoreo y automatización para MongoDB. Facilita la creación y restauración de respaldos, ofreciendo además respaldos externos (offsite). Ops Manager, por su parte, ofrece la misma funcionalidad que Cloud Manager, pero está diseñado para ser desplegado como una solución local (on-premise).
MongoDB mongodump
Mongodump es una utilidad de respaldo simple pero potente que crea archivos BSON de alta fidelidad a partir de una base de datos subyacente. Estos archivos binarios son una representación exacta de los datos y pueden ser restaurados utilizando la utilidad complementaria mongorestore. Mongodump es una solución de respaldo ideal para instancias de MongoDB de tamaño pequeño a mediano debido a su facilidad de uso y portabilidad. Es la herramienta principal para respaldos locales y manuales.
Respaldos a Nivel del Sistema de Archivos
Este método implica simplemente copiar los archivos de datos subyacentes de una instalación de MongoDB. Si el sistema de archivos lo soporta, se pueden utilizar instantáneas (snapshots). Otra forma es emplear herramientas como rsync para copiar directamente los archivos de datos a un directorio de respaldo.
¿Qué es Exactamente MongoDB mongodump?
La utilidad mongodump es la herramienta de línea de comandos de MongoDB diseñada específicamente para crear volcados binarios (backups) del contenido de una base de datos. Puede exportar datos tanto de instancias mongod (instancias individuales o miembros de un replica set) como de instancias mongos (en clusters sharded), lo que te permite crear respaldos de:
- Instancias autónomas
- Replica sets
- Clusters sharded (con ciertas limitaciones a partir de la versión 4.2)
Antes de MongoDB 4.4, mongodump se lanzaba junto con el servidor MongoDB y seguía su versionado. Sin embargo, las iteraciones más recientes de mongodump se lanzan como una utilidad separada dentro del paquete MongoDB Database Tools. Esta separación garantiza compatibilidad con versiones recientes de MongoDB, incluyendo 4.4, 4.2, 4.0 y 3.6. La utilidad es compatible con la mayoría de las plataformas x86_64 y algunas de ARM64, PPC64LE y s390x.
Comportamientos y Limitaciones de mongodump
Es fundamental comprender cómo funciona mongodump y cuáles son sus limitaciones para planificar tu estrategia de respaldo de manera efectiva:
- Preferencia de Lectura: Por defecto,
mongodumpdirige sus operaciones de lectura al miembro primario de un replica set. Su preferencia de lectura predeterminada esprimary. - Exclusión de Base de Datos y Datos de Índice: La operación de respaldo excluye la base de datos 'local'. Además, solo captura los documentos, excluyendo los datos de índice. Los índices deben ser reconstruidos después de un proceso de restauración utilizando
mongorestore. - Vistas de Solo Lectura: Respecto a las vistas de solo lectura,
mongodumpsolo captura los metadatos de las vistas. Si necesitas capturar los documentos dentro de una vista, debes usar la opción--viewsAsCollections. - Formato de Metadatos: Para asegurar la máxima compatibilidad, se recomienda usar Extended JSON v2.0 (Canonical) para los archivos de metadatos generados por
mongodump. Es crucial utilizar versiones correspondientes demongodumpymongorestorepara operaciones de respaldo y restauración. - Sobreescritura de Archivos: El comando
mongodumpsobrescribirá los archivos existentes dentro del directorio de respaldo especificado. La ubicación predeterminada para los respaldos es la carpetadump/en el directorio actual donde se ejecuta el comando. - Motor de Almacenamiento WiredTiger: Cuando se utiliza el motor de almacenamiento WiredTiger, la salida de
mongodumpserán datos sin comprimir. - Dependencia de Memoria del Sistema: Las operaciones de respaldo con
mongodumpdependen de la memoria del sistema disponible. Si el conjunto de datos es significativamente más grande que la memoria del sistema, la utilidad puede desplazar el conjunto de trabajo fuera de la memoria, impactando potencialmente el rendimiento de la base de datos durante el respaldo. - Control de Acceso y Privilegios: Si el control de acceso está configurado en la base de datos MongoDB, el usuario que ejecuta
mongodumpdebe tener suficientes privilegios en cada base de datos que se va a respaldar. MongoDB proporciona un rol integrado llamadobackupcon los privilegios necesarios para respaldar cualquier base de datos. - Clusters Sharded con Transacciones en Progreso (Post-4.2): A partir de MongoDB 4.2,
mongodumpno puede ser utilizado como parte de la estrategia de respaldo cuando se respaldan clusters sharded que tienen transacciones distribuidas en progreso. En estos casos, se recomienda usar soluciones como MongoDB Cloud Manager u Ops Manager, que mantienen la atomicidad en las transacciones a través de los shards. - Ejecución: El comando
mongodumpdebe ser ejecutado desde la línea de comandos del sistema, ya que es una utilidad separada del shell de MongoDB. - No hay Respaldos Incrementales: Una limitación importante es que
mongodumprealiza siempre un respaldo completo. No existe una opción para realizar respaldos incrementales.
Herramientas de Base de Datos de MongoDB
Las Herramientas de Base de Datos de MongoDB (MongoDB Database Tools) son una colección de utilidades de línea de comandos esenciales para el mantenimiento y la administración de instancias de MongoDB. Estas herramientas incluyen mongodump, mongorestore, mongoimport, mongoexport, entre otras. Son compatibles con varios entornos operativos:
- Windows
- Linux
- macOS
A continuación, veremos cómo verificar su instalación e instalarlas en un servidor Linux, que es un escenario común para despliegues de MongoDB.
Verificando la Instalación de las Herramientas
Para comprobar si las herramientas de base de datos ya están instaladas en tu sistema Linux (basado en Debian/Ubuntu), puedes usar el siguiente comando:
sudo dpkg -l mongodb-database-toolsSi las herramientas están instaladas, verás una salida similar a esta (la versión puede variar):
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Architecture Description
+++-========================-================-============-=================================================
ii mongodb-database-tools 100.2.1 amd64 MongoDB database toolsSi no están disponibles o instaladas, el resultado podría ser diferente, indicando que el paquete no se encuentra.
Instalando las Herramientas de Base de Datos
Si tu sistema no tiene las Herramientas de Base de Datos de MongoDB, puedes instalarlas. El centro de descargas de MongoDB proporciona las versiones más recientes. Debes descargar la versión adecuada para tu plataforma y tipo de paquete (por ejemplo, .deb para Debian/Ubuntu, .rpm para RHEL/CentOS). En un entorno CLI, puedes usar wget o curl para descargar el paquete directamente.
El siguiente ejemplo muestra cómo descargar e instalar la versión 100.2.1 de las Herramientas de Base de Datos para Ubuntu 20.04 (x86_64) usando curl y apt:
curl -o mongodb-database-tools-ubuntu2004-x86_64-100.2.1.deb https://fastdl.mongodb.org/tools/db/mongodb-database-tools-ubuntu2004-x86_64-100.2.1.deb
sudo apt install ./mongodb-database-tools-ubuntu2004-x86_64-100.2.1.debLa salida de la instalación exitosa se verá similar a esta:
Reading package lists... Done
Building dependency tree
Reading new state information... Done
The following NEW packages will be installed:
mongodb-database-tools
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 0 B/25.1 MB of archives.
After this operation, 104 MB of additional disk space will be used.
Get:1 file:./mongodb-database-tools-ubuntu2004-x86_64-100.2.1.deb mongodb-database-tools amd64 100.2.1 [25.1 MB]
Selecting previously unselected package mongodb-database-tools.
(Reading database ... 201763 files and directories currently installed.)
Preparing to unpack .../mongodb-database-tools-ubuntu2004-x86_64-100.2.1.deb ...
Unpacking mongodb-database-tools (100.2.1) ...
Setting up mongodb-database-tools (100.2.1) ...
Processing triggers for man-db (2.9.1-1) ...Una vez instaladas, tendrás acceso al comando mongodump en tu terminal.
Uso Práctico de MongoDB mongodump
Ahora que tenemos las herramientas listas, veamos cómo utilizar la utilidad mongodump para realizar respaldos en diferentes escenarios.
Sintaxis Básica de mongodump
La sintaxis general del comando es:
mongodump <opciones> <cadena-de-conexion>El método más básico para crear un respaldo es ejecutar mongodump sin ninguna opción. Esto asume que la base de datos se encuentra en localhost (127.0.0.1) y utiliza el puerto predeterminado 27017, sin requisitos de autenticación. El proceso de respaldo creará una carpeta llamada dump en el directorio actual donde ejecutas el comando.
mongodumpLa salida indicará el progreso y las colecciones respaldadas:
2023-10-27T10:00:00.000+0000 writing admin.system.keys to <stdout>
2023-10-27T10:00:00.000+0000 done dumping admin.system.keys
2023-10-27T10:00:00.000+0000 writing config.system.sessions to <stdout>
... (más líneas de respaldo)
2023-10-27T10:00:00.000+0000 done dumping database <DATABASE_NAME>Puedes navegar a la carpeta dump para verificar los archivos creados, que estarán organizados por base de datos y colección.
Respaldando una Instancia Remota de MongoDB
Para respaldar una instancia de MongoDB que no se ejecuta en tu máquina local, necesitas especificar la dirección del host y, opcionalmente, el puerto. Puedes hacerlo usando la opción --uri con una cadena de conexión de MongoDB, o utilizando las opciones --host y --port por separado.
Con la opción --uri:
mongodump --uri="mongodb://<URL/IP del host>:<Puerto>" [opciones adicionales]Con la opción --host:
mongodump --host="<URL/IP del host>:<Puerto>" [opciones adicionales]Con las opciones --host y --port por separado:
mongodump --host="<URL/IP del host>" --port=<Puerto> [opciones adicionales]El siguiente ejemplo demuestra cómo crear un respaldo de una instancia remota ubicada en la IP 10.10.10.59 en el puerto predeterminado:
mongodump --host="10.10.10.59" --port=27017La salida será similar a la del respaldo local, pero conectándose a la instancia remota.

Respaldando una Instancia Segura de MongoDB
Si tu instancia de MongoDB tiene el control de acceso habilitado (es decir, requiere autenticación), necesitas proporcionar credenciales para conectarte. Deberás especificar el nombre de usuario, la contraseña y la base de datos de autenticación (generalmente 'admin').
Sintaxis de Autenticación:
mongodump --authenticationDatabase=<Base de Datos> -u=<Nombre de Usuario> -p=<Contraseña> [opciones adicionales]Veamos cómo conectarse a la instancia remota del ejemplo anterior utilizando un nombre de usuario ('barryadmin') y una contraseña ('testpassword'), autenticando contra la base de datos 'admin':
mongodump --host=10.10.10.59 --port=27017 --authenticationDatabase="admin" -u="barryadmin" -p="testpassword"La ejecución exitosa significa que las credenciales fueron aceptadas y el respaldo comenzó.
Seleccionando Bases de Datos y Colecciones Específicas
Por defecto, mongodump respalda todas las bases de datos accesibles (excepto 'local'). Puedes limitar el alcance del respaldo a una base de datos específica o incluso a una colección dentro de una base de datos utilizando las opciones --db y --collection.
Seleccionando una base de datos:
mongodump --db=<Base de Datos Objetivo> [opciones adicionales]Seleccionando una colección (requiere especificar la base de datos):
mongodump --db=<Base de Datos Objetivo> --collection=<Nombre de la Colección> [opciones adicionales]Para excluir una colección específica del proceso de respaldo, puedes usar la opción --excludeCollection. Esto también requiere especificar la base de datos.
mongodump --db=<Base de Datos Objetivo> --excludeCollection=<Nombre de la Colección> [opciones adicionales]En el siguiente ejemplo, definimos la colección 'vehicleinformation' dentro de la base de datos 'vehicles' como el único objetivo del respaldo en nuestra instancia remota y segura:
mongodump --host=10.10.10.59 --port=27017 --authenticationDatabase="admin" -u="barryadmin" -p="testpassword" --db=vehicles --collection=vehicleinformationLa salida mostrará que solo se está respaldando esa colección específica.
Cambiando el Directorio de Salida del Respaldo
Por defecto, mongodump crea la carpeta dump/ en el directorio actual. Puedes especificar una ubicación diferente para la carpeta de respaldo utilizando la opción --out.
mongodump --out=<Ubicación del Directorio> [opciones adicionales]Cambiemos el directorio de respaldo a una carpeta llamada 'dbbackup' en nuestra instancia remota y segura:
mongodump --host=10.10.10.59 --port=27017 --authenticationDatabase="admin" -u="barryadmin" -p="testpassword" --out=dbbackupLos archivos del respaldo se crearán ahora dentro de la carpeta 'dbbackup' en lugar de 'dump'.
Creando un Archivo de Archivo Único (Archive)
En lugar de crear una carpeta con múltiples archivos BSON, la utilidad mongodump permite crear un único archivo de archivo. Puedes usar la opción --archive para especificar el nombre de este archivo. Si no se especifica un nombre de archivo, la salida se escribirá a la salida estándar (stdout), lo que permite encadenar comandos (por ejemplo, para comprimir y transferir directamente).
La opción --archive no puede usarse junto con la opción --out.
mongodump --archive=<archivo> [opciones adicionales]El siguiente ejemplo demuestra cómo definir un archivo de archivo llamado 'db.archive' para el respaldo:
mongodump --host=10.10.10.59 --port=27017 --authenticationDatabase="admin" -u="barryadmin" -p="testpassword" --archive=db.archiveSe creará un único archivo llamado 'db.archive' que contiene el volcado de la base de datos.
Comprimiendo el Respaldo
Puedes comprimir los archivos de respaldo generados por mongodump utilizando la opción --gzip. Esta opción comprimirá individualmente los archivos BSON (y JSON para metadatos) dentro del directorio de salida o el archivo de archivo.
mongodump --gzip [opciones adicionales]Comprimamos un respaldo completo de la base de datos en nuestra instancia remota y segura:
mongodump --host=10.10.10.59 --port=27017 --authenticationDatabase="admin" -u="barryadmin" -p="testpassword" --gzipLos archivos dentro del directorio de salida (por defecto dump/) tendrán la extensión .gz, indicando que están comprimidos.
Comparativa Rápida de Métodos de Respaldo
| Método | Tipo de Respaldo | Complejidad | Ideal Para | Características Clave |
|---|---|---|---|---|
| mongodump / mongorestore | Lógico (BSON) | Baja a Media | Instancias pequeñas/medianas, replica sets, respaldos manuales/scripts simples. | Fácil de usar, portable, excluye índices y DB 'local', no incremental, limitaciones en clusters sharded con transacciones (>= 4.2). |
| MongoDB Atlas Backups | Continuo incremental, Instantáneas del proveedor. | Baja (gestionado) | Deployments en MongoDB Atlas. | Automatizado, gestionado, granular, point-in-time recovery. |
| Cloud/Ops Manager Backups | Continuo incremental. | Media a Alta | Deployments gestionados (en la nube o on-premise). | Automatizado, gestionado, consistente en clusters sharded, offsite backups. |
| Sistema de Archivos (rsync, instantáneas) | Físico (archivos de datos) | Media | Casos donde se requiere copia a bajo nivel, sistemas de archivos con soporte para instantáneas. | Rápido para grandes volúmenes, requiere detener/bloquear la DB o usar instantáneas consistentes. |
Preguntas Frecuentes sobre mongodump
- ¿
mongodumprealiza respaldos incrementales? - No,
mongodumpsiempre realiza un respaldo completo de la base de datos o colección especificada. No tiene la capacidad de realizar respaldos incrementales. - ¿Puedo usar
mongodumppara respaldar un cluster sharded? - Sí, puedes usar
mongodumpen un cluster sharded conectándote a una instanciamongos. Sin embargo, a partir de MongoDB 4.2, no se recomienda para clusters sharded que manejan transacciones distribuidas en progreso, ya que no puede garantizar la atomicidad en ese escenario. - ¿Qué sucede con los índices al usar
mongodump? mongodumpno respalda los datos de índice. Solo respalda los documentos. Cuando restauras conmongorestore, los índices deben ser reconstruidos después de importar los datos.- ¿Cómo restauro un respaldo creado con
mongodump? - Para restaurar un respaldo creado con
mongodump, utilizas la utilidad complementariamongorestore. Por ejemplo:mongorestore --db <nombre_db> /ruta/a/tu/carpeta/dump/<nombre_db>omongorestore --archive=db.archivesi creaste un archivo de archivo. - ¿Es seguro usar
mongodump -ppara la contraseña? - Usar la opción
-pdirectamente en la línea de comandos expone tu contraseña en el historial del shell y en los procesos en ejecución. Es más seguro omitir la opción-ppara quemongodumpte solicite la contraseña de forma interactiva, o utilizar un archivo de credenciales.
En este artículo, hemos cubierto los pasos esenciales para utilizar la utilidad mongodump de MongoDB para crear y gestionar respaldos de bases de datos localmente. Desde la instalación de las Herramientas de Base de Datos hasta la ejecución de comandos básicos, remotos, seguros, selectivos, y la compresión de los respaldos, ahora tienes una base sólida para proteger tus datos. Comprender las capacidades y limitaciones de mongodump te permitirá integrarla eficazmente en tu estrategia general de respaldo. Recuerda que, para entornos de producción críticos o clusters sharded complejos, otras soluciones como Cloud Manager/Ops Manager o Atlas Backups pueden ser más adecuadas.
Si quieres conocer otros artículos parecidos a Respaldos Locales de MongoDB con mongodump puedes visitar la categoría Bases de datos.

Aprende mas sobre MySQL