Zum Hauptinhalt springen

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/
Speicherort der MongoDB-Tools unter Linux
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ü
  1. Klicken Sie mit der rechten Maustaste auf das Start-Symbol in der unteren linken Ecke des Bildschirms.
  2. Wählen Sie „Windows PowerShell (Administrator)" aus dem Kontextmenü.
Über das Startmenü
  1. Klicken Sie mit der linken Maustaste auf das Start-Symbol in der unteren linken Ecke des Bildschirms.
  2. Geben Sie powershell ein
  3. Öffnen Sie PowerShell als „Administrator" mit der Tastenkombination — Ctrl + 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
gefahr

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-MongoDB
  • Restore-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:

  • Linuxmkdir /backup/
  • Windows Servermkdir C:\backup\

Standalone-Installation ohne Autorisierung

mongodump --host localhost:27017 --archive=/backup/mongo-$(date "+%Y-%m-%d_%H:%M").dump

Standalone-Installation mit Autorisierung

info

Das Beispiel verwendet einen MongoDB-Benutzer mit den folgenden Anmeldedaten:

  • Login — adminuser
  • Passwort — password
mongodump --host localhost:27017 -u adminuser -p password --archive=/backup/mongo-$(date "+%Y-%m-%d_%H:%M").dump

Replica Set ohne Autorisierung

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

Replica Set mit Autorisierung

info

Das Beispiel verwendet einen MongoDB-Benutzer mit den folgenden Anmeldedaten:

  • Login — adminuser
  • Passwort — password
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

Beispiele für die Wiederherstellung von MongoDB-Backups

Standalone-Installation ohne Autorisierung

mongorestore --host localhost:27017 --drop --archive=/backup/mongo-xxxx-xx-xx_xx:xx.dump

Standalone-Installation mit Autorisierung

info

Das Beispiel verwendet einen MongoDB-Benutzer mit den folgenden Anmeldedaten:

  • Login — adminuser
  • Passwort — password
mongorestore --host localhost:27017 -u adminuser -p password --drop --archive=/backup/mongo-xxxx-xx-xx_xx:xx.dump

Replica Set ohne Autorisierung

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

Replica Set mit Autorisierung

info

Das Beispiel verwendet einen MongoDB-Benutzer mit den folgenden Anmeldedaten:

  • Login — adminuser
  • Passwort — password
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

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

mongorestore --host localhost:27017 --nsInclude=pwbox.* --drop --archive=/backup/mongo-xxxx-xx-xx_xx:xx.dump
info

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

gefahr

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"
gefahr

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
gefahr

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.