DBackup
Datenbank-Integration

MongoDB-Backups, Atlas inklusive.

DBackup führt mongodump nach Zeitplan aus, gegen einen einzelnen Server, ein Replica Set oder MongoDB Atlas. Es verschlüsselt die Archive mit AES-256-GCM, wenn der Job einen Schlüssel hat, und stellt sie unter einem beliebigen Datenbanknamen wieder her.

Open Source unter GPL-3.0 · läuft auf Ihrem eigenen Server
app-mongodbLäuft
  1. VerbindenDirekt zu cluster0.abcde.mongodb.net
  2. Dumpmongodump --db app --archive=app.archive --gzip
  3. VerschlüsselnAES-256-GCM
  4. HochladenHetzner Object Storage
  5. Aufbewahren7 täglich, 4 wöchentlich, 12 monatlich
  6. MeldenDiscord · #backups
Mit einem Verschlüsselungsprofil wird jeder Dump mit AES-256-GCM verschlüsselt, bevor er Ihren Server verlässt.
Getestet mit 4.4 und 8.0
MongoDB 4 bis 8
mongodb+srv und Seed-Listen
Atlas und Replica Sets
Über SSH läuft mongodump auf Ihrem Server
Direkt oder über SSH (Beta)
Jede Datenbank für sich
Wiederherstellung unter beliebigem Namen

So läuft ein MongoDB-Backup

Vier Schritte, jeder mit einem Werkzeug oder Format, das Sie auch selbst nutzen könnten. DBackup führt sie nach Zeitplan aus und meldet sich, wenn einer scheitert.

  1. 1Dumpmongodump --archive --gzip schreibt ein komprimiertes Archiv pro Datenbank, eines nach dem anderen.
  2. 2Komprimierenmongodump komprimiert das Archiv selbst, also lässt DBackup es, wie es ist, und verschlüsselt es nur.
  3. 3VerschlüsselnAES-256-GCM mit dem Schlüssel eines Verschlüsselungsprofils, für jeden Dump einzeln. Darin bleibt der Dump, was das Werkzeug geschrieben hat.
  4. 4AblegenHochgeladen zu einem oder mehreren der 13 Speicherziele, jedes mit eigener Aufbewahrung, von einer einfachen Anzahl bis täglich, wöchentlich, monatlich und jährlich.

Atlas, Replica Sets und einzelne Server

Geben Sie den Host so ein, wie Sie ihn kennen. DBackup macht daraus die passende Verbindung für mongodump.

Die Authentifizierungsdatenbank ist admin, solange Sie keine andere nennen.

  • cluster0.abcde.mongodb.netSRVEin Atlas-Host wird erkannt und über mongodb+srv verbunden.
  • mongodb+srv://mongo.example.comSRVJeder andere SRV-Eintrag funktioniert, sobald Sie das Schema dazuschreiben.
  • db1:27017,db2:27017,db3:27017Seed-ListeMehrere Hosts werden zu einer Verbindung zum Replica Set.
  • mongoEinzelner ServerEin einzelner Server, mit dem Port in einem eigenen Feld.

Ein Archiv pro Datenbank

Lassen Sie die Auswahl leer, dann listet jeder Lauf die Datenbanken neu auf, ohne admin, config und local. Jede wird einzeln in dasselbe TAR gesichert.

  • Stellen Sie eine Datenbank unter neuem Namen wieder her, dann verschiebt mongorestore ihre Collections mit --nsFrom und --nsTo.
  • Eine Wiederherstellung löscht jede Collection, bevor sie sie zurückschreibt, damit das Ergebnis dem Backup entspricht.
  • Benutzer und Rollen liegen in der Datenbank admin, die nicht Teil des Backups ist.
  • TARapp-mongodb_2026-10-08_03-00-00.tar301 MB
  • { }manifest.json
  • DIRdatabases/
  • DBapp.archive218 MB
  • DBanalytics.archive83 MB
  • { }index
Der Aufbau eines unverschlüsselten Archivs. In einem verschlüsselten tragen die Einträge neutrale Namen.
Jeder Rechner mit Node.js
$ node dbackup-recover.js --extract app-mongodb_2026-10-08_03-00-00.tar ./restored databases/app$ mongorestore --gzip --archive=./restored/databases/app.archive

Zurückholen ohne DBackup

Jedes Archiv ist das, was mongodump --gzip geschrieben hat. Das Recovery Kit entschlüsselt es, und mongorestore spielt es mit derselben Option zurück.

Das Recovery Kit aus dem Vault besteht aus einem Skript und Ihrem Schlüssel. Es entschlüsselt und entpackt einen Dump und prüft seine SHA-256-Summe, bevor es die Datei schreibt.

Warum wir das so gebaut haben

In fünf Minuten startklar

DBackup ist ein Container. Stellen Sie ihn neben Ihre Datenbank, geben Sie ihm einen Login und legen Sie den ersten Job an.

docker-compose.yml
services:
  dbackup:
    image: skyfay/dbackup:latest
    restart: always
    ports:
      - "3000:3000"
    environment:
      - ENCRYPTION_KEY=${ENCRYPTION_KEY}          # openssl rand -hex 32
      - BETTER_AUTH_SECRET=${BETTER_AUTH_SECRET}  # openssl rand -base64 32
      - BETTER_AUTH_URL=https://localhost:3000
    volumes:
      - ./data:/data

  mongo:
    image: mongo:8
    environment:
      - MONGO_INITDB_ROOT_USERNAME=root
      - MONGO_INITDB_ROOT_PASSWORD=${MONGO_PASSWORD}

Fragen zu MongoDB

Ja. Geben Sie den Host Ihres Clusters ein, etwa cluster0.abcde.mongodb.net, dann verbindet sich DBackup von selbst über mongodb+srv.

Nein. mongodump läuft ohne --oplog, also können Schreibzugriffe während des Dumps nur teilweise erfasst werden. Planen Sie den Job für eine stark genutzte Datenbank in eine ruhige Stunde.

MongoDB 4 bis 8. Das Image bringt die MongoDB Database Tools 100.16 mit, und die Integrationstests laufen gegen 4.4 und 8.0.

Nein. Sie liegen in der Datenbank admin, die DBackup zusammen mit config und local auslässt. Legen Sie die Benutzer auf einem neuen Server an, bevor Sie wiederherstellen.

Ja. Das Recovery Kit holt die Archive heraus, verschlüsselt oder nicht, mit nichts als Node.js. Danach führen Sie mongorestore mit --gzip und --archive aus.

Ihr erstes MongoDB-Backup läuft heute Nacht.

Ein Container, eine Compose-Datei und ein Job. Kostenlos und Open Source.