open-how2 – Entdecke. Verstehe. Nutze.
Veröffentlicht am
How2-Tipps

Backup und Restore von SOGo-Datenbanken – so bleibt alles sicher

Autor
Backup und Restore von SOGo-Datenbanken – so bleibt alles sicher

Wer SOGo produktiv im Einsatz hat – egal ob in einer kleinen Firma, Verwaltung oder Bildungseinrichtung – weiß: E-Mail, Kalender, Kontakte und Aufgaben sind wertvolle Daten. Ein Ausfall oder Datenverlust kann teuer werden. Deshalb gehört ein regelmäßiges Backup der SOGo-Datenbank (PostgreSQL oder MySQL) zur absoluten Pflicht.

In diesem Artikel zeigen wir, wie du SOGo-Datenbanken mit PostgreSQL sicherst, automatische Cronjobs einrichtest und im Ernstfall eine saubere Wiederherstellung durchführst.

1. Warum Backups für SOGo so wichtig sind

SOGo speichert die meisten Daten nicht im Dateisystem, sondern in der Datenbank:

  • Benutzerinformationen
  • E-Mail-Metadaten
  • Kalenderereignisse
  • Kontakte und Aufgaben
  • Freigabeeinstellungen

Zwar liegen IMAP-E-Mails meist auf einem separaten Mailserver (z. B. Dovecot), aber alles, was mit Organisation und Benutzerkontext zu tun hat, steckt in der Datenbank – und ist somit kritisch.

Ein sauberes Backup schützt also nicht nur vor Hardwareausfällen, sondern auch vor fehlerhaften Updates, Migrationen oder menschlichen Irrtümern.

2. PostgreSQL-Datenbank sichern (Backup)

Die einfachste Methode für ein vollständiges Backup ist der Befehl pg_dump.

Manuelles Backup

sudo -u postgres pg_dump -Fc sogo > /backup/sogo_$(date +%F).dump
  • -Fc steht für das komprimierte Custom-Format, ideal für Wiederherstellungen.
  • sogo ist der Name der Datenbank.
  • Das Backup landet im Verzeichnis /backup mit aktuellem Datum.

💡 Tipp: Lege das Backup-Verzeichnis auf ein externes Laufwerk oder ein NAS – so überlebt es auch einen Serverausfall.

3. Automatisches Backup per Cronjob

Damit das Backup regelmäßig ausgeführt wird, bietet sich ein Cronjob an. Beispiel für ein tägliches Backup um 3 Uhr morgens:

sudo crontab -e

Dann hinzufügen:

0 3 * * * /usr/bin/pg_dump -Fc sogo > /backup/sogo_$(date +\%F).dump

Zusätzlich kann man alte Backups automatisch löschen, um Speicher zu sparen:

find /backup -type f -name "sogo_*.dump" -mtime +14 -delete

👉 Damit bleiben nur die letzten 14 Tage erhalten.

4. Verschlüsselung und Offsite-Backups

Für sensible Daten (z. B. bei Behörden oder Gesundheitsdaten) sollten Backups verschlüsselt werden:

Beispiel mit GPG

gpg --encrypt --recipient admin@deinunternehmen.de /backup/sogo_2025-10-25.dump

Oder nutze ein automatisiertes Tool wie Restic, Duplicity oder BorgBackup, um verschlüsselte Sicherungen direkt in die Cloud oder auf externe Speicher zu übertragen.

5. Vollständiger System-Backup-Tipp

Neben der Datenbank solltest du zusätzlich folgende Verzeichnisse sichern:

/etc/sogo/                # Konfiguration
/var/log/sogo/            # Logs (optional)
/etc/postfix/, /etc/dovecot/ # Mailserver (falls integriert)
/etc/letsencrypt/         # SSL-Zertifikate

So kannst du im Notfall ein komplettes System klonen oder migrieren.

6. Wiederherstellung (Restore)

Wenn etwas schiefgeht oder du SOGo auf einen neuen Server umziehst, lässt sich das Backup einfach wiederherstellen:

Vorbereitung

  1. SOGo-Dienst stoppen:

    sudo systemctl stop sogo
    
  2. Alte Datenbank löschen (optional):

    sudo -u postgres dropdb sogo
    
  3. Neue Datenbank anlegen:

    sudo -u postgres createdb sogo
    

Backup einspielen

sudo -u postgres pg_restore -d sogo /backup/sogo_2025-10-25.dump

Danach:

sudo systemctl start sogo

Wenn alles korrekt läuft, sollte SOGo wieder vollständig funktionsfähig sein.

7. Restore-Test – die oft vergessene Pflicht

Ein Backup ist nur so gut wie seine Wiederherstellbarkeit. Viele Admins sichern brav – testen aber nie. Daher gilt: Mindestens einmal im Quartal einen Restore-Test durchführen!

Erstelle dazu eine Testinstanz (z. B. in einer VM oder Sandbox) und spiele das Backup dort ein. So erkennst du frühzeitig Probleme mit Versionen, Passwörtern oder fehlenden Berechtigungen.

8. Erweiterte Backupstrategien

Für größere Umgebungen lohnt sich eine abgestufte Strategie:

Backup-Typ Intervall Zweck
Vollbackup täglich Komplettsicherung der Datenbank
Differenzielles Backup alle 6 Stunden Änderungen seit letztem Vollbackup
Konfigurationsbackup wöchentlich /etc/sogo, /etc/postfix, etc.
Offsite-Backup täglich Speicherung außerhalb des Rechenzentrums

Mit Tools wie pgBackRest oder Barman lassen sich diese Strategien automatisieren und versionieren – ideal für professionelle Infrastrukturen.

9. Sicherheit ist kein Zufall

Ein funktionierendes Backup ist die Lebensversicherung jeder IT-Infrastruktur – besonders bei sensiblen Kommunikationssystemen wie SOGo.

Mit den richtigen PostgreSQL-Backupskripten, Cronjobs und Restore-Routinen stellst du sicher, dass kein Update, Servercrash oder Benutzerfehler deine Arbeit zunichtemacht.

Merke: Ein gutes Backup ist nicht das, was du erstellst – sondern das, was du erfolgreich wiederherstellen kannst.