Zum Hauptinhalt springen

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>
OptionBedeutung
--host=<hostname><:port>, -hHostname und Port des MongoDB deployments
--authenticationDatabase=<dbname>Datenbank, welche den Benutzer enthält, mit dem man sich einloggen möchte
--username=<username>, -uBenutzername
--password=<password>, -pPasswort
--db=<database>, -dDatenbank zum Sichern
--collection=<collection>, -cCollection zum Sichern
--out=<path>, -oVerzeichnis, 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>
OptionBedeutung
--host=<hostname><:port>, -hHostname und Port des MongoDB deployments
--authenticationDatabase=<dbname>Datenbank, welche den Benutzer enthält, mit dem man sich einloggen möchte
--username=<username>, -uBenutzername
--password=<password>, -pPasswort
--db=<database>, -dDatenbank zum Zurückladen
--collection=<collection>, -cCollection 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 cp oder rsync
  • 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>
OptionBedeutung
--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>
OptionBedeutung
--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/tsvDateityp der Import-Datei

Beispiel:

mongoimport mongodb://localhost:27017/test --file="C:\backup\movies.json"