Esta página muestra ejemplos de mongorestore.
Ejecute mongorestore desde la línea de comandos del sistema, no desde el
mongo caparazón.
Restauración con control de acceso
En el siguiente ejemplo, mongorestore restaura desde /opt/backup/mongodump-2011-10-24 a una mongod instancia 27017 mongodb1.example.netque se ejecuta en el puerto en el host. --uri La cadena omite la contraseña del usuario para que mongorestore la solicite.
mongorestore --uri="mongodb://user@mongodb1.example.net:27017/?authSource=admin" /opt/backup/mongodump-2011-10-24
Alternativamente, puedes especificar el host, puerto, nombre de usuario y base de datos de autenticación usando --host, --port, --username, y --authenticationDatabase. Omite --password para que mongorestore solicite la contraseña:
mongorestore --host=mongodb1.example.net --port=27017 --username=user --authenticationDatabase=admin /opt/backup/mongodump-2011-10-24
Restaura una colección
Para la restauración de una colección específica, usa --nsInclude, pasando el namespace completo (<database>.<collection>) de la colección.
El siguiente ejemplo restaura la colección denominada purchaseorders en la base de datos test a partir de los archivos correspondientes ubicados en el directorio dump/.
mongorestore --nsInclude=test.purchaseorders dump/
El mongorestore muestra los resultados, incluyendo el número de documentos restaurados:
2019-06-28T19:23:42.858-0400 preparing collections to restore from 2019-06-28T19:23:42.858-0400 reading metadata for test.purchaseorders from dump/test/purchaseorders.metadata.json 2019-06-28T19:23:42.893-0400 restoring test.purchaseorders from dump/test/purchaseorders.bson 2019-06-28T19:23:42.896-0400 restoring indexes for collection test.purchaseorders from metadata 2019-06-28T19:23:42.991-0400 finished restoring test.purchaseorders (6 documents, 0 failures) 2019-06-28T19:23:42.991-0400 6 document(s) restored successfully. 0 document(s) failed to restore.
Si el directorio dump/ no contiene los archivos de datos correspondientes para el namespace especificado, no se restaurarán los datos:
2019-07-08T14:39:57.121-0400. preparing collections to restore from 2019-07-08T14:39:57.121-0400 0 document(s) restored successfully. 0 document(s) failed to restore.
Alternativamente, puedes realizar la restauración de una colección específica usando el --db, --collection, y un archivo .bson:
mongorestore --db=test --collection=purchaseorders dump/test/purchaseorders.bson
2019-06-30T12:21:44.777-0400 checking for collection data in dump/test/purchaseorders.bson 2019-06-30T12:21:44.779-0400 reading metadata for test.purchaseorders from dump/test/purchaseorders.metadata.json 2019-06-30T12:21:44.813-0400 restoring test.purchaseorders from dump/test/purchaseorders.bson 2019-06-30T12:21:44.881-0400 restoring indexes for collection test.purchaseorders from metadata 2019-06-30T12:21:44.987-0400 finished restoring test.purchaseorders (6 documents, 0 failures) 2019-06-30T12:21:44.987-0400 6 document(s) restored successfully. 0 document(s) failed to restore.
Restauración de colecciones mediante comodines
--nsInclude y --nsExclude admiten especificar los namespaces que deseas incluir o excluir de una operación de restauración usando asteriscos como comodines.
El siguiente ejemplo restaura los documentos en el subdirectorio dump/ del directorio actual que coinciden con el patrón especificado del namespace. La instrucción --nsInclude especifica que solo se deben restaurar los documentos en la base de datos transactions mientras que --nsExclude le indica a mongorestore que excluya las colecciones cuyos nombres terminen con _dev. mongorestore restaura los datos en la mongod instancia que se ejecuta en la interfaz localhost en el puerto 27017.
mongorestore --nsInclude='transactions.*' --nsExclude='transactions.*_dev' dump/
Cambia los namespaces de la colección durante la restauración
Para cambiar el namespace de la colección para la restauración, usa las opciones --nsFrom y --nsTo.
Las opciones --nsFrom y --nsTo admiten el uso de asteriscos como comodines y admiten el uso de símbolos de dólar para delimitar variables “comodín” que se usarán en el reemplazo.
Considera una base de datos data que exportaste a un directorio dump/ utilizando mongodump. La base de datos data contiene las siguientes colecciones:
sales_customer1sales_customer2sales_customer3users_customer1users_customer2users_customer3
Utilizando --nsFrom y --nsTo, puedes realizar la restauración de los datos en diferentes namespaces. La siguiente operación:
restaura las
sales_<customerName>colecciones de la base de datosdataa lassalescolecciones de la base de datos<customerName>, yrestaura las colecciones
users_<customerName>auserscolecciones en la base de datos<customerName>.
mongorestore --nsInclude="data.*" --nsFrom="data.$prefix$_$customer$" --nsTo="$customer$.$prefix$"
Copiar o clonar una base de datos
A partir de la versión 4.2, MongoDB remueve los comandos copydb y clone obsoletos.
Como alternativa, los usuarios pueden usar mongodump y mongorestore (con las opciones de mongorestore --nsFrom y --nsTo).
Por ejemplo, para copiar la base de datos test desde una instancia local que se ejecuta en el puerto por defecto 27017 a la base de datos examples en la misma instancia, se puede:
Utilizar
mongodumppara vaciar la base de datostesta un archivomongodump-test-db:mongodump --archive="mongodump-test-db" --db=test Se debe utilizar
mongorestorecon--nsFromy--nsTopara restaurar (con cambio de nombre de la base de datos) desde el archivo:mongorestore --archive="mongodump-test-db" --nsFrom="test.*" --nsTo="examples.*"
Tip
Incluya opciones adicionales según sea necesario, como especificar el URI o host, el nombre de usuario, la contraseña y la base de datos de autenticación.
Restaura desde un fichero de archivo
Para restaurar desde un archivo, ejecuta mongorestore con la nueva opción --archive y el nombre del archivo.
mongorestore --archive=test.20150715.archive
Restauración de una base de datos desde un fichero de archivo
Para restaurar desde un archivo, ejecuta mongorestore con la nueva opción --archive y el nombre del archivo. Por ejemplo, la siguiente operación restaura la base de datos test desde el archivo test.20150715.archive.
mongorestore --archive=test.20150715.archive --nsInclude="test.*"
Restauración a partir de datos comprimidos
mongorestore puede restaurar desde archivos comprimidos o archivos de fichero comprimidos creados por mongodump.
Para restaurar desde un directorio de vaciado que contenga archivos comprimidos, ejecuta mongorestore con la opción --gzip. Por ejemplo, la siguiente operación restaura la base de datos test a partir de los archivos comprimidos situados en el directorio dump por defecto:
mongorestore --gzip --nsInclude="test.*" dump/
Para restaurar desde un archivo comprimido, ejecuta mongorestore con la opción --gzip y la opción --archive. Por ejemplo, la siguiente operación restaura la base de datos test desde el fichero test.20150715.gz.
mongorestore --gzip --archive=test.20150715.gz --nsInclude="test.*"
Para cambiar el namespace de la colección de restauración, usa las opciones --nsFrom y --nsTo con la opción --gzip.
mongorestore --gzip --nsFrom="data.$prefix$_$customer$" --nsTo="$customer$.$prefix$"
Restauración de una colección de series de tiempo
Usa mongosh para crear una colección de series de tiempo. Este ejemplo usa la base de datos test por defecto:
db.createCollection( "weather", { timeseries: { timeField: "timestamp", metaField: "metadata", granularity: "hours" } } )
Inserta documentos de series de tiempo en la colección:
db.weather.insertMany( [ { "metadata": { "sensorId": 5578, "type": "temperature" }, "timestamp": ISODate("2021-05-18T00:00:00.000Z"), "temp": 12 }, { "metadata": { "sensorId": 5578, "type": "temperature" }, "timestamp": ISODate("2021-05-18T04:00:00.000Z"), "temp": 11 }, { "metadata": { "sensorId": 5578, "type": "temperature" }, "timestamp": ISODate("2021-05-18T08:00:00.000Z"), "temp": 11 } ] )
Desde tu terminal, usa mongodump para exportar la colección de series de tiempo al directorio dump/test. Este comando añade system.buckets.weather.bson y weather.metadata.json al directorio:
mongodump --db=test
Utiliza mongorestore para la restauración de los datos en el namespace mongorestore.weather:
mongorestore --host localhost --port 27017 --nsFrom="test.*" --nsTo="mongorestore.*" dump/
Nota
No puedes restaurar el archivo system.buckets.weather.bson por sí solo. Si lo intentas, resulta en un error.
Conéctese a un clúster de MongoDB Atlas usando credenciales de AWS IAM
Nuevo en la versión 100.1.0.
Para conectarse a un clúster de MongoDB Atlas que se haya configurado para admitir la autenticación mediante credenciales de AWS IAM, proporcione un connection string a mongorestore similar al siguiente:
mongorestore 'mongodb+srv://<aws access key id>:<aws secret access key>@cluster0.example.com/testdb?authSource=$external&authMechanism=MONGODB-AWS' <other options>
Conectarse a Atlas usando credenciales de AWS IAM de esta manera utiliza el MONGODB-AWS authentication mechanism y el $external authSource, como se muestra en este ejemplo.
Si utiliza un token de sesión de AWS, proporciónelo también con el valor AWS_SESSION_TOKEN authMechanismProperties, de la siguiente manera:
mongorestore 'mongodb+srv://<aws access key id>:<aws secret access key>@cluster0.example.com/testdb?authSource=$external&authMechanism=MONGODB-AWS&authMechanismProperties=AWS_SESSION_TOKEN:<aws session token>' <other options>
Nota
Si el ID de la clave de acceso de AWS, la clave de acceso secreta o el token de sesión incluyen los siguientes caracteres:
: / ? # [ ] @
esos caracteres deben convertirse utilizando codificación por porcentaje.
Como alternativa, el ID de clave de acceso de AWS, la clave de acceso secreta y, opcionalmente, el token de sesión se pueden proporcionar fuera de la cadena de conexión utilizando las opciones --username, --password y --awsSessionToken, de la siguiente manera:
mongorestore 'mongodb+srv://cluster0.example.com/testdb?authSource=$external&authMechanism=MONGODB-AWS' --username <aws access key id> --password <aws secret access key> --awsSessionToken <aws session token> <other options>
Cuando se proporcionan como parámetros de línea de comandos, estas tres opciones no requieren codificación por porcentaje.
También se pueden establecer estas credenciales en la plataforma usando variables estándar de entorno AWS IAM. mongorestore comprueba las siguientes variables de entorno cuando se usa el MONGODB-AWS authentication mechanism:
AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEYAWS_SESSION_TOKEN
Si se establecen, estas credenciales no necesitan especificarse en la cadena de conexión ni a través de sus opciones explícitas.
Nota
Si se elige usar las variables de entorno de AWS para especificar estos valores, no se pueden mezclar ni combinar con las opciones explícitas o de la cadena de conexión correspondientes para estas credenciales. Se deben utilizar las variables de entorno para el ID de la clave de acceso y la clave de acceso secreta (y el token de sesión si se utiliza), o especificar cada una de estas utilizando las opciones explícitas o de la cadena de conexión.
El siguiente ejemplo establece estas variables de entorno en el shell bash:
export AWS_ACCESS_KEY_ID='<aws access key id>' export AWS_SECRET_ACCESS_KEY='<aws secret access key>' export AWS_SESSION_TOKEN='<aws session token>'
La sintaxis para configurar variables de entorno en otros shells será diferente. Consulta la documentación de tu plataforma para obtener más información.
Puedes comprobar que estas variables de entorno se han establecido con el siguiente comando:
env | grep AWS
Una vez configurado, el siguiente ejemplo se conecta a un clúster de MongoDB Atlas usando estas variables de entorno:
mongorestore 'mongodb+srv://cluster0.example.com/testdb?authSource=$external&authMechanism=MONGODB-AWS' <other options>
Creación y restauración de archivos de copia de seguridad coherentes
Para crear un archivo de copia de seguridad mongodump coherente utilizando entradas de oplog, se debe utilizar la opción mongodump --oplog. Para la restauración de datos del archivo de copia de seguridad, se debe utilizar la opción mongorestore --oplogReplay.
El oplog contiene el historial de las operaciones de guardado en la base de datos.
mongodump resultados:
Documentos de colección, metadatos y opciones.
Definiciones de índices.
Las operaciones de guardar que ocurren durante la ejecución de
mongodump, si se especifica--oplog.
Utilice mongodump con la opción oplog
mongodump --oplog crea un archivo llamado oplog.bson en el nivel superior del directorio de salida mongodump. El archivo contiene operaciones de guardar que ocurren durante la ejecución de mongodump. Las operaciones de guardar que se producen después de que mongodump finalice no se registran en el archivo.
Para respaldar clústeres particionados con mongodump, se puede consultar Respaldar un clúster particionado autogestionado con un vaciado de base de datos.
Utilice mongorestore con la opción oplogReplay
Para restaurar las entradas de oplog del archivo oplog.bson, se debe utilizar mongorestore --oplogReplay. Utilizar mongodump --oplog junto con mongorestore --oplogReplay para asegurarse de que la base de datos esté actualizada y contenga todas las operaciones de guardar que ocurrieron durante la ejecución de mongodump.
Obtén más información
utilidad mongosync para migraciones de clúster a clúster
Migrar o importar datos en Atlas
Realizar copias de seguridad, restauración y archivo de datos en Atlas