¿Cómo creo un volcado MongoDB de mi base de datos?

Respuestas:

82

Uso mongodump:

$ ./mongodump --host prod.example.com
connected to: prod.example.com
all dbs
DATABASE: log    to   dump/log
        log.errors to dump/log/errors.bson
                713 objects
        log.analytics to dump/log/analytics.bson
                234810 objects
DATABASE: blog    to    dump/blog
        blog.posts to dump/log/blog.posts.bson
                59 objects
DATABASE: admin    to    dump/admin

Fuente: http://www.mongodb.org/display/DOCS/Import+Export+Tools

Earldouglas
fuente
44
Para poner los resultados en un solo archivo comprimido, consulte unix.stackexchange.com/questions/93139/…
Donal Lafferty
¿En el servidor mongodb en qué lugar se almacenará la base de datos?
espacio tierra
157

Para volcar su base de datos para respaldo, llame a este comando en su terminal

mongodump --db database_name --collection collection_name

Para importar su archivo de respaldo a mongodb puede usar el siguiente comando en su terminal

mongorestore --db database_name path_to_bson_file
saimadhu.polamuri
fuente
2
¿Cuál es el significado de metadata.json para la restauración?
Nabin
103

También puede usar gzippara realizar copias de seguridad de una colección y comprimir la copia de seguridad sobre la marcha:

mongodump --db somedb --collection somecollection --out - | gzip > collectiondump.gz

o con una fecha en el nombre del archivo:

mongodump --db somedb --collection somecollection --out - | gzip > dump_`date "+%Y-%m-%d"`.gz

Actualización:
haga una copia de seguridad de todas las colecciones de una base de datos en una carpeta de fecha. Los archivos están gziped:

mongodump --db somedb --gzip --out /backups/`date +"%Y-%m-%d"`

O para un solo archivo:

mongodump --db somedb --gzip --archive > dump_`date "+%Y-%m-%d"`.gz

O cuando mongodb se está ejecutando dentro de la ventana acoplable:

docker exec <CONTAINER> sh -c 'exec mongodump --db somedb --gzip --archive' > dump_`date "+%Y-%m-%d"`.gz
r03
fuente
1
dice: ERROR: ¡no sé qué hacer con el archivo! Gunizpped e intentó `mongorestore --db db_name 'gunzipped file'
amitchhajer
2
error tipográfico: "-db" => "--db"
Vivien
77
En la versión 3.2 mongodumpo superior, puede usar la --gzipopción para hacer eso: mongodump_manpage y la misma opción para mongorestore
Boop,
1
@Pyrejkee, mejor haz nuevas preguntas para estas cosas en lugar de un comentario. (la fecha en Windows es muy diferente)
r03
68

Este comando hará un volcado de la base de datos dada en formato json y bson.

mongodump -d <database name> -o <target directory>
jatin
fuente
14

Hay una utilidad llamada: mongodump En la línea de comando de mongo puede escribir:

>./mongodump

Lo anterior creará un volcado de todas las bases de datos en su host local. Para hacer un volcado de una sola colección, use:

./mongodump --db blog --collection posts

Echa un vistazo a: mongodump

aditya_gaur
fuente
11

Debe abrir el símbolo del sistema como administrador en una carpeta donde está instalado su Mongo (en mi caso: C: \ Archivos de programa \ MongoDB \ Server \ 3.4 \ bin). Si desea volcar toda su base de datos, puede usar:

mongodump --db database_name

También tiene la posibilidad de volcar solo ciertas colecciones, o volcar todas las colecciones excepto ciertas.

Si desea volcar solo una colección (por ejemplo, usuarios):

mongodump  --db database_name --collection users

Si desea volcar todo menos la colección de usuarios:

mongodump  --db database_name --excludeCollection=users

También es posible enviar el volcado a un archivo comprimido:

mongodump --archive=test.archive --db database_name
Jery
fuente
10

Copia de seguridad / Restaurar Mongodb con tiempo.

Apoyo:

sudo mongodump --db db_name --out /path_of_your_backup/`date +"%m-%d-%y"`

--db argumento para el nombre de databse

--out argumento para la ruta de salida

Restaurar:

sudo mongorestore --db db_name --drop /path_of_your_backup/01-01-19/db_name/

--drop argumento para soltar databse antes de restaurar

Sincronización:

Puede usar crontab para la copia de seguridad del tiempo:

sudo crontab -e

Se abre con el editor (por ejemplo, nano)

3 3 * * * mongodump --out /path_of_your_backup/`date +"%m-%d-%y"`

copia de seguridad todos los días a las 03:03 a.m.

Dependiendo de los tamaños de su base de datos MongoDB, es posible que pronto se quede sin espacio en disco con demasiadas copias de seguridad. Es por eso que también se recomienda limpiar las copias de seguridad antiguas regularmente o comprimirlas. Por ejemplo, para eliminar todas las copias de seguridad anteriores a 7 días, puede usar el siguiente comando bash:

3 1 * * * find /path_of_your_backup/ -mtime +7 -exec rm -rf {} \;

eliminar todas las copias de seguridad anteriores a 7 días

Buena suerte.

ref: https://www.digitalocean.com/community/tutorials/how-to-back-up-restore-and-migrate-a-mongodb-database-on-ubuntu-14-04

ShahRokh
fuente
8

Puede volcar su base de datos y restaurar con el siguiente comando

mongodb  -d <Your_db_name> -o <path of your folder>

por ejemplo, mi nombre de base de datos está rastreando tengo volcado en la carpeta de volcado

mongodb  -d tracking -o dump

Restaurando el basurero

mongorestore -d <databasename> <dum_path>

mongorestore -d tracking  dump/tracking
Nanhe Kumar
fuente
8

El siguiente comando se conecta al servidor remoto para volcar una base de datos:

<> los parámetros opcionales los usan si los necesita

  • host - puerto de nombre de host
  • nombre de usuario del puerto de escucha
  • nombre de usuario de db db
  • db nombre ssl
  • conexión segura
  • salida a una carpeta creada con un nombre

    mongodump --host --port --username --db --ssl --password --out _date + "% Y-% m-% d"

Michael Horojanski
fuente
Para aquellos que reciben este error después de ejecutar las opciones de línea de comando de análisis de consulta sugeridas: opción desconocida "ssl". Intente ejecutar la consulta anterior después de eliminar --ssl. funcionó para mí. Gracias.
Anurag_BEHS
4

cmd ->

C:\Program Files\MongoDB\Server\3.2\bin>mongodump.exe --db Dintest
arnav
fuente
1
Opción fácil y más rápida
Ignacio Ara
Muchas gracias Arnav, realmente lo aprecio.
HassanSh__3571619
2

Si su base de datos en el sistema local. Luego escribe el siguiente comando. para terminal Linux

mongodump -h SERVER_NAME:PORT -d DATABASE_NAME

Si el usuario y la contraseña de la base de datos están ahí, entonces el código que figura debajo

mongodump -h SERVER_NAME:PORT -d DATABASE_NAME -u DATABASE_USER -p PASSWORD

Esto funcionó muy bien en mi terminal Linux.

Pooja Khatri
fuente
1

El siguiente comando funcionará para descargar volcado de mongo db.

mongodump -d -o

En Windows: pruebe este en el que c: \ mongodump es la ubicación del archivo de volcado, creará metadatos en json y copia de seguridad en formato bson

C: \ MongoDB \ bin> mongodump -d -oc: \ mongodump

Bhasker The Navigator
fuente
1

exportar

mongodump -d <database name> <backup-folder>

importar

mongorestore -d <database name> <backup-folder>
Fayaz
fuente
0

O puede hacer un script de respaldo en Windows, recuerde agregar Winrar a% PATH%

bin\mongodump --db=COL1 -o D:\BACK\COL1
rar.exe a -ep1 -r COL1.rar COL1
rename COL1.rar "COL1_%date:~10,4%_%date:~7,2%_%date:~4,2%_%time:~0,2%_%time:~3,2%.rar"

#rmdir /s /q COL1 -> don;t run this on your mongodb/ dir !!!!!
usuario956584
fuente
0

Mongo volcar y restaurar con uri a local

mongodump --uri "mongodb: // NOMBRE DE USUARIO: CONTRASEÑA @ IP_OR_URL: PORT / DB_NAME" - colección COLLECTION_NAME -o LOCAL_URL

Si no especifica --colletion COLLECTION_NAME, volcará toda la base de datos.

smartworld-dm
fuente
0

tome la copia de seguridad de mongodb para una base de datos particular y elimine la copia de seguridad de 7 días usando el comando bin sh: -

#!/bin/bash

MONGO_DATABASE="nexgtv_16"
APP_NAME="test"
MONGO_HOST="127.0.0.1"
MONGO_PORT="27017"
TIMESTAMP=`date +%F-%H%M`
MONGODUMP_PATH="/usr/bin/mongodump"
BACKUPS_DIR="/home/mongodbbackups/backups/$APP_NAME"
BACKUP_NAME="$APP_NAME-$TIMESTAMP"
$MONGODUMP_PATH -d $MONGO_DATABASE
mkdir -p $BACKUPS_DIR
mv dump $BACKUP_NAME
tar -zcvf $BACKUPS_DIR/$BACKUP_NAME.tgz $BACKUP_NAME
rm -rf $BACKUP_NAME
find /home/mongodbbackups/backups/test/ -mindepth 1 -mtime +7 -delete
manoj tiwari
fuente
0
 Use -v to see progress of backup data
    mongodump -v --db dbname --out /pathforbackup/NewFolderforBackupData

 you can use it for restore also
    mongorestore -v --db dbname --drop /pathforbackup/NewFolderforBackupData/dbname

with multile v like -vvvv you will get more information
Nivrutti
fuente
0

use "ruta" para windows. De lo contrario, da el error como: argumentos posicionales no permitidos

Yogesh Chavan
fuente
-4

mongodump -h hostname -u dbusername -p dbpassword --db dbname --port portnumber --out / path / folder

mongodump -h hostname -u dbusername -p dbpassword --db dbname --port portnumber --out /path/folder.gz

Anjankumar HN
fuente
1. mongodump: es un comando para crear un volcado de mongo junto con la necesidad de información sobre la especificación. 2. -h representa tu nombre de host mongodb. 3. -u representa tu nombre de usuario mongodb. 4. -p representa la contraseña. 5. --db representa el nombre de la base de datos que necesitamos para volcar. 6. --port representa el puerto que está ejecutando tu mongo. 7. --out representa el destino de tu volcado con nombre.
Anjankumar HN