Come posso creare un dump MongoDB del mio database?


Risposte:


82

Utilizzare 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

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


4
Per inserire i risultati in un singolo file compresso, vedere unix.stackexchange.com/questions/93139/…
Donal Lafferty,

Sul server mongodb in quale posizione verrà archiviato il database?
space earth,

157

Per scaricare il database per il backup, chiamare questo comando sul terminale

mongodump --db database_name --collection collection_name

Per importare il tuo file di backup su mongodb puoi usare il seguente comando sul tuo terminale

mongorestore --db database_name path_to_bson_file

2
Qual è il significato di metadata.json per il ripristino?
Nabin

103

È inoltre possibile utilizzare gzipper eseguire il backup di una raccolta e comprimere il backup al volo:

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

o con una data nel nome del file:

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

Aggiornamento:
esegue il backup di tutte le raccolte di un database in una cartella della data. I file sono compressi con gzip:

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

O per un singolo archivio:

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

O quando mongodb è in esecuzione nella finestra mobile:

docker exec <CONTAINER> sh -c 'exec mongodump --db somedb --gzip --archive' > dump_`date "+%Y-%m-%d"`.gz

1
dice: ERRORE: non so cosa fare con il file! Gunizpped e provato `mongorestore --db nome_db 'file gunzipped'
amitchhajer

2
errore di battitura: "-db" => "--db"
Vivien

7
Nella versione 3.2 mongodumpo successiva è possibile utilizzare l' --gzipopzione per farlo: mongodump_manpage e la stessa opzione per mongorestore
Boop,


1
@Pyrejkee, meglio fare nuove domande per queste cose invece di un commento. (la data su Windows è molto diversa)
r03

68

Questo comando eseguirà un dump di un determinato database in formato json e bson.

mongodump -d <database name> -o <target directory>

14

Esiste un'utilità chiamata: mongodump Nella riga di comando di mongo è possibile digitare:

>./mongodump

Quanto sopra creerà un dump di tutti i database sul tuo localhost. Per eseguire il dump di una singola raccolta utilizzare:

./mongodump --db blog --collection posts

Dai un'occhiata a: mongodump


11

È necessario aprire il prompt dei comandi come amministratore in una cartella in cui è installato Mongo (nel mio caso: C: \ Programmi \ MongoDB \ Server \ 3.4 \ bin). Se vuoi scaricare l'intero database, puoi semplicemente usare:

mongodump --db database_name

Hai anche la possibilità di scaricare solo determinate raccolte o di scaricare tutte le raccolte tranne alcune.

Se si desidera eseguire il dump di una sola raccolta (ad esempio utenti):

mongodump  --db database_name --collection users

Se desideri scaricare tutti tranne la raccolta utenti:

mongodump  --db database_name --excludeCollection=users

È anche possibile eseguire l'output del dump in un file di archivio:

mongodump --archive=test.archive --db database_name

10

Mongodb di backup / ripristino con tempistica.

Backup:

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

--db argomento per il nome del database

--out argomento per il percorso di output

Ristabilire:

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

--drop argomento per drop databse prima del ripristino

Timing:

È possibile utilizzare crontab per il backup dei tempi:

sudo crontab -e

Si apre con l'editor (ad es. Nano)

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

eseguire il backup ogni giorno alle 03:03

A seconda delle dimensioni del database MongoDB, si potrebbe presto esaurire lo spazio su disco con troppi backup. Ecco perché si consiglia anche di pulire regolarmente i vecchi backup o di comprimerli. Ad esempio, per eliminare tutti i backup più vecchi di 7 giorni è possibile utilizzare il seguente comando bash:

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

elimina tutti i backup più vecchi di 7 giorni

In bocca al lupo.

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


8

È possibile scaricare il database e ripristinarlo con il seguente comando

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

ad esempio il mio nome di database sta monitorando ho il dump nella cartella dump

mongodb  -d tracking -o dump

Ripristino della discarica

mongorestore -d <databasename> <dum_path>

mongorestore -d tracking  dump/tracking

8

Il comando seguente si connette al server remoto per scaricare un database:

<> parametri opzionali li usano se ne hai bisogno

  • host - porta nome host
  • nome utente della porta di ascolto
  • nome utente di db db
  • nome db ssl
  • connessione sicura fuori
  • output in una cartella creata con un nome

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


Per coloro che ottengono questo errore dopo aver eseguito sopra suggerito errore di query durante l'analisi delle opzioni della riga di comando: opzione sconosciuta "ssl". Prova a eseguire la query sopra dopo aver rimosso --ssl. ha funzionato per me. Grazie.
Anurag_BEHS


2

Se il tuo database nel sistema locale. Quindi digitare il comando seguente. per terminale Linux

mongodump -h SERVER_NAME:PORT -d DATABASE_NAME

Se l'utente del database e la password ci sono, allora sotto il codice.

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

Questo ha funzionato molto bene nel mio terminale Linux.


2

esportare

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

importare

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

1

Il comando seguente funzionerà per eseguire il dump di mongo db.

mongodump -d -o

Su Windows: prova questo dove c: \ mongodump è il percorso del file di dump, creerà metadati in json e eseguirà il backup in formato bson

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


0

Oppure puoi creare script di backup su Windows, ricorda di aggiungere 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 !!!!!

0

Mongo scarica e ripristina con uri a local

mongodump --uri "mongodb: // USERNAME: PASSWORD @ IP_OR_URL: PORT / DB_NAME" --collection COLLECTION_NAME -o LOCAL_URL

Se non specifichi --colletion COLLECTION_NAME, verrà scaricato l'intero DB.


0

prendere il backup mongodb per un determinato db ed eliminare il backup di 7 giorni usando il 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

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

0

usa "percorso" per windows. Altrimenti fornisce l'errore come: argomenti posizionali non consentiti


-4

mongodump -h hostname -u dbusername -p dbpassword --db dbname --port portnumber --out / percorso / cartella

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


1. mongodump - è un comando per creare una discarica di mongo e abbiamo bisogno di input per la specifica. 2. -h rappresenta il nome host mongodb. 3. -u rappresenta il tuo nome utente mongodb. 4. -p rappresenta la password. 5. --db rappresenta il nome del database di cui è necessario eseguire il dump. 6. --port rappresenta la porta su cui è in esecuzione il mongo. 7. --out rappresenta la destinazione del dump con nome.
Anjankumar HN,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.