Beispiele für die Erstellung und Wiederherstellung von Backups
Dieser Artikel beschreibt Beispiele für die Erstellung von Backups in MongoDB. Backups gewährleisten die Datensicherheit und die Möglichkeit, Daten im Falle eines Systemausfalls oder Datenverlusts wiederherzustellen.
Wir empfehlen, tägliche Backups der MongoDB-Datenbanken durchzuführen und Kopien der letzten Woche aufzubewahren.
Die folgenden Verwaltungstools, die zusammen mit MongoDB installiert werden, werden für die Erstellung und Wiederherstellung verwendet:
- Backup-Erstellung — mongodump
- Backup-Wiederherstellung — mongorestore
Speicherort der Verwaltungstools
Linux
Die Verwaltungstools befinden sich in einem Verzeichnis, das dem System-PATH hinzugefügt wird, wodurch sie über die CLI-Befehlszeile zugänglich sind.
Üblicherweise befinden sich die Tools in den folgenden Verzeichnissen:
/usr/bin//usr/local/bin/

Windows Server
Standardmäßig befinden sich die MongoDB-Verwaltungstools nicht in der Umgebungsvariable $PATH, sodass Sie die Tools mit PowerShell suchen müssen.
Öffnen Sie PowerShell als Administrator:Über das Start-Kontextmenü
Über das Startmenü
powershell einCtrl + Shift + Enter
Führen Sie eine Suche nach den Verwaltungstools durch:
$utilityPath = Get-ChildItem -Path "C:\" -Filter "mongodump.exe" -Recurse -ErrorAction SilentlyContinue | Select-Object -First 1; $utilityDirectory = $utilityPath.DirectoryName; cd $utilityDirectory
Falls MongoDB und die Verwaltungstools auf einem nicht standardmäßigen Laufwerk installiert wurden, müssen Sie den Suchpfad im Parameter -Path ändern.
Nach der Ausführung wird das aktuelle Arbeitsverzeichnis in das Verzeichnis geändert, in dem sich die Tools befinden.
Standard-Passwork-Installation (Docker, PowerShell)
Für den Docker-Build werden Skripte zum Erstellen und Wiederherstellen von MongoDB-Datenbanken verwendet, die sich im Stammverzeichnis der Passwork-Installation befinden:
/<passwork>/db-backup.sh/<passwork>/db-restore.sh
Für das PowerShell-Modul werden Funktionen zum Erstellen und Wiederherstellen von MongoDB-Datenbanken verwendet, die in PowerShell als Administrator ausgeführt werden:
Backup-MongoDBRestore-MongoDB
Beispiele für die Erstellung von MongoDB-Backups
Erstellen Sie vor der Ausführung der Befehle ein Verzeichnis, in dem die MongoDB-Backups gespeichert werden:
- Linux —
mkdir /backup/ - Windows Server —
mkdir C:\backup\
Standalone-Installation ohne Autorisierung
- Linux
- Windows Server
mongodump --host localhost:27017 --archive=/backup/mongo-$(date "+%Y-%m-%d_%H:%M").dump
$timestamp = Get-Date -Format "yyyy-MM-dd_HH-mm"
.\mongodump --host localhost:27017 --archive="C:\backup\mongo-$timestamp.dump"
Standalone-Installation mit Autorisierung
Das Beispiel verwendet einen MongoDB-Benutzer mit den folgenden Anmeldedaten:
- Login — adminuser
- Passwort — password
- Linux
- Windows Server
mongodump --host localhost:27017 -u adminuser -p password --archive=/backup/mongo-$(date "+%Y-%m-%d_%H:%M").dump
$timestamp = Get-Date -Format "yyyy-MM-dd_HH-mm"
.\mongodump --host localhost:27017 -u adminuser -p password --archive="C:\backup\mongo-$timestamp.dump"
Replica Set ohne Autorisierung
- Linux
- Windows Server
mongodump --host rs0/mongo.example.01:27017,mongo.example.02:27017,mongo.example.03:27017 --archive=/backup/mongo-$(date "+%Y-%m-%d_%H:%M").dump
$timestamp = Get-Date -Format "yyyy-MM-dd_HH-mm"
.\mongodump --host rs0/mongo.example.01:27017,mongo.example.02:27017,mongo.example.03:27017 --archive="C:\backup\mongo-$timestamp.dump"
Replica Set mit Autorisierung
Das Beispiel verwendet einen MongoDB-Benutzer mit den folgenden Anmeldedaten:
- Login — adminuser
- Passwort — password
- Linux
- Windows Server
mongodump --host rs0/mongo.example.01:27017,mongo.example.02:27017,mongo.example.03:27017 -u adminuser -p password --archive=/backup/mongo-$(date "+%Y-%m-%d_%H:%M").dump
$timestamp = Get-Date -Format "yyyy-MM-dd_HH-mm"
.\mongodump --host rs0/mongo.example.01:27017,mongo.example.02:27017,mongo.example.03:27017 -u adminuser -p password --archive="C:\backup\mongo-$timestamp.dump"
Beispiele für die Wiederherstellung von MongoDB-Backups
Standalone-Installation ohne Autorisierung
- Linux
- Windows Server
mongorestore --host localhost:27017 --drop --archive=/backup/mongo-xxxx-xx-xx_xx:xx.dump
.\mongorestore --host localhost:27017 --drop --archive="C:\backup\mongo-xxxx-xx-xx_xx-xx.dump"
Standalone-Installation mit Autorisierung
Das Beispiel verwendet einen MongoDB-Benutzer mit den folgenden Anmeldedaten:
- Login — adminuser
- Passwort — password
- Linux
- Windows Server
mongorestore --host localhost:27017 -u adminuser -p password --drop --archive=/backup/mongo-xxxx-xx-xx_xx:xx.dump
.\mongorestore --host localhost:27017 -u adminuser -p password --drop --archive="C:\backup\mongo-xxxx-xx-xx_xx-xx.dump"
Replica Set ohne Autorisierung
- Linux
- Windows Server
mongorestore --host rs0/mongo.example.01:27017,mongo.example.02:27017,mongo.example.03:27017 --drop --archive=/backup/mongo-xxxx-xx-xx_xx:xx.dump
.\mongorestore --host rs0/mongo.example.01:27017,mongo.example.02:27017,mongo.example.03:27017 --drop --archive="C:\backup\mongo-xxxx-xx-xx_xx-xx.dump"
Replica Set mit Autorisierung
Das Beispiel verwendet einen MongoDB-Benutzer mit den folgenden Anmeldedaten:
- Login — adminuser
- Passwort — password
- Linux
- Windows Server
mongorestore --host rs0/mongo.example.01:27017,mongo.example.02:27017,mongo.example.03:27017 -u adminuser -p password --drop --archive=/backup/mongo-xxxx-xx-xx_xx:xx.dump
.\mongorestore --host rs0/mongo.example.01:27017,mongo.example.02:27017,mongo.example.03:27017 -u adminuser -p password --drop --archive="C:\backup\mongo-xxxx-xx-xx_xx-xx.dump"
Separate Wiederherstellung der Passwork-Datenbank
Beschreibung
Diese Option wird am Beispiel einer grundlegenden MongoDB-Komponenteninstallation beschrieben. Jede zuvor beschriebene Option kann verwendet werden, indem das entsprechende Attribut dem Wiederherstellungsbefehl hinzugefügt wird.
Wiederherstellungsbeispiel
- Linux
- Windows Server
mongorestore --host localhost:27017 --nsInclude=pwbox.* --drop --archive=/backup/mongo-xxxx-xx-xx_xx:xx.dump
.\mongorestore --host localhost:27017 --nsInclude=pwbox.* --drop --archive="C:\backup\mongo-xxxx-xx-xx_xx-xx.dump"
Nach der Ausführung wird nur die Passwork-Datenbank aus der angegebenen MongoDB-Backup-Datei wiederhergestellt.
Konfiguration geplanter Backups
Linux
Um die Häufigkeit von Datenbank-Backups zu konfigurieren, wird die Verwendung des Crontab-Ereignisplaners empfohlen. Weitere Informationen zu Crontab und Beispiele für dessen Verwendung — Grundlegende Cron-Informationen
Die Crontab-Konfiguration für die Erstellung von Backups sollte auf dem Server durchgeführt werden, auf dem das Verwaltungstool mongodump verfügbar ist.
Windows Server
Erstellen Sie eine Automatisierungsdatei mit der Erweiterung .ps1 und geben Sie Folgendes an:
# Get current time
$timestamp = Get-Date -Format "yyyy-MM-dd_HH-mm"
# Create MongoDB backup
mongodump --host localhost:27017 --archive="C:\backup\mongo-$timestamp.dump"
Hinweis:
- Falls MongoDB und die Verwaltungstools auf einem nicht standardmäßigen Laufwerk installiert wurden, müssen Sie den Suchpfad im Parameter -Path ändern;
- Bevor Sie die Aufgabe im Aufgabenplaner ausführen, müssen Sie das Verzeichnis erstellen, in dem die MongoDB-Backups gespeichert werden.
Öffnen Sie PowerShell als Administrator:
- Klicken Sie mit der rechten Maustaste auf das Start-Symbol in der unteren linken Ecke des Bildschirms;
- Wählen Sie Windows PowerShell (Administrator) aus dem Kontextmenü.
Erstellen Sie eine Aufgabe im Aufgabenplaner, um MongoDB-Backups zu erstellen:
# Action to run the backup.example.ps1 script using PowerShell
$action = New-ScheduledTaskAction -Execute "powershell.exe" -Argument "-File C:\backup.example.ps1"
# Run daily at 2:00 AM
$trigger = New-ScheduledTaskTrigger -Daily -At "02:00AM"
# Task settings
$settings = New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries -StartWhenAvailable -Hidden -Priority 5
# Create the task
Register-ScheduledTask -Action $action -TaskName "mongodb-example-backups" -Settings $settings -Trigger $trigger -RunLevel Highest -User "username" -Password "password" -Force
Hinweis:
- Sie müssen die Namen und Speicherorte der auszuführenden automatisierten .ps1-Datei ändern;
- Es wird empfohlen, ein Administratorkonto für die Ausführung der Hintergrundaufgabe zu verwenden. Falls ein anderer Benutzer verwendet wird, stellen Sie sicher, dass dieser über ausreichende Rechte verfügt, um alle Aktionen durchzuführen.