MongoDB-Datenbanken über SSH-Tunnel sichern und wiederherstellen

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:
- Gehe in deinem Sliplane-Dashboard zu deinem Projekt
- Klicke auf Add Service → Presets → SSH Tunnel
- 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
- Image:
- 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.