Wie erstelle ich einen MongoDB-Speicherauszug meiner Datenbank?

163

Welchen Befehl verwende und führe ich aus?

TIMEX
quelle
Nur eine Single mongodumpohne Flaggen und Sie erhalten Dump- Ordner
Ivan Aracki

Antworten:

82

Verwendung 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

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

Earldouglas
quelle
4
Informationen zum Einfügen
Donal Lafferty
Auf welchem ​​Mongodb-Server wird die Datenbank gespeichert?
Weltraum Erde
157

Um Ihre Datenbank für die Sicherung zu sichern, rufen Sie diesen Befehl auf Ihrem Terminal auf

mongodump --db database_name --collection collection_name

Um Ihre Sicherungsdatei in Mongodb zu importieren, können Sie den folgenden Befehl auf Ihrem Terminal verwenden

mongorestore --db database_name path_to_bson_file
saimadhu.polamuri
quelle
2
Welche Bedeutung hat metadata.json für die Wiederherstellung?
Nabin
103

Sie können auch gzipeine Sicherungskopie einer Sammlung erstellen und die Sicherung im laufenden Betrieb komprimieren:

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

oder mit einem Datum im Dateinamen:

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

Update:
Sichern Sie alle Sammlungen einer Datenbank in einem Datumsordner. Die Dateien werden gziped:

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

Oder für ein einzelnes Archiv:

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

Oder wenn Mongodb im Docker läuft:

docker exec <CONTAINER> sh -c 'exec mongodump --db somedb --gzip --archive' > dump_`date "+%Y-%m-%d"`.gz
r03
quelle
1
sagt: FEHLER: Ich weiß nicht, was ich mit der Datei machen soll! Gunizpped und versucht `mongorestore --db db_name 'gunzipped file'
amitchhajer
2
Tippfehler: "-db" => "--db"
Vivien
7
In Version 3.2 mongodumpoder höher können Sie die --gzipOption verwenden, um dies zu tun: mongodump_manpage und die gleiche Option für mongorestore
Boop
1
@ Pyrejkee, stellen Sie besser neue Fragen zu diesen Dingen als einen Kommentar. (Datum auf Windows ist sehr unterschiedlich)
r03
68

Dieser Befehl erstellt einen Speicherauszug der angegebenen Datenbank im json- und bson-Format.

mongodump -d <database name> -o <target directory>
Jatin
quelle
14

Es gibt ein Dienstprogramm namens: mongodump In der Mongo-Befehlszeile können Sie Folgendes eingeben:

>./mongodump

Mit dem obigen Befehl wird ein Speicherauszug aller Datenbanken auf Ihrem lokalen Host erstellt. Um einen Dump einer einzelnen Sammlung zu erstellen, verwenden Sie:

./mongodump --db blog --collection posts

Schauen Sie sich an: Mongodump

aditya_gaur
quelle
11

Sie müssen die Eingabeaufforderung als Administrator in einem Ordner öffnen, in dem Ihr Mongo installiert ist (in meinem Fall: C: \ Programme \ MongoDB \ Server \ 3.4 \ bin). Wenn Sie Ihre gesamte Datenbank sichern möchten, können Sie einfach Folgendes verwenden:

mongodump --db database_name

Sie haben auch die Möglichkeit, nur bestimmte Sammlungen oder alle bis auf bestimmte Sammlungen zu sichern.

Wenn Sie nur eine Sammlung sichern möchten (z. B. Benutzer):

mongodump  --db database_name --collection users

Wenn Sie alle außer der Benutzersammlung sichern möchten:

mongodump  --db database_name --excludeCollection=users

Es ist auch möglich, den Speicherauszug in eine Archivdatei auszugeben:

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

Sichern / Wiederherstellen von Mongodb mit Timing.

Backup:

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

--db Argument für den Datenbanknamen

--out Argument für den Ausgabepfad

Wiederherstellen:

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

--drop Argument für Drop-Datenbank vor Wiederherstellung

Zeitliche Koordinierung:

Sie können crontab für die zeitliche Sicherung verwenden:

sudo crontab -e

Es öffnet sich mit Editor (zB Nano)

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

Backup jeden Tag um 03:03 Uhr

Abhängig von Ihrer MongoDB-Datenbankgröße wird Ihnen möglicherweise bald der Speicherplatz mit zu vielen Sicherungen ausgehen. Aus diesem Grund wird auch empfohlen, die alten Backups regelmäßig zu bereinigen oder zu komprimieren. Um beispielsweise alle Sicherungen zu löschen, die älter als 7 Tage sind, können Sie den folgenden Befehl bash verwenden:

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

Löschen Sie alle Backups, die älter als 7 Tage sind

Viel Glück.

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

ShahRokh
quelle
8

Sie können Ihre Datenbank sichern und mit dem folgenden Befehl wiederherstellen

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

Zum Beispiel ist mein Datenbankname Tracking Ich habe Dump im Dump-Ordner

mongodb  -d tracking -o dump

Dump wiederherstellen

mongorestore -d <databasename> <dum_path>

mongorestore -d tracking  dump/tracking
Nanhe Kumar
quelle
8

Der folgende Befehl stellt eine Verbindung zum Remote-Server her, um eine Datenbank zu sichern:

<> Optionale Parameter verwenden sie, wenn Sie sie benötigen

  • Host - Hostname Port
  • Listening Port Benutzername
  • Benutzername von db db
  • db name ssl
  • sichere Verbindung aus
  • Ausgabe in einen erstellten Ordner mit einem Namen

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

Michael Horojanski
quelle
Für diejenigen, die diesen Fehler erhalten, nachdem sie die oben vorgeschlagenen Befehlszeilenoptionen für das Parsen von Abfragefehlern ausgeführt haben: unbekannte Option "ssl". Versuchen Sie, die obige Abfrage auszuführen, nachdem Sie --ssl entfernt haben. es hat bei mir funktioniert. Danke.
Anurag_BEHS
4

cmd ->

C:\Program Files\MongoDB\Server\3.2\bin>mongodump.exe --db Dintest
Arnav
quelle
1
Einfache und schnellste Option
Ignacio Ara
Vielen Dank Arnav, sehr geschätzt.
HassanSh__3571619
2

Ist Ihre Datenbank im lokalen System. Dann geben Sie den folgenden Befehl ein. für Linux-Terminal

mongodump -h SERVER_NAME:PORT -d DATABASE_NAME

Wenn Datenbankbenutzer und Passwort vorhanden sind, finden Sie unten den Code.

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

Dies funktionierte sehr gut in meinem Linux-Terminal.

Pooja Khatri
quelle
1

Der folgende Befehl funktioniert, um einen Speicherauszug von mongo db zu erstellen.

mongodump -d -o

Unter Windows: Versuchen Sie dies, wobei c: \ mongodump der Speicherort der Dump-Datei ist. Es werden Metadaten in JSON erstellt und im Bson-Format gesichert

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

Bhasker Der Navigator
quelle
1

exportieren

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

importieren

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

Sie können auch ein Sicherungsskript unter Windows erstellen. Denken Sie daran, Winrar zu% PATH% hinzuzufügen.

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 !!!!!
user956584
quelle
0

Mongo Dump und Wiederherstellung mit Uri zu lokalen

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

Wenn Sie --colletion COLLECTION_NAME nicht angeben, wird die gesamte Datenbank ausgegeben.

smartworld-dm
quelle
0

Nehmen Sie ein Mongodb-Backup für eine bestimmte Datenbank und löschen Sie das 7 Tage alte Backup mit dem Befehl 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
quelle
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
quelle
0

Verwenden Sie "Pfad" für Windows. Andernfalls wird der Fehler wie folgt angezeigt: Positionsargumente nicht zulässig

Yogesh Chavan
quelle
-4

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

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

Anjankumar HN
quelle
1. Mongodump - ist ein Befehl zum Erstellen eines Mongo-Dumps, zusammen mit Informationen zur Spezifikation. 2. -h steht für Ihren Mongodb-Hostnamen. 3. -u steht für Ihren Mongodb-Benutzernamen. 4. -p steht für Passwort. 5. --db repräsentiert den Datenbanknamen, den wir für den Dump benötigen. 6. --port repräsentiert den Port, den Ihr Mongo ausführt. 7. --out repräsentiert das Ziel Ihres Dumps mit Namen.
Anjankumar HN