Docs Menu
Docs Home
/ /
Métodos de respaldo
/ / / /

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

Este tutorial describe el proceso para crear copias de seguridad y restaurar datos mediante las utilidades de la línea de comandos. mongorestoreymongodumpproporcionados con MongoDB.

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.

Para un método de copia de seguridad totalmente gestionado, utiliza copias de seguridad en la nube en MongoDB Atlas, que proporcionan un almacenamiento de copia de seguridad localizado utilizando la funcionalidad nativa de snapshots del proveedor de servicios en la nube del clúster.

Las utilidades mongorestore y mongodump funcionan con Los volcados de datos BSON son útiles para crear copias de seguridad de implementaciones pequeñas. Para obtener copias de seguridad resilientes y sin interrupciones, utilice instantáneas del sistema de archivos o instantáneas de disco a nivel de bloque con las 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 operan mediante la interacción con una instancia de mongod en ejecución, pueden tener un impacto en el rendimiento de su base de datos en ejecución. No solo las herramientas generan tráfico para una instancia de base de datos en ejecución, sino que también obligan a la base de datos a leer todos los datos a través de la memoria. Cuando MongoDB lee datos que se utilizan con poca frecuencia, puede desalojar datos a los que se accede con mayor frecuencia, lo que provoca un deterioro en el rendimiento de la carga de trabajo habitual de la base de datos.

Al hacer copias de seguridad de sus datos con las herramientas de MongoDB, considere las siguientes pautas:

  • Etiquete los archivos para que pueda identificar el contenido de la copia de seguridad, así como el punto en el tiempo que refleja la copia de seguridad.

  • Utilice una estrategia alternativa de copia de seguridad como snapshots del sistema de archivos o copias de seguridad en la nube en MongoDB Atlas si el impacto en el rendimiento de mongodump y mongorestore no es aceptable para su caso de uso.

  • Para asegurarse de que mongodump pueda realizar una copia de seguridad coherente de un set de réplicas, debes utilizar la opción --oplog para capturar las escrituras recibidas durante las operaciones de copia de seguridad o detener todas las escrituras en el set de réplicas mientras dure 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.

  • Asegúrese de que sus copias de seguridad sean utilizables al restaurarlas en una implementación de prueba de MongoDB.

  • Para ayudar a reducir la probabilidad de inconsistencias en una copia de seguridad de un clúster fragmentado, debes detener el balanceador, detener todas las operaciones de guardado y detener cualquier transformación de esquema durante la duración de la copia de seguridad.

Tip

Métodos de copia de seguridad para una implementación autogestionada y copias de seguridad en la nube de MongoDB Atlas para obtener más información sobre las copias de seguridad de las instancias de MongoDB. Además, tenga en cuenta la siguiente documentación de referencia para MongoDB Database Tools:

mongorestore y mongodump pueden exportar datos a un archivo de fichero, que es una alternativa de un solo archivo a múltiples archivos BSON. Los archivos de fichero son formatos de propósito especial que admiten escrituras de archivos no contiguos. Permiten realizar copias de seguridad concurrentes desde MongoDB, así como restauraciones a MongoDB. El uso de archivos de fichero optimiza la E/S de disco mientras se ejecutan las operaciones de copia de seguridad y restauración.

También se puede exportar archivos de fichero a la salida estándar (stdout). Escribir en la salida estándar permite la migración de datos a través de redes, reduce la huella de E/S de disco y mejora la 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.

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:

mongodump excluye el contenido de la base de datos local en su resultado.

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.

La mongodump utilidad realiza copias de seguridad de los datos al conectarse a un mongod en ejecución.

La utilidad puede crear una copia de seguridad para todo un servidor, base de datos o colección, o puede utilizar una query para hacer una copia de seguridad solo de una parte de una colección.

Cuando se ejecute mongodump sin ningún argumento, el comando se conecta a la instancia de MongoDB en el sistema local (por ejemplo, localhost) en el puerto 27017 y crea una copia de seguridad de la base de datos llamada dump/ en el directorio actual.

Para hacer una copia de seguridad de los datos de una instancia de mongod que se ejecuta en la misma máquina y en el puerto por defecto de 27017, utilice el siguiente comando:

mongodump

Para especificar el host y el puerto de la instancia de MongoDB, puede:

  • Especifica el nombre de host y el puerto en la --uri string mediante una cadena de conexión SRV o estándar:

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

    mongodump --host="mongodb0.example.com:27017" <additional_options>
  • Especifique el nombre de host y el puerto en el --host y --port:

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

mongodump guardará archivos BSON que contengan una copia de los datos accesibles a través del mongod que escucha en el puerto 27017 del host mongodb.example.net. Consulte Crear copias de seguridad desde las mongod instancias no locales para obtener más información.

Para especificar un directorio de salida diferente, se puede utilizar la opción --out or -o:

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

Para limitar la cantidad de datos incluidos en el vaciado de la base de datos, se puede especificar --db y --collection como opciones para mongodump. Por ejemplo:

mongodump --collection=myCollection --db=test

Esta operación crea un volcado de la colección llamada myCollection de la base de datos test en un subdirectorio dump/ del directorio de trabajo actual.

mongodump sobrescribe los archivos de salida si existen en la carpeta de datos de la copia de seguridad. Antes de ejecutar el comando mongodump varias veces, asegúrese de que ya no necesite los archivos en la carpeta de salida (la que por defecto es la carpeta dump/) o cambie el nombre de las carpetas o archivos.

La opción --oplog con mongodump recopila las entradas del oplog y permite realizar una copia de seguridad en una base de datos activa. Si más adelante se restaura la base de datos desde la copia de seguridad, la base de datos será la misma que cuando se completó el proceso de copia de seguridad.

Con --oplog, mongodump copias todos los datos de la base de datos de origen, así como todas las entradas del oplog desde el principio hasta el final del procedimiento de copia de seguridad. Esta operación, en conjunto con mongorestore --oplogReplay, permite la restauración de una copia de seguridad que refleja el momento específico en el tiempo que corresponde a cuando mongodump completó la creación del archivo de vaciado.

Las opciones --host y --port para mongodump permiten hacer la conexión a un host remoto y realizar copias de seguridad desde él. Se debe considerar el siguiente ejemplo:

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

En cualquier comando mongodump, se puede, como se indicó anteriormente, especificar las credenciales de nombre de usuario y contraseña para la autenticación de la base de datos.

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:

Para restaurar datos en una implementación de MongoDB que tiene control de acceso habilitado, el rol restore proporciona los privilegios necesarios para restaurar datos desde las copias de seguridad si los datos no incluyen datos de la colección system.profile y se ejecuta mongorestore sin la opción --oplogReplay.

Si los datos de la copia de seguridad incluyen datos de la colección system.profile o si ejecutas con --oplogReplay, necesitas privilegios adicionales:

system.profile

Si los datos de 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 restaura los documentos system.profile. Por lo tanto, el usuario requiere privilegios adicionales para realizar las acciones 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.

La utilidad mongorestore restaurar una copia de seguridad binaria creada por mongodump. Por defecto, mongorestore busca una copia de seguridad de la base de datos en el directorio dump/.

La utilidad mongorestore restaura los datos al conectarse directamente a un mongod en ejecución.

mongorestore puede restaurar una copia de seguridad completa de la base de datos o un subconjunto de la copia.

Nota

Todas las colecciones de MongoDB tienen UUID predeterminados. Al restaurar colecciones, MongoDB conserva sus UUID originales. Al restaurar una colección sin 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 utilizar mongorestore para conectarse a un mongod activo, se utiliza un comando con el siguiente formato de prototipo:

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

Considera el siguiente ejemplo:

mongorestore /opt/backup/mongodump-1

Aquí, mongorestore importa la copia de seguridad de la base de datos en el directorio /opt/backup/mongodump-1 a la instancia mongod que se ejecuta en la interfaz de localhost en el puerto por defecto 27017.

Para capturar escrituras que puedan ocurrir mientras mongodump se están ejecutando, utiliza mongodump --oplog. mongodump crea un archivo oplog.bson con entradas de oplog para cada escritura que ocurrió durante la ejecución. Puede aplicar las operaciones del registro de operaciones con mongorestore --oplogReplay.

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

Se restauran todos los datos del archivo oplog.bson .

mongorestore --oplogReplay no le permite restaurar datos a un punto arbitrario en el tiempo. Utilice mongorestore --oplogReplay para asegurarse de que los datos restaurados estén actualizados con cualquier guardado que haya ocurrido durante la ejecución 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.

También se puede considerar usar la opción mongorestore --objcheck para verificar la integridad de los objetos mientras los inserta en la base de datos, o se puede considerar la opción mongorestore --drop para descartar cada colección de la base de datos antes de realizar la restauración desde las copias de seguridad.

De forma predeterminada, mongorestore se conecta a una instancia de MongoDB que se ejecuta en la interfaz localhost y en el puerto por defecto (27017). Si deseas realizar la restauración en un host o puerto diferente, utiliza las opciones --host y --port.

El siguiente ejemplo que especifica las opciones --host y --port:

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

Si restaura en una instancia que aplica control de acceso, incluya también el --username y el --authenticationDatabase. Omita la opción --password para que mongorestore solicite la contraseña:

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

Volver

Usar instantáneas

En esta página