Si ha realizado una copia de seguridad de una base de datos mediante mongodump
utilidad, puede restaurarla usando mongorestore
utilidad.
El mongorestore
La utilidad carga datos desde un volcado de base de datos binario creado por mongodump
o la entrada estándar en un mongod
o mongos
instancia.
Buscar herramientas de base de datos MongoDB
El mongorestore
La utilidad es parte del paquete MongoDB Database Tools. Las herramientas de base de datos de MongoDB son un conjunto de utilidades de línea de comandos para trabajar con MongoDB.
Si no está seguro de tener MongoDB Database Tools/mongorestore
instalado. Intente ejecutar el siguiente comando en su Terminal o Símbolo del sistema para verificar:
mongorestore --version
Si no lo tiene, puede usar las instrucciones de instalación en el sitio web de MongoDB para instalarlo en su sistema.
¿Dónde ejecutar los comandos?
Debes ejecutar mongorestore
comandos desde la línea de comandos de su sistema (por ejemplo, una nueva ventana de terminal o símbolo del sistema).
No los ejecutes desde mongo
cáscara.
Restaurar todas las bases de datos desde un directorio
El siguiente comando restaura todas las bases de datos de las que se ha realizado una copia de seguridad en el dump/
directorio:
mongorestore dump/
Este ejemplo restaura las bases de datos a la instancia local que se ejecuta en el puerto predeterminado 27017. Lo sabemos porque no proporcionamos ningún host, puerto, información de autenticación, etc.
Restaurar una base de datos específica
Puede utilizar --nsInclude
parámetro para especificar una base de datos para restaurar.
Ejemplo:
mongorestore --nsInclude="PetHotel.*" dump/
En este caso, restauramos el PetHotel
base de datos. Restauramos todas las colecciones porque usamos un asterisco comodín (*
) para especificar todas las colecciones.
Restaurar una colección específica
También puede utilizar --nsInclude
parámetro para especificar una colección para restaurar.
Ejemplo:
mongorestore --nsInclude="PetHotel.pets" dump/
Este ejemplo restaura la colección de mascotas del PetHotel
base de datos. Si la base de datos no existe, se crea con una sola colección (pets
).
Este ejemplo es casi idéntico al ejemplo anterior, excepto que en lugar de usar el comodín asterisco (*
) para especificar todas las colecciones, especificamos explícitamente la colección que queremos restaurar.
Renombrar una colección
Puede utilizar --nsFrom
y --nsTo
parámetros para especificar un nuevo nombre para la colección.
Ejemplo:
mongorestore --nsFrom='PetHotel.pets' --nsTo='PetHotel.pets2' dump/
Esto cambia el nombre de las pets
colección a pets2
.
Tenga en cuenta que el código anterior también restaura todas las demás bases de datos y colecciones en el dump/
directorio. La única diferencia es que las pets
la colección se restaura como pets2
.
Si solo desea restaurar una sola colección (y cambiarle el nombre en el proceso), use --nsInclude
parámetro.
Ejemplo:
mongorestore --nsFrom='PetHotel.pets' --nsTo='PetHotel.pets2' --nsInclude="PetHotel.pets" dump/
Renombrar una base de datos
Puede utilizar el mismo concepto para cambiar el nombre de una base de datos. Simplemente use el --nsFrom
y --nsTo
parámetros para especificar un nuevo nombre para la base de datos.
Ejemplo:
mongorestore --nsFrom='PetHotel.pets' --nsTo='PetHouse.pets' --nsInclude="PetHouse.*" dump/
En este caso renombré el PetHotel
base de datos a PetHouse
.
Tenga en cuenta que --nsInclude
parámetro especifica el nuevo nombre de la base de datos. Además, uso el comodín asterisco (*
) para restaurar todas las colecciones en esa base de datos.
Excluyendo Colecciones
Puede utilizar --nsExclude
parámetro para especificar una colección para excluir del proceso de restauración.
Ejemplo:
mongorestore --nsInclude="PetHotel.*" --excludeCollection="dogs" dump/
Ese ejemplo restaura todas las colecciones en el PetHotel
base de datos a excepción de los dogs
colección.
Puede usar --nsExclude
varias veces para excluir varias colecciones del proceso de restauración.
Ejemplo:
mongorestore --nsInclude="PetHotel.*" --excludeCollection="dogs" --excludeCollection="employees" dump/
Control de acceso/Autenticación
Los ejemplos anteriores se realizaron en la máquina local utilizando el puerto predeterminado. Esto significó que pudimos ejecutar mongodump
sin especificar cosas como --host
, --port
, --username
, etc.
Aquí hay un ejemplo que usa esos parámetros para autenticarse como homer
:
mongorestore --host=myhost.example.com --port=37017 --username=homer --authenticationDatabase=admin /backups/mongodump-2020-12-30
También podríamos haber usado el --password
parámetro, pero no lo hicimos. Si pasa --user
pero no --password
, se le pedirá la contraseña.
Restaurar desde archivos comprimidos
Puede usar el --gzip
parámetro para restaurar desde archivos comprimidos o flujo de datos creado por mongodump --gzip
.
Ejemplo:
mongorestore --gzip --nsInclude="krankykranes.*" dump3/
Modo silencioso
Puedes usar el --quiet
parámetro para limitar la salida en su terminal o ventana del símbolo del sistema.
mongorestore --quiet
Sin usar esto, probablemente verá una gran lista de vistas, colecciones, etc. que se restauran.
Modo detallado
Por otro lado, puede usar el --verbose
o -v
parámetros a aumentar la salida en su terminal o en la ventana del símbolo del sistema.
mongorestore --verbose
Puede aumentar la verbosidad repitiendo -v
formulario varias veces.
Ejemplo:
mongorestore -vvvv
Más información sobre mongodump
El mongorestore
La utilidad acepta muchos otros parámetros útiles, y también hay varios factores a considerar cuando se usa como parte de una estrategia de copia de seguridad y recuperación.
Ver el mongorestore
documentación en el sitio web de MongoDB para obtener más información.
Otras opciones
mongodump
y mongorestore
son herramientas simples y eficientes para realizar copias de seguridad y restaurar pequeñas implementaciones de MongoDB, pero no son ideales para realizar copias de seguridad de sistemas más grandes.
Consulte Métodos de copia de seguridad de MongoDB en el sitio web de MongoDB para conocer otros métodos para realizar copias de seguridad y restaurar sus bases de datos de MongoDB.