Backup & Restore
Möglichkeiten:
- Backup mit mongodump
- Backup auf Dateiebene (filecopy)
Möglichkeiten, welche nur in gemanagten Cloudumgebung zur Verfügung stehen:
- Backup mit Atlas (fully-managed cloud service)
- Backup mit MongoDB Cloud Manager (fully-managed cloud service)
Datenbank-Dump
- Sicherung der gesamten Datenbanken und Collections mit allen Eigenschaften (Indexes, et cetera)
- eignet sich für kleinere und mittlere Umgebungen
- mit BSON-Datendumps
mongodump
- erstellt binäre BSON-Datendumps
mongodump <options> <connection-string>
| Option | Bedeutung |
|---|---|
--host=<hostname><:port>, -h | Hostname und Port des MongoDB deployments |
--authenticationDatabase=<dbname> | Datenbank, welche den Benutzer enthält, mit dem man sich einloggen möchte |
--username=<username>, -u | Benutzername |
--password=<password>, -p | Passwort |
--db=<database>, -d | Datenbank zum Sichern |
--collection=<collection>, -c | Collection zum Sichern |
--out=<path>, -o | Verzeichnis, wohin die BSON Dumpdateien gespeichert werden sollen |
Beispiele:
mongodump --host=localhost --port=27017 \
--authenticationDatabase=admin -u=user -p=password \
--db=database \
--collection=collection \
--out=/path/to/outdirectory
mongodump mongodb://localhost:27017/testdb --out=C:\backup
Dabei sind folgende Befehle gleichwertig:
mongodump --uri="mongodb://mongodb0.example.com:27017" [additional options]
mongodump --host="mongodb0.example.com:27017" [additional options]
mongodump --host="mongodb0.example.com" --port=27017 [additional options]
Referenz: MongoDB Docs - Database Tools - mongodump
mongorestore
- Wiederherstellung der BSON-Datendumps
- überschreibt keine Dokumente, die schon in existierenden Datenbank vorhanden sind (Dokumente mit gleicher id)
mongorestore <options> <connection-string> <directory or file to restore>
| Option | Bedeutung |
|---|---|
--host=<hostname><:port>, -h | Hostname und Port des MongoDB deployments |
--authenticationDatabase=<dbname> | Datenbank, welche den Benutzer enthält, mit dem man sich einloggen möchte |
--username=<username>, -u | Benutzername |
--password=<password>, -p | Passwort |
--db=<database>, -d | Datenbank zum Zurückladen |
--collection=<collection>, -c | Collection zum Zurückladen |
Beispiele:
mongorestore --host=localhost --port=27017 \
--authenticationDatabase=admin -u=user -p=password \
--db=database \
/path/to/indirectory
mongorestore mongodb://localhost:27017/backup-test "C:\backup"
Referenz: MongoDB Docs - Database Tools - mongorestore
Dateien-Sicherung - filecopy
- Backup auf Dateiebene
- z.B. durch
cpoderrsync - da dies keine point in time-Aktion ist, ist es wichtig, den MongoDB-Server vorher zu stoppen, um Datenkorruption zu vermeiden
- unterstützt das Dateisystem Snapshots, kann auch dies zur Datenbanken-Sicherung verwendet werden
Export und Import
- Exportieren und Importieren von Daten aus Collections bzw. Dokumenten
- Sicherung von Daten der Collections bzw. Dokumenten (ohne Indexes und Eigenschaften)
mongoexport
- Export von Daten
mongoexport --collection=<coll> <options> <connection-string>
| Option | Bedeutung |
|---|---|
--host/h =<hostname><:port> | Hostname und Port des MongoDB deployments |
--db/-d =<database> | Datenbank zum Exportieren |
--collection/-c =<collection> | Collection zum Exportieren |
--out/-o =<file> | Datei, in der Export gespeichert werden soll |
--type=<json/csv> | Dateityp der Export-Datei: json (default), csv. --fields oder --fieldFile muss definiert werden (siehe Referenz) |
Beispiel:
mongoexport --collection=movies mongodb://localhost:27017/test --out="C:\backup"
Referenz: MongoDB Docs - Database Tools - MongoExport
mongoimport
- Import von Daten
mongoimport <options> <connection-string> <file>
| Option | Bedeutung |
|---|---|
--host/h =<hostname><:port> | Hostname und Port des MongoDB deployments |
--db/-d =<database> | Datenbank zum Importieren |
--collection/-c =<collection> | Collection zum Importieren |
--file=<filename> | Datei, in der Export gespeichert werden soll |
--type=<json/csv/tsv | Dateityp der Import-Datei |
Beispiel:
mongoimport mongodb://localhost:27017/test --file="C:\backup\movies.json"