Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
Click here >
Docs Menu
Docs Home
/ /

Copia de seguridad y restauración de una implementación autogestionada con las herramientas de MongoDB

Este tutorial cubre la creación de copias de seguridad y la restauración de datos utilizando mongodump y mongorestore.

Para restaurar una copia de seguridad de la implementación autoalojada en una implementación gestionada de MongoDB Atlas, se debe consultar Propaga con mongorestore.

Las utilidades mongorestore y mongodump funcionan con BSON estos vaciados de datos son útiles para crear copias de seguridad de implementaciones pequeñas. Para realizar copias de seguridad resilientes y no disruptivas, utiliza instantáneas del sistema de archivos o instantáneas de disco a nivel de bloque con Copias de seguridad en la nube de MongoDB Atlas.

Nota

Realiza copias de seguridad de clústeres fragmentados con MongoDB Atlas

Para utilizar mongodump y mongorestore como estrategia de respaldo para clústeres particionados, consulte Realizar una copia de seguridad de un clúster particionado autogestionado con un vaciado de base de datos.

Los clústeres particionados también pueden utilizar uno de los siguientes procesos coordinados de copia de seguridad y restauración, que mantienen las garantías de atomicidad de las transacciones entre particiones:

Debido a que mongodump y mongorestore interactúan con una instancia de mongod en ejecución, pueden afectar el rendimiento de la base de datos. Las herramientas generan tráfico y obligan a la base de datos a leer todos los datos en memoria. Cuando MongoDB lee datos que se acceden con poca frecuencia, elimina los datos a los que se accede con frecuencia, degradando el rendimiento de la carga de trabajo regular de la base de datos.

Al hacer copias de seguridad de datos con las herramientas de MongoDB, .sigue estas pautas:

Tip

Para obtener más información, consulta Métodos de copia de seguridad para una Implementación Autogestionada. Para la referencia de Database Tools de MongoDB, consulta:

mongorestore y mongodump pueden enviar datos a un fichero de archivo, el cual es una alternativa de archivo único a múltiples archivos BSON. Los archivos de fichero son formatos de propósito especial que admiten guardados de archivos no contiguos. Permiten copias de seguridad simultáneas desde MongoDB y restauraciones a MongoDB. Los archivos de archivo también optimizan la E/S del disco durante la copia de seguridad y la restauración.

También puedes guardar ficheros en la salida estándar (stdout). Escribir en la salida estándar permite la migración de datos en redes, reducir la E/S de disco y obtener ventajas de concurrencia tanto en las herramientas de MongoDB como en el motor de almacenamiento.

Para obtener más información sobre los archivos de archivo, consulta la opción --archive.

Las copias de seguridad proporcionan una snapshot del estado actual de la base de datos. Cuando restauras a partir de una copia de seguridad, la base de datos restaurada no incluye ningún cambio realizado después de que se haya hecho la copia de seguridad, lo que puede provocar pérdida de datos.

La utilidad mongodump realiza copias de seguridad de los datos conectándose a un mongod en funcionamiento. Puede respaldar un servidor completo, una base de datos o una colección, o usar una query para respaldar parte de una colección. mongodump excluye el contenido de la base de datos local de su salida.

Sin ningún argumento, mongodump se conecta a la instancia de MongoDB en el sistema local en el puerto 27017 y crea una copia de seguridad de la base de datos llamada dump/ en el directorio actual:

mongodump

Para especificar el host y el puerto, utilice uno de los siguientes:

  • Especifique la --uri string utilizando una SRV o una estándar cadena de conexión:

    mongodump --uri="mongodb+srv://username:password@cluster0.example.mongodb.net" <additional_options>
  • Especifica el nombre del host y el puerto en --host:

    mongodump --host="mongodb0.example.com:27017" <additional_options>
  • Especifica --host y --port por separado:

    mongodump --host="mongodb0.example.com" --port=27017 <additional_options>

Para especificar un directorio de salida diferente, utilice --out (o -o):

mongodump --out=/opt/backup/mongodump-1

Para limitar el vaciado a una base de datos o colección específica, use --db y --collection:

mongodump --collection=myCollection --db=test

Esto crea un vaciado de myCollection desde la base de datos test en un subdirectorio dump/ del directorio actual.

mongodump sobrescribir archivos existentes en la carpeta de salida (por defecto: dump/). Antes de ejecutarlo varias veces, realiza una copia de seguridad o renombra la carpeta de salida.

Para ejecutar mongodump contra una implementación de MongoDB que tenga control de acceso habilitado, debe tener privilegios que otorguen la acción de find para cada base de datos que se deba respaldar. El rol incorporado backup proporciona los privilegios necesarios para realizar copias de seguridad de todas y cada una de las bases de datos.

El rol backup proporciona privilegios adicionales para respaldar la colección system.profile que existe cuando se ejecuta con un perfilado de base de datos.

Utiliza --host y --port para conectarte a una instancia remota:

mongodump \
--host=mongodb1.example.net \
--port=3017 \
--username=user \
--password="pass" \
--out=/opt/backup/mongodump-1

Especifique su nombre de usuario y contraseña en cualquier comando de mongodump para autenticarse.

La opción --oplog recopila las entradas de oplog durante la copia de seguridad para que pueda realizar la restauración de la base de datos a su estado en el momento en que se completó la copia de seguridad.

Con --oplog, mongodump copia todos los datos de la base de datos de origen y todas las entradas del oplog desde el principio hasta el final de la copia de seguridad. Usa esto junto con mongorestore --oplogReplay para restaurar una copia de seguridad que refleje el momento exacto en que mongodump se terminó.

La utilidad mongorestore restaura una copia binaria de seguridad creada por mongodump al conectarse directamente a una mongod en ejecución. Por defecto, mongorestore busca una copia de seguridad de la base de datos en el directorio dump/ y puede restaurar una copia de seguridad completa o un subconjunto.

Nota

Todas las colecciones de MongoDB tienen UUIDs por defecto. Cuando MongoDB restaura colecciones, las colecciones restauradas conservan sus UUID originales. Al restaurar una colección en la que no había UUID, MongoDB genera un UUID para la colección restaurada.

Para obtener más información sobre los UUID de colecciones, consulte las Colecciones.

Para conectar mongorestore a una mongod activa:

mongorestore --uri <connection string> <path to the backup>

Por ejemplo, para restaurar desde un directorio:

mongorestore /opt/backup/mongodump-1

Esto restaura la copia de seguridad a la instancia mongod en localhost:27017.

Para restaurar los datos en una implementación que tiene el control de acceso activado, el rol de restore otorga los privilegios necesarios siempre que los datos no incluyan información de la colección system.profile y ejecutes mongorestore sin la opción --oplogReplay.

Necesita privilegios adicionales si los datos de copia de seguridad incluyen datos de la colección system.profile o si ejecuta con --oplogReplay:

system.profile

Si los datos de la copia de seguridad incluyen datos de la colección system.profile y la base de datos de destino no contiene la colección system.profile, mongorestore intenta crear la colección aunque el programa en realidad no restaure documentos system.profile. El usuario necesita privilegios adicionales para realizar acciones de createCollection y convertToCapped en la colección system.profile de una base de datos.

Tanto los roles incorporados dbAdmin como dbAdminAnyDatabase proporcionan los privilegios adicionales.

--oplogReplay

Para ejecutar con --oplogReplay, crea un rol definido por el usuario que tenga anyAction en anyResource.

Se concede solo a los usuarios que deben ejecutar mongorestore con --oplogReplay.

Por defecto, mongorestore se conecta a localhost:27017. Para restaurar en un host o puerto diferente, utilizando --host y --port:

mongorestore --host=mongodb1.example.net --port=3017

Para autenticarte, incluye --username y --authenticationDatabase. Omita --password para que mongorestore solicite la contraseña:

mongorestore \
--host=mongodb1.example.net \
--port=3017 \
--username=user \
--authenticationDatabase=admin \
/opt/backup/mongodump-1

Para capturar los guardados que ocurren mientras mongodump está en ejecución, utiliza --oplog. mongodump crea un archivo oplog.bson con las entradas del oplog para cada escritura durante la ejecución. Aplica esas operaciones con --oplogReplay al restaurar.

Para ver ejemplos, consulta ejemplos de mongodump y de mongorestore.

mongorestore --oplogReplay restablece todos los datos desde oplog.bson pero no permite restablecer a un punto arbitrario en el tiempo. Úselo para garantizar que los datos restaurados reflejen cualquier guardar que se haya realizado durante la ejecutar de mongodump --oplog.

Nota

--oplog está destinado para su uso con sets de réplicas. Para clústeres particionados, incluidos los sets de réplicas que forman parte de un entorno particionado, consulte Hacer una copia de seguridad de un clúster particionado autogestionado con un vaciado de base de datos.

Utiliza --objcheck para validar la integridad del documento durante la inserción, o --drop para descartar cada colección antes de la restauración.

Volver

Copia de seguridad y restauración con snapshots del sistema de archivos

En esta página