MongoDB-Datenbanken über SSH-Tunnel sichern und wiederherstellen

Jonas Scholz - Co-Founder von sliplane.ioJonas Scholz
5 min

Musst du eine MongoDB-Datenbank auf Sliplane sichern? Diese Anleitung zeigt dir, wie du Sicherungen sicher über einen SSH-Tunnel erstellen und wiederherstellen kannst. Diese Methode hält deine Datenbank privat, während du vollen Zugriff hast, ohne sie öffentlich verfügbar zu machen.

Was du lernen wirst

In dieser Anleitung lernst du:

  • Einen SSH-Tunnel-Service in Sliplane einzurichten
  • Sicherungen mit mongodump über den Tunnel zu erstellen
  • Datenbanken mit mongorestore wiederherzustellen
  • Mit verschiedenen Backup-Formaten und Wiederherstellungsoptionen umzugehen

Hinweis: Wenn deine Datenbank bereits öffentlich ist und deine IP auf der Whitelist steht, kannst du dich direkt ohne SSH-Tunnel verbinden.

Voraussetzungen

Stelle vor dem Start sicher, dass du hast:

  • MongoDB-Client-Tools installiert: mongodump, mongorestore, mongosh
  • Deine Sliplane MongoDB-Datenbank-Anmeldedaten
  • Ein Sliplane-Projekt mit einem laufenden MongoDB-Service

Schritt 1: SSH-Tunnel-Service erstellen

Erstelle zuerst einen dedizierten SSH-Tunnel-Service in deinem Sliplane-Projekt:

  1. Gehe in deinem Sliplane-Dashboard zu deinem Projekt
  2. Klicke auf Add ServicePresetsSSH Tunnel
  3. Verwende diese Einstellungen:
    • Image: ghcr.io/sliplane/docker-ssh:latest
    • Environment Variables:
      • HOST=0.0.0.0
      • PORT=2222
      • ROOT_PASSWORD=wähle ein starkes Passwort
  4. Stelle den Service bereit und notiere seine öffentliche Domain (z.B. ssh-tunnel-123.sliplane.app)

Schritt 2: SSH-Tunnel herstellen

Öffne ein Terminal und erstelle einen lokalen Tunnel zu deiner Sliplane-Datenbank:

ssh -p 2222 \
  [email protected] \
  -L 27017:mongodb-service-name.internal:27017 \
  -N

Ersetze mongodb-service-name.internal mit dem internen Hostnamen deines MongoDB-Service. Halte dieses Terminalfenster während des Sicherungs-/Wiederherstellungsprozesses geöffnet.

Schritt 3: Verbindung testen

Überprüfe, ob der Tunnel funktioniert, bevor du Sicherungen erstellst:

mongosh "mongodb://dein-benutzer:[email protected]:27017/deine-datenbank?authSource=deine-datenbank" \
--eval 'db.runCommand({ping: 1})'

Wenn du { ok: 1 } siehst, funktioniert dein Tunnel korrekt.

Schritt 4: Sicherung erstellen

Da dein SSH-Tunnel funktioniert, ist es Zeit, eine Sicherung zu erstellen. MongoDB bietet mehrere Backup-Optionen über mongodump, jede mit unterschiedlichen Anwendungsfällen und Vorteilen.

Vollständige Datenbanksicherung (Empfohlen)

Dieses Format erstellt eine vollständige binäre Sicherung deiner Datenbank:

mongodump \
  --host 127.0.0.1 --port 27017 \
  --username dein-benutzer --password dein-passwort \
  --authenticationDatabase deine-datenbank \
  --out backup-$(date +%F)

Bestimmte Datenbanksicherung

Sichere nur eine bestimmte Datenbank:

mongodump \
  --host 127.0.0.1 --port 27017 \
  --username dein-benutzer --password dein-passwort \
  --authenticationDatabase deine-datenbank \
  --db deine-datenbank \
  --out backup-$(date +%F)

Bestimmte Collection-Sicherung

Sichere nur bestimmte Collections:

mongodump \
  --host 127.0.0.1 --port 27017 \
  --username dein-benutzer --password dein-passwort \
  --authenticationDatabase deine-datenbank \
  --db deine-datenbank \
  --collection deine-collection \
  --out backup-$(date +%F)

Archivformat

Erstelle eine einzelne Archivdatei:

mongodump \
  --host 127.0.0.1 --port 27017 \
  --username dein-benutzer --password dein-passwort \
  --authenticationDatabase deine-datenbank \
  --archive=backup-$(date +%F).archive \
  --gzip

Schritt 5: Wiederherstellen der Sicherung

Mit deiner Sicherungsdatei kannst du diese jetzt in deiner MongoDB-Datenbank wiederherstellen. Der Wiederherstellungsprozess hängt von deinem Backup-Format ab und davon, ob du in eine bestehende Datenbank wiederherstellst oder eine neue erstellst.

Vollständige Datenbank wiederherstellen

Aus Verzeichnis-Backup:

mongorestore \
  --host 127.0.0.1 --port 27017 \
  --username dein-benutzer --password dein-passwort \
  --authenticationDatabase deine-datenbank \
  --drop backup-YYYY-MM-DD

Archivformat wiederherstellen

Aus Archivdatei:

mongorestore \
  --host 127.0.0.1 --port 27017 \
  --username dein-benutzer --password dein-passwort \
  --authenticationDatabase deine-datenbank \
  --archive=backup-YYYY-MM-DD.archive \
  --gzip

Wiederherstellen zu anderer Datenbank

mongorestore \
  --host 127.0.0.1 --port 27017 \
  --username dein-benutzer --password dein-passwort \
  --authenticationDatabase deine-datenbank \
  --db zieldatenbank \
  --drop backup-YYYY-MM-DD/deine-datenbank

Bestimmte Collection wiederherstellen

mongorestore \
  --host 127.0.0.1 --port 27017 \
  --username dein-benutzer --password dein-passwort \
  --authenticationDatabase deine-datenbank \
  --db deine-datenbank \
  --collection ziel-collection \
  --drop backup-YYYY-MM-DD/deine-datenbank/deine-collection.bson

Diese Methode gibt dir sicheren, zuverlässigen Zugriff auf deine MongoDB-Datenbank auf Sliplane für Sicherungen und Wiederherstellungen, während deine Infrastruktur sicher bleibt.

Willkommen in der Container-Cloud

Sliplane macht es einfach, Container in der Cloud zu deployen und bei Bedarf zu skalieren. Probier es jetzt aus!