DE · AT · CHAnleitung

Odoo sichern: Backup-Strategie und Wiederherstellung

Aktualisiert:

Gilt für: Odoo 20.0; Online und Odoo.sh (Enterprise) sowie On-Premise (Community und Enterprise); PostgreSQL-Dokumentation Version 18

Kurz gesagt

Ein vollständiges Odoo-Backup umfasst die PostgreSQL-Datenbank und den Filestore mit den Anhängen. Odoo Online und Odoo.sh sichern die Produktivdatenbank täglich selbst; auf einem eigenen Server (On-Premise) nennt die Dokumentation tägliche Backups, kopiert auf ein fremdes System. Ob ein Backup taugt, zeigt erst eine Wiederherstellung.

Das Wichtigste

  • Odoo Online: Laut Odoo Cloud Hosting SLA 14 Vollbackups über mindestens drei Monate (7 täglich, 4 wöchentlich, 3 oder mehr monatlich); die Wiederherstellungsziele sind Zielwerte, keine rechtsverbindliche Zusage.
  • Odoo.sh: Die Produktivdatenbank wird täglich gesichert, mit 7 täglichen, 4 wöchentlichen und 3 monatlichen Backups; Staging und Entwicklung werden nicht automatisch gesichert.
  • On-Premise: Die Odoo-Dokumentation nennt tägliche Backups von Datenbanken und Filestore, kopiert auf einen entfernten Archivserver, der vom Server selbst nicht erreichbar ist.
  • Das Odoo-Backup im Format zip enthält standardmäßig den Filestore; ein reiner pg_dump enthält ihn nicht.
  • Der db-Dienst der XML-RPC- und JSON-RPC-Schnittstellen, über den Skripte Datenbanken sichern konnten, ist in Odoo 20 entfernt.

Was Sie vorab brauchen

  • Das Hostingmodell Ihrer Datenbank: Odoo Online, Odoo.sh oder eigener Server. Laut Editionsseite ist Hosting nur in Enterprise enthalten; die Community-Edition betreiben Sie selbst.
  • Zugang zur Datenbankverwaltung (Online), zum Reiter „Backups“ des Projekts (Odoo.sh) oder zu Server und Master-Passwort beziehungsweise PostgreSQL-Zugang (On-Premise).
  • Ein Ziel außerhalb des Servers oder Kontos, auf das Kopien gelegt werden.
  • Eine Testumgebung, in der Sie eine Wiederherstellung üben können, ohne Produktivdaten zu berühren.

Was gesichert werden muss

Eine Odoo-Datenbank besteht aus zwei Teilen: der PostgreSQL-Datenbank und dem Filestore. Anhänge sind Dateien im Filestore, deren Zugriff Odoo regelt (Dokumentation „Deploying Odoo“). Das Backup im Format zip enthält den Filestore standardmäßig; mit --no-filestore entfällt er (odoo-bin db dump). Das Format dump ist ein pg_dump. Dessen Besonderheit nach der PostgreSQL-Dokumentation: Er sichert eine einzelne Datenbank, ist in sich konsistent (Stand bei Beginn des Dumps) und blockiert den laufenden Betrieb weitgehend nicht. Rollen und Tablespaces gehören nicht dazu.

Zwei Kennzahlen planen Sie vorab: wie viel Arbeitszeit Sie im schlimmsten Fall verlieren dürfen (Sicherungsabstand) und wie lange die Wiederherstellung höchstens dauern darf. Die Zahlen setzen Sie nach Ihrem Betrieb; Odoo nennt für Online eigene Zielwerte (siehe Tabelle).

Backup-Plan nach Hostingmodell

Odoo Online Odoo.sh Eigener Server (On-Premise)
Automatisches Backup täglich laut Dokumentation; SLA: 14 Vollbackups (7 täglich, 4 wöchentlich, 3 oder mehr monatlich) über mindestens drei Monate Produktion täglich: 7 täglich, 4 wöchentlich, 3 monatlich; Inhalt: Datenbank-Dump, Filestore, Logs, Sitzungen keines; Ihre Aufgabe: laut Dokumentation täglich Datenbank und Filestore
Aufbewahrung laut SLA auf mindestens drei Maschinen in verschiedenen Rechenzentren in Europa und Kanada repliziert, dazu eine eingefrorene Kopie; Region nicht wählbar Der Produktionsserver hält nur 7 tägliche und 4 wöchentliche; die 3 monatlichen liegen auf dedizierten Backup-Servern und kommen über Odoo Support Ihre Festlegung; Kopie auf entferntes Archivsystem, vom Server nicht erreichbar
Eigene Kopie „Download Backup“ in der Datenbankverwaltung (ZIP); bei zu großer Datenbank gesperrt, dann Odoo Support Reiter „Backups“: herunterladen und wiederherstellen; manuelles Backup (3 Tage verfügbar, höchstens 5 pro Tag) Datenbankverwaltung, odoo-bin db dump oder pg_dump plus Filestore
Test- und Entwicklungsumgebungen Kopie (Duplicate) läuft nach 15 Tagen ab; höchstens 5 Kopien Staging und Entwicklung nicht automatisch gesichert; manuell nur Staging und Produktion eigene Regel
Wiederherstellungsziel SLA-Zielwerte, keine rechtsverbindliche Zusage. Dauerhafter Ausfall eines Servers: Datenverlust höchstens 24 h (für Odoo SaaS laut SLA nahe null), Betrieb wieder nach 6 h. Ausfall eines Rechenzentrums: Datenverlust höchstens 24 h, Betrieb wieder nach 24 h nicht in diesen Quellen genannt Ihre Festlegung

Odoo.sh sichert zusätzlich automatisch, wenn ein Commit die Version eines Moduls oder dessen Python-Abhängigkeiten ändert (Typ „Update“). Ändert ein Commit nur Code ohne Versionssprung, entsteht kein Backup; die Dokumentation rät dann zu einem manuellen Backup vor Änderungen an der Produktion.

Schritt für Schritt: Sicherung einrichten

Schritt 1: Ziele festlegen

Notieren Sie Sicherungsabstand und maximale Wiederherstellungsdauer sowie, was zusätzlich zur Datenbank zu sichern ist, zum Beispiel die Konfigurationsdatei odoo.conf und eigene Modul-Quellen (redaktioneller Hinweis: Beides liegt weder in der Datenbank noch im Filestore).

Schritt 2 (Online): Eigene Kopie ablegen

Melden Sie sich in der Datenbankverwaltung an und wählen Sie „Download Backup“. Legen Sie die ZIP-Datei außerhalb von Odoo ab. Vor dem Löschen einer Datenbank empfiehlt die Dokumentation ausdrücklich ein Backup, denn Löschen entfernt alle Daten sofort und unwiederbringlich.

Schritt 3 (Odoo.sh): Reiter „Backups“ nutzen

Prüfen Sie im Reiter „Backups“ der Produktion, dass die täglichen Backups erscheinen. Laden Sie bei Bedarf eines herunter und legen Sie es extern ab. Erstellen Sie vor Eingriffen in die Produktion ein manuelles Backup.

Schritt 4 (On-Premise): Datenbank und Filestore sichern

Wählen Sie eine Methode, die zu Ihrem Betrieb passt:

  1. Odoo-Befehl odoo-bin db dump <Datenbank> <Pfad> (Format zip mit Filestore als Standard).
  2. Datenbankverwaltung unter /web/database/manager. Sie ist durch das Master-Passwort (admin_passwd) geschützt. Für Internet-erreichbare Server empfiehlt die Dokumentation, sie abzuschalten (list_db = False); dann nutzen Sie Befehl oder pg_dump.
  3. pg_dump für die Datenbank (zum Beispiel pg_dump -Fc) plus Kopie des Filestore-Verzeichnisses im Datenverzeichnis. Das benutzerdefinierte Format stellen Sie mit pg_restore wieder her; für Rollen nutzen Sie pg_dumpall --globals-only.
  4. Kontinuierliche Archivierung (Basisbackup plus WAL-Archiv) erlaubt Wiederherstellung auf einen beliebigen Zeitpunkt, sichert aber nur den ganzen PostgreSQL-Cluster. pg_dump gehört nicht dazu. Das Verfahren ist laut PostgreSQL-Dokumentation aufwendiger und serverversionsspezifisch.

Skripte, die Datenbanken über den XML-RPC- oder JSON-RPC-Dienst db sichern, funktionieren in Odoo 20 nicht mehr. Der HTTP-Controller /web/database/backup erwartet Master-Passwort, Datenbankname und Backup-Format (Standard zip).

Schritt 5: Kopie vom Server wegbringen

Kopieren Sie die Sicherung auf ein entferntes Archivsystem, das der Odoo-Server selbst nicht erreichen kann, so die Dokumentation. Legen Sie vor jeder Änderung an der Installation, etwa einem Update, ein volles Backup auf einem anderen Rechner ab (Schritt 2 der Update-Anleitung).

Schritt 6: Wiederherstellung testen

Redaktionelle Checkliste, abgeleitet aus den dokumentierten Werkzeugen:

  1. Stellen Sie das Backup auf einem Testsystem wieder her, nie über die Produktivdatenbank. Für ein heruntergeladenes Online-Backup beschreibt die Hosting-Dokumentation beim Wechsel zu On-Premise die Wiederherstellung über die Datenbankverwaltung eines lokalen Servers.
  2. Neutralisieren Sie die Kopie (odoo-bin db load -n, bei Odoo.sh sind Staging und Entwicklung neutralisiert). Neutralisierte Datenbanken deaktivieren unter anderem geplante Aktionen, ausgehende E-Mails, Bank-Synchronisierung und Zahlungsanbieter.
  3. Melden Sie sich an, öffnen Sie in jeder genutzten App Stichproben und prüfen Sie, ob Anhänge (Filestore) geöffnet werden können.
  4. Vergleichen Sie wichtige Zähler (zum Beispiel Zahl der Kontakte, Verkaufsaufträge, Buchungen) mit der Produktion.
  5. Messen Sie die Dauer und halten Sie Datum, Verantwortliche, Backup-Datei und Ergebnis fest.
  6. Wiederholen Sie den Test nach jedem Versionswechsel und nach Änderungen an der Sicherung.

So prüfen Sie das Ergebnis

Die Sicherung gilt erst als brauchbar, wenn ein Wiederherstellungstest bestanden ist. Prüfen Sie außerdem, dass die Datei auf dem Offsite-Ziel angekommen ist und dass die Aufbewahrung der Tages-, Wochen- und Monatsstände Ihrem Plan entspricht.

Wenn etwas nicht klappt

Symptom Ursache nach Quelle Lösung
„Download Backup“ ist gesperrt (Online) Datenbank zu groß für den Download über die Datenbankverwaltung Odoo Support um alternativen Download bitten
Altes Monats-Backup fehlt im Reiter (Odoo.sh) Produktionsserver hält nur 7 tägliche und 4 wöchentliche monatliche Backups über Odoo Support anfordern
Skript für Datenbank-Backups bricht ab db-Dienst der RPC-Schnittstellen in Odoo 20 entfernt auf Controller, Befehl oder pg_dump umstellen
Wiederherstellung per psql meldet Eigentümer-Fehler Benutzer, die Objekte besitzen, existieren nicht Rollen vorher anlegen oder pg_dumpall --globals-only einspielen; Datenbank aus template0 anlegen
Datenbankverwaltung nicht erreichbar (On-Premise) wegen list_db = False gesperrt Befehl odoo-bin db dump oder pg_dump verwenden

Wann Sie Hilfe holen sollten

Bei Odoo Online und Odoo.sh sind Odoo Support (Download-Alternativen, Monatsbackups) und Ihr Partner die Ansprechpartner. Auf eigenen Servern holen Sie Hilfe, wenn Sie Zeitpunkt-Wiederherstellung (PITR) einrichten oder ein Test fehlschlägt. Redaktionelle Einschätzung: Zeitpunkt-Wiederherstellung verlangt PostgreSQL-Fachwissen, und ein Fehler im Verfahren zeigt sich sonst erst im Ernstfall.

Häufige Fragen

Reicht bei Odoo Online das Backup, das Odoo selbst anlegt?

Das ist eine Entscheidung nach Ihrem Ziel: Odoo sichert täglich und nennt Wiederherstellungsziele von 6 Stunden (ein Server) bis 24 Stunden (Rechenzentrum), ausdrücklich ohne rechtsverbindliche Zusage. Wer eine eigene, unabhängige Kopie braucht, lädt Backups manuell herunter; bei zu großen Datenbanken ist der Download gesperrt und Odoo Support nennt eine Alternative.

Warum genügt ein pg_dump allein nicht?

Weil Anhänge im Filestore außerhalb der Datenbank liegen und ein pg_dump nur die Datenbank enthält. Das Odoo-Backup im Format zip enthält den Filestore standardmäßig, sofern Sie nicht --no-filestore setzen. Bei einem reinen Datenbank-Dump sichern Sie das Filestore-Verzeichnis zusätzlich.

Mein Skript sichert Datenbanken per XML-RPC. Läuft es unter Odoo 20 weiter?

Nicht für den db-Dienst: Er wurde laut Dokumentation in Odoo 20 (Herbst 2026) und Online 19.1 entfernt. Auf einem eigenen Server bieten sich der HTTP-Controller /web/database/backup, der Befehl odoo-bin db dump oder pg_dump an. Prüfen Sie dabei den Schutz der Datenbankverwaltung.

Quellen

  1. Odoo Cloud Hosting Service Level Agreement (Backups and Disaster Recovery)Odoo S.A. · abgerufen am
  2. Odoo Online (Download a backup, Duplicate, Delete) (Odoo 20.0)Odoo S.A., Dokumentation · abgerufen am
  3. Odoo.sh Branches (Production, Backups) (Odoo 20.0)Odoo S.A., Dokumentation · abgerufen am
  4. Deploying Odoo (Security, Database Manager Security) (Odoo 20.0)Odoo S.A., Dokumentation · abgerufen am
  5. Command-line interface (db dump, db load) (Odoo 20.0)Odoo S.A., Dokumentation · abgerufen am
  6. External JSON-2 API, Abschnitt Migrating from XML-RPC / JSON-RPC, Database service (Odoo 20.0)Odoo S.A., Dokumentation · abgerufen am
  7. Updating Odoo (Step 2: Make a backup of your database) (Odoo 20.0)Odoo S.A., Dokumentation · abgerufen am
  8. Change hosting solution (Odoo 20.0)Odoo S.A., Dokumentation · abgerufen am
  9. Neutralized database (Odoo 20.0)Odoo S.A., Dokumentation · abgerufen am
  10. Compare Editions (Zeile Hosting)Odoo S.A. · abgerufen am
  11. PostgreSQL 18, 25.1 SQL DumpPostgreSQL Global Development Group · abgerufen am
  12. PostgreSQL 18, 25.3 Continuous Archiving and Point-in-Time Recovery (PITR)PostgreSQL Global Development Group · abgerufen am