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.
Considerations
Implementaciones
Las utilidades mongorestore y mongodump funcionan con volcados de datos BSON y son útiles para crear copias de seguridad de implementaciones pequeñas. Para copias de seguridad resilientes y sin interrupciones, utilice instantáneas del sistema de archivos o instantáneas de disco a nivel de bloque con Cloud Backups de MongoDB Atlas.
Nota
Realiza copias de seguridad de clústeres fragmentados con MongoDB Atlas
Para usar mongodump y como estrategia de copia de seguridad para clústeres fragmentados, consulte Copia de seguridad de un mongorestoreclúster fragmentado autogestionado con un volcado 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:
Impactos en el rendimiento
Debido a mongodump que y interactúan mongorestore mongod con una instancia en ejecución, pueden afectar el rendimiento de la base de datos. Estas herramientas generan tráfico y obligan a la base de datos a leer todos los datos a través de la memoria. Cuando MongoDB lee datos a los que se accede con poca frecuencia, elimina los datos a los que se accede con frecuencia, lo que degrada el rendimiento para la carga de trabajo habitual de la base de datos.
Al hacer copias de seguridad de datos con las herramientas de MongoDB, .sigue estas pautas:
Etiqueta los archivos para identificar los contenidos de la copia de seguridad y la hora de la copia de seguridad.
Si el impacto en el rendimiento de
mongodumpy es inaceptable,mongorestoreutilice una alternativa como las instantáneas del sistema de archivos o las copias de seguridad enla nube en MongoDB Atlas.Para garantizar que pueda realizar una copia de seguridad consistente
mongodump--oplogde un conjunto de réplicas, debe utilizar la opción para capturar las escrituras recibidas durante las operaciones de copia de seguridad o detener todas las escrituras en el conjunto de réplicas durante la duración de la copia de seguridad.Para sets de réplicas de clústeres, consulte Hacer una copia de seguridad de un clúster particionado autogestionado con un vaciado de base de datos.
Verifica tus copias de seguridad restaurándolas en una implementación de prueba.
Para reducir las inconsistencias en las copias de seguridad en un clúster fragmentado, detén el balanceador, todas las operaciones de escritura y cualquier transformación de esquema durante la copia de seguridad.
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:
Formato de salida
Losmongorestore formatos y pueden generar datos en un archivo de archivo, que es una alternativa de archivo único a los múltiples archivos BSON. Los archivos de archivo son formatos especiales que admiten escrituras de archivos no contiguos. Permiten realizar copias de seguridad simultáneas desde MongoDB y restauraciones en MongoDB. Además, los archivos de archivo optimizan las operaciones de entrada/salida del disco durante la copia de seguridad y la restauración.mongodump
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,--archive consulte la opción.
Copias de seguridad obsoletas
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.
Procedimientos
Realice una copia de seguridad de una base de datos con mongodump
La mongodump utilidad realiza copias de seguridad de los datos conectándose a un en mongod ejecución. Puede realizar copias de seguridad de un servidor, base de datos o colección completos, o utilizar una consulta para realizar copias de seguridad de parte de una colección. mongodump excluye el contenido de la local base de datos 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:
Especifica el nombre del host y el puerto en
--host:mongodump --host="mongodb0.example.com:27017" <additional_options> Especifica
--hosty--portpor 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 volcado a una base de datos o colección específica, utilice --db --collectiony:
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.
Acceso requerido
Para ejecutar en una implementación mongodump de MongoDB con control de acceso habilitado, debe tener privilegios que otorguen find la acción para cada base de datos que se vaya a respaldar. El backup rol integrado proporciona los privilegios necesarios para realizar copias de seguridad de todas 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.
Especifica Host y Puerto
Utilice --host y para conectarse a una instancia --port 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.
Cree copias de seguridad mediante Oplogs
La --oplog opción recopila entradas de oplog durante la copia de seguridad para que pueda restaurar 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. Utilice esto junto con para restaurar una copia de seguridad que refleje el momento exacto en mongorestore --oplogReplay que mongodump se completó.
Restaurar una base de datos con mongorestore
La utilidad restaura una copia de seguridad binaria creada mongorestore por mongodump conectándose directamente a una instancia en mongod ejecución. Por defecto, mongorestore busca una copia de seguridad de la base de datos en el dump/ directorio y puede restaurar una copia de seguridad completa o un subconjunto.
Nota
Todas las colecciones de MongoDB tienen UUID por defecto. Cuando MongoDB realiza la restauración de colecciones, las colecciones restauradas conservan sus UUID originales. Al efectuar la restauración de una colección en la que no estaba presente un 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.
Control de acceso
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 recopilación o si system.profile ejecuta --oplogReplay con:
| Si los datos de respaldo incluyen Tanto los roles incorporados |
| Para ejecutar con, Conceder únicamente a los usuarios que deban ejecutar |
Especifica Host y Puerto
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 autenticarse, incluya--usernamey--authenticationDatabase. Omita--passwordpara que mongorestore solicite la contraseña:
mongorestore \ --host=mongodb1.example.net \ --port=3017 \ --username=user \ --authenticationDatabase=admin \ /opt/backup/mongodump-1
Usa un archivo Oplog para restaurar datos
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.
Utilice para --objcheck --drop validar la integridad del documento durante la inserción, o para eliminar cada colección antes de restaurarla.