MongoDB Academy · Lección

mongodump y mongorestore para copias de seguridad completas

Creará un volcado BSON completo de una base de datos y lo restaurará en otro clúster con mongorestore.

Lección 3 de 413 pasos

mongodump y mongorestore para copias de seguridad completas es una lección gratuita de MongoDB Academy en CoddyKit. Esta es la lección 3 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de MongoDB Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de MongoDB Academy incluye 4 lecciones en total.

¿Por qué usar mongodump para las copias de seguridad?

mongodump crea una instantánea BSON binaria de una base de datos o colección. A diferencia de mongoexport, que genera JSON legible, mongodump conserva exactamente toda la información de tipos BSON —ObjectIds, fechas, decimales y datos binarios— sin ninguna pérdida de fidelidad. Esto la convierte en la herramienta adecuada para realizar copias de seguridad completas y migraciones de bases de datos entre clústeres de MongoDB, mientras que mongoexport es mejor para compartir datos de forma selectiva.

Uso básico de mongodump

Al ejecutar mongodump sin argumentos, se descargan todas las bases de datos de la instancia local de MongoDB en un directorio dump/. Especifique --uri, --db y, opcionalmente, --collection para limitar el alcance. El directorio de salida contiene un subdirectorio por base de datos, cada uno con archivos .bson y .metadata.json por colección.

# Dump the entire 'myapp' database
mongodump \
  --uri 'mongodb://localhost:27017' \
  --db myapp \
  --out /backups/myapp-2024-01-15

# Output structure:
# /backups/myapp-2024-01-15/
#   myapp/
#     users.bson
#     users.metadata.json
#     products.bson
#     products.metadata.json

Volcar una sola colección

Use --collection para volcar únicamente una colección de una base de datos. Esto produce un solo archivo .bson y su archivo .metadata.json correspondiente, que almacena las definiciones de los índices. Los volcados de colecciones específicas resultan útiles para extraer una colección concreta para su migración sin realizar una copia de seguridad de toda la base de datos.

# Dump only the 'orders' collection
mongodump \
  --uri 'mongodb://localhost:27017' \
  --db myapp \
  --collection orders \
  --out /backups/orders-backup

# Result: /backups/orders-backup/myapp/orders.bson
#         /backups/orders-backup/myapp/orders.metadata.json

Comprimir el volcado

Los volcados BSON grandes pueden consumir mucho espacio en disco. Use --gzip para comprimir los archivos de salida a medida que se escriben. Cada archivo .bson se convierte en un archivo .bson.gz, normalmente con una compresión de entre 5 y 10 veces para colecciones de documentos habituales. La compresión se ejecuta en el proceso de mongodump y requiere una opción --gzip correspondiente en mongorestore para descomprimir.

# Create a compressed backup
mongodump \
  --uri 'mongodb://localhost:27017' \
  --db myapp \
  --gzip \
  --out /backups/myapp-compressed-2024-01-15

# Files are now .bson.gz:
# /backups/myapp-compressed-2024-01-15/myapp/users.bson.gz
# /backups/myapp-compressed-2024-01-15/myapp/orders.bson.gz

Archivar en un solo archivo

Use --archive para escribir todo el volcado en un único archivo de archivo en lugar de un árbol de directorios. También puede enviarlo mediante una tubería a gzip o aws s3 cp para realizar en un solo paso la copia de seguridad comprimida y la carga. Este es el formato de volcado más compacto y portátil para automatizar copias de seguridad en CI o mediante tareas cron.

# Archive + compress to a single file
mongodump \
  --uri 'mongodb://localhost:27017' \
  --db myapp \
  --archive=/backups/myapp-2024-01-15.archive.gz \
  --gzip

# Or pipe to gzip
mongodump \
  --uri 'mongodb://localhost:27017' \
  --db myapp \
  --archive | gzip > /backups/myapp-2024-01-15.gz

Uso básico de mongorestore

mongorestore lee un directorio o archivo creado por mongodump e inserta los documentos en un clúster de MongoDB de destino. Vuelve a crear las colecciones con sus definiciones de índices, obtenidas de los archivos .metadata.json, después de cargar los datos. Especifique el clúster de destino con --uri y el directorio o archivo de origen con --dir o --archive.

# Restore the full myapp database from a directory backup
mongorestore \
  --uri 'mongodb://restore-target:27017' \
  --dir /backups/myapp-2024-01-15

# Restore a gzip-compressed directory backup
mongorestore \
  --uri 'mongodb://restore-target:27017' \
  --gzip \
  --dir /backups/myapp-compressed-2024-01-15

Restaurar con un nombre de base de datos diferente

De forma predeterminada, mongorestore restaura la base de datos con el mismo nombre que tenía en el volcado. Use --nsFrom y --nsTo, es decir, espacio de nombres de origen y de destino, para restaurar con un nombre de base de datos o colección diferente. Esto es esencial al clonar datos de producción en una base de datos de staging con otro nombre.

# Restore 'myapp' from dump into 'myapp_staging'
mongorestore \
  --uri 'mongodb://localhost:27017' \
  --nsFrom 'myapp.*' \
  --nsTo 'myapp_staging.*' \
  --dir /backups/myapp-2024-01-15

La opción --drop al restaurar

Al igual que mongoimport, mongorestore tiene una opción --drop que elimina cada colección antes de restaurarla. Sin --drop, mongorestore combina los documentos restaurados con los datos existentes, lo que resulta útil para restauraciones parciales. Con --drop, obtiene un reemplazo limpio de la colección, lo que es más seguro para restauraciones completas de bases de datos y evita mezclar datos obsoletos con la copia de seguridad.

# Drop and fully replace all collections during restore
mongorestore \
  --uri 'mongodb://localhost:27017' \
  --db myapp \
  --drop \
  --dir /backups/myapp-2024-01-15/myapp

Restauración paralela con --numParallelCollections

En bases de datos con muchas colecciones, mongorestore puede restaurar varias colecciones en paralelo. Use --numParallelCollections, cuyo valor predeterminado es 4, para aumentar el paralelismo en servidores con gran capacidad de E/S. Un mayor número de restauraciones paralelas reduce el tiempo total de restauración, pero aumenta el uso de memoria y CPU tanto en el cliente como en el servidor.

# Restore 8 collections in parallel
mongorestore \
  --uri 'mongodb://restore-target:27017' \
  --dir /backups/myapp-2024-01-15 \
  --numParallelCollections 8

Automatizar copias de seguridad con una tarea cron

Automatice las copias de seguridad diarias ejecutando un script de shell desde una tarea cron. El script crea un directorio de copia de seguridad con una marca de tiempo, ejecuta mongodump, comprime el resultado y, opcionalmente, lo carga en S3 u otro almacenamiento remoto. Compruebe siempre el código de salida de mongodump para detectar copias de seguridad fallidas antes de sobrescribir la copia anterior.

#!/bin/bash
DATE=$(date +%Y%m%d)
BACKUP_DIR="/backups/myapp-$DATE"

mongodump \
  --uri "$MONGO_URI" \
  --db myapp \
  --gzip \
  --out "$BACKUP_DIR"

if [ $? -eq 0 ]; then
  echo "Backup successful: $BACKUP_DIR"
else
  echo "Backup FAILED!"
  exit 1
fi

Copias de seguridad en un momento concreto en Atlas

MongoDB Atlas proporciona copias de seguridad automatizadas Point-in-Time (PIT) que capturan instantáneas cada 6 horas y permiten restaurar cualquier segundo dentro del período de retención, de hasta 35 días en los niveles M10 o superiores. Las copias de seguridad de Atlas no utilizan mongodump; aprovechan instantáneas a nivel del sistema de archivos en el nivel del motor de almacenamiento para realizar copias sin impacto. En MongoDB autogestionado, mongodump es el mecanismo principal de copia de seguridad, pero es una copia de seguridad lógica y no puede capturar transacciones en curso.

Comprobación rápida

Compruebe su comprensión de los conceptos de MongoDB y las bases de datos NoSQL de esta lección.

Resumen de la lección

En esta lección ha aprendido que mongodump crea copias de seguridad BSON binarias que conservan toda la información de tipos, que mongorestore lee esos volcados y vuelve a crear las colecciones con sus índices y que --drop, --nsFrom/--nsTo y --gzip son opciones esenciales para los flujos de trabajo de copias de seguridad en producción. A continuación escribiremos scripts de carga inicial de Node.js para cargar datos en MongoDB mediante programación durante el desarrollo.

Gratis para empezar

Aprende JavaScript con un tutor de IA — gratis

Escribe y ejecuta código real en tu navegador, obtén ayuda instantánea de un tutor de IA disponible 24/7 y continúa donde lo dejaste en la web o en la aplicación.

Cursos
30
Lecciones
120

Preguntas frecuentes

¿La lección «mongodump y mongorestore para copias de seguridad completas» es gratis?

Sí — el texto completo de «mongodump y mongorestore para copias de seguridad completas» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de MongoDB Academy, actualiza a CoddyKit PRO. El curso de MongoDB Academy incluye 4 lecciones en total.

¿Qué aprenderé en «mongodump y mongorestore para copias de seguridad completas»?

Creará un volcado BSON completo de una base de datos y lo restaurará en otro clúster con mongorestore. Practicas MongoDB Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar MongoDB Academy?

No se requiere experiencia previa. MongoDB Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 4.

¿Cuánto tiempo toma la lección «mongodump y mongorestore para copias de seguridad completas»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de MongoDB Academy?

Sí. Cada lección de MongoDB Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. mongoimport: carga de archivos JSON y CSV
  2. mongoexport: volcado de colecciones en archivos
  3. mongodump y mongorestore para copias de seguridad completas
  4. Carga inicial de datos con scripts de Node.js
← Volver a MongoDB Academy