DE · AT · CHAnleitung

Odoo-Datenbank exportieren und wiederherstellen

Aktualisiert:

Gilt für: Odoo 20.0; Oberfläche und Formate nur Community-Zweig 20.0 (Enterprise ungeprüft); Befehle laut Dokumentation 20.0; Odoo Online und Odoo.sh eigene Oberflächen

Kurz gesagt

Auf einem eigenen Server liegt die Datenbankverwaltung unter /web/database/manager; die Beschriftungen, Formate und Meldungen stammen aus dem öffentlichen Community-Zweig 20.0, für Odoo Enterprise auf eigenem Server ist die Oberfläche nicht belegt. Dort sichert die Schaltfläche Backup eine Datenbank als ZIP-Datei, standardmäßig samt Filestore, und Restore Database spielt eine ZIP-Datei in eine neue, leere Datenbank ein. Beide Wege verlangen das Master-Passwort (admin_passwd). Die Dokumentation rät, die Verwaltung auf internetnahen Servern abzuschalten (list_db = False) und Sicherungen über Befehle zu erstellen.

Das Wichtigste

  • Die Datenbankverwaltung liegt laut dem Community-Zweig 20.0 unter /web/database/manager und ist durch das Master-Passwort admin_passwd geschützt.
  • Backup erzeugt laut dem Community-Zweig 20.0 eine ZIP-Datei mit dump.sql und manifest.json; der Ordner filestore kommt nur dazu, wenn das vorbelegte Kästchen Include filestore gesetzt ist. Das Format pg_dump custom format enthält keinen Filestore.
  • Restore Database legt laut dem Community-Zweig 20.0 eine neue Datenbank an; ein schon vergebener Zielname führt zum Abbruch.
  • Der Befehl odoo-bin db load nimmt laut dem Community-Zweig 20.0 nur ZIP-Dateien an; Rohdumps spielen Sie mit pg_restore ein.
  • Odoo Online lädt Sicherungen als ZIP-Datei herunter; eingespielt werden sie auf einem eigenen Server über die Datenbankverwaltung.
  • Odoo.sh bietet im Reiter Backups Download, Wiederherstellung, manuelle Sicherung und Datenbankimport.

Die Datenbankverwaltung ist die Oberfläche, mit der eine eigene Odoo-Installation Datenbanken anlegt, sichert, einspielt und löscht. Diese Anleitung zeigt die Klickwege und die Befehle, die dasselbe tun, mit den Warnungen aus der Dokumentation der Version 20.0 und aus dem Quellcode. Die Beschriftungen, Formate und Meldungen der Verwaltung sind dem öffentlichen Community-Zweig 20.0 entnommen; für Odoo Enterprise auf eigenem Server ist die Oberfläche nicht belegt. Odoo 20 wurde im September 2026 veröffentlicht.

Was Sie vorab brauchen

  • Einen eigenen Server mit Ihrer Odoo-Installation; bei Odoo Online und Odoo.sh führen eigene Oberflächen zum Ziel.
  • Das Master-Passwort aus der Zeile admin_passwd der Konfigurationsdatei (/etc/odoo.conf bei Paketinstallationen unter Linux, ~/.odoorc bei Quellinstallationen, c:\Program Files\Odoo{VERSION}\server\odoo.conf unter Windows).
  • Für die Kommandowege pg_dump, psql und pg_restore aus Ihrer PostgreSQL-Installation.
  • Einen Ablageort außerhalb des Servers; die Update-Anleitung verlangt, die Sicherung vor Änderungen an der Installation auf einem anderen Rechner zu verwahren.
  • Für das Einspielen einen freien Datenbanknamen; erlaubt sind Buchstaben, Zahlen, Unterstrich, Bindestrich und Punkt, erstes Zeichen Buchstabe oder Zahl (Modul db, Zweig 20.0).
  • Optional die Entscheidung, ob die eingespielte Kopie neutralisiert werden soll.

Wo die Verwaltung liegt und wann sie geschlossen ist

Öffnen Sie /web/database/manager auf Ihrem Server. Die Seite listet die Datenbanken; hinter jeder Zeile stehen Backup, Duplicate und Delete, unter der Liste Create Database, Restore Database und Set Master Password. Die Vorlage des Community-Zweigs 20.0 beschriftet die Seite englisch; die deutschsprachige Dokumentation nennt dieselben Schaltflächen Master-Passwort einrichten und Fortfahren. Datenbanken, deren Version nicht zur laufenden Odoo-Reihe passt, markiert die Liste mit einem Warnsymbol. Jede Aktion verlangt das Master-Passwort, das Odoo mit admin_passwd vergleicht; für den Bildschirm braucht der PostgreSQL-Benutzer das Recht createdb.

Die Dokumentation empfiehlt dringend, die Verwaltung auf jedem internetnah erreichbaren System abzuschalten. Sie sei ein Entwicklungs- und Demo-Werkzeug, nicht für den Produktivbetrieb und nicht für große Datenbanken, und könne an Speichergrenzen stoßen. Abschalten heißt list_db = False in der Konfiguration oder --no-database-list beim Start; danach zeigt die Seite nur noch den Hinweis auf die abgeschaltete Verwaltung, und die Datenbankauswahl für Anwender entfällt. Sorgen Sie deshalb dafür, dass db_name und, wo nötig, dbfilter die Datenbank je Hostname bestimmen. Soll die Seite erreichbar bleiben, blockieren Sie im Proxy alle Adressen unter /web/database außer /web/database/selector und setzen ein zufällig erzeugtes Master-Passwort.

Steht admin_passwd noch auf admin, meldet die Seite, dass die Verwaltung nicht geschützt ist, und die Fenster füllen selbst ein erzeugtes Passwort ein; Odoo übernimmt es beim Ausführen und schreibt es in die Konfigurationsdatei.

Auf den Cloud-Angeboten liegen die Wege anders. Bei Odoo Online lädt Download Backup im Datenbankmanager des Odoo-Kontos eine ZIP-Datei; ist die Option gesperrt, ist die Datenbank zu groß, und der Odoo-Support nennt eine Alternative. Bei Odoo.sh bietet der Reiter Backups der Produktion Herunterladen, Wiederherstellen, eine manuelle Sicherung und den Datenbankimport; der Import nimmt Archive aus der Verwaltung unter /web/database/manager, aus dem Odoo-Online-Manager und aus Odoo.sh selbst an.

Schritt für Schritt: sichern und einspielen

Schritt 1: Liste öffnen

Rufen Sie /web/database/manager auf. Ergebnis: Ihre Datenbanken stehen mit ihren Namen in der Liste. Erscheint stattdessen der Hinweis auf die abgeschaltete Verwaltung, arbeiten Sie mit den Schritten 3 und 5.

Schritt 2: Über die Oberfläche sichern

Klicken Sie in der Zeile Ihrer Datenbank auf Backup, tragen Sie das Master-Passwort ein und wählen Sie unter Backup Format zip oder pg_dump custom format (without filestore); das Kästchen Include filestore ist nur beim Format zip sichtbar und vorbelegt. Nach Backup lädt der Browser die Datei; Odoo benennt sie nach dem Muster Datenbankname_Zeitstempel.Format mit Zeitstempel in UTC, im Format zip also Datenbankname_Zeitstempel.zip, im Custom-Format Datenbankname_Zeitstempel.dump. Die ZIP-Datei enthält immer dump.sql und manifest.json; den Ordner filestore mit den Anhängen legt Odoo nur dazu, wenn Include filestore gesetzt ist. Das Custom-Format enthält nur die Datenbank. Für große Datenbanken ist die Oberfläche laut Dokumentation nicht gedacht.

Schritt 3: Per Befehl sichern

odoo-bin db dump <datenbank> /pfad/sicherung.zip
odoo-bin db dump <datenbank> --format dump --no-filestore /pfad/sicherung.dump

Ohne Pfadangabe schreibt der Befehl nach stdout. Intern ruft er pg_dump --no-owner auf. Im Format zip entsteht ein SQL-Text; --no-owner bewirkt dort, dass er keine Befehle zum Setzen der Eigentümerschaft enthält, sodass beim Ausführen der verbindende Benutzer Eigentümer aller Objekte wird. Nach der PostgreSQL-Dokumentation (18, pg_dump) greift der Schalter beim Archivformat dagegen nicht: Odoo erzeugt das Format dump mit pg_dump --format=c, und in einem Archiv bleiben die Eigentümerangaben enthalten. Ob sie gesetzt werden, entscheidet erst pg_restore; standardmäßig tut es das, mit pg_restore --no-owner nicht.

Schritt 4: Über die Oberfläche einspielen

Klicken Sie unter der Liste auf Restore Database und füllen Sie Master Password, File (die ZIP-Datei), Database Name und bei Bedarf das Kästchen Neutralize aus. Darunter steht die Frage „This database might have been moved or copied” mit den Antworten „This database is a copy” (vorbelegt) und „This database was moved”; mit Continue startet der Vorgang.

Odoo legt dafür eine neue, leere Datenbank an: Ein vergebener Zielname führt zum Abbruch, überschrieben wird nichts. Die Antwort entscheidet, ob die Datenbank ihre Kennung (dbuuid) behält oder eine neue erhält; der Formularhinweis nennt als Grund Konflikte zwischen Datenbanken. Wählen Sie die Kopie, wenn die Originaldatenbank weiterlaufen soll. Das Neutralisieren schaltet geplante Aktionen, ausgehende E-Mails, Banksynchronisation, Zahlungsanbieter, Versandarten und die Indexierung durch Suchmaschinen ab.

Schritt 5: Per Befehl einspielen

odoo-bin db load <datenbank> /pfad/sicherung.zip
odoo-bin db load <datenbank> /pfad/sicherung.zip --force --neutralize

Ohne Datenbanknamen nimmt Odoo den Dateinamen ohne Endung; die Datei darf auch eine URL sein. --force löscht ein vorhandenes Ziel, --neutralize neutralisiert die Kopie, --move behält die Kennung statt einer neuen. Im Community-Zweig 20.0 prüft der Befehl, ob die Datei ein ZIP-Archiv ist, und bricht sonst mit dem Hinweis ab, dass Rohdumps mit pg_restore und SQL-Skripte mit psql einzuspielen sind.

Befehle und Klickwege im Überblick

Aufgabe Klickweg in der Verwaltung Befehl Warnung
Datenbank mit Anhängen sichern Backup, Format zip, Include filestore, Backup odoo-bin db dump <DB> <Datei.zip> Oberfläche nicht für internetnahe oder große Datenbanken gedacht
Nur die Datenbank sichern Backup, Format pg_dump custom format odoo-bin db dump <DB> --format dump <Datei> kein Filestore; über die Oberfläche nicht wieder einspielbar
ZIP-Sicherung einspielen Restore Database, File, Database Name, Continue odoo-bin db load <DB> <Datei.zip> Zielname muss frei sein; nur ZIP-Archive
Rohdump einspielen nicht vorgesehen pg_restore -d <DB> <Datei.dump> Rollen und leere Datenbank vorher anlegen; Filestore fehlt; setzt die Eigentümerangaben aus dem Archiv und braucht dafür einen passenden Benutzer, sonst --no-owner
Kopie für Tests Duplicate mit Kästchen Neutralize odoo-bin db duplicate <Quelle> <Ziel> --neutralize Zielname muss frei sein; Neutralisieren stoppt geplante Aktionen und E-Mails
Datenbank löschen Delete odoo-bin db drop <DB> entfernt Datenbank und Filestore; die Vorlage des Fensters nennt keinen weiteren Hinweis

Ein Umbenennen enthält die Vorlage der Verwaltung im Zweig 20.0 nicht; dafür steht odoo-bin db rename <alt> <neu> bereit. Skripte, die über den db-Dienst der alten XML-RPC- und JSON-RPC-Schnittstellen sicherten, laufen in Odoo 20 nicht mehr; die HTTP-Adressen der Verwaltung (/web/database/backup, /web/database/restore) gibt es weiter, sie verlangen das Master-Passwort.

So prüfen Sie das Ergebnis

Nach dem Sichern: Prüfen Sie den Inhalt der ZIP-Datei (dump.sql, manifest.json und, falls mitgesichert, filestore) und legen Sie die Datei außerhalb des Servers ab. Nach dem Einspielen: Öffnen Sie die neue Datenbank, melden Sie sich an und prüfen Sie Stichproben aus mehreren Apps samt einem Datensatz mit Anhang sowie die Liste der installierten Apps; eine neutralisierte Kopie trägt oben einen roten Hinweisbalken. Die dauerhafte Kontrolle bleibt der Wiederherstellungstest nach Odoo sichern: Backup-Strategie und Wiederherstellung.

Wenn etwas nicht klappt

Symptom Ursache Lösung
Die Seite meldet nur, dass die Verwaltung abgeschaltet ist list_db = False oder Start mit --no-database-list Befehle nutzen oder den Eintrag bewusst entfernen und db_name beziehungsweise dbfilter prüfen
Das Master-Passwort ist unbekannt admin_passwd wurde verlegt oder geändert Nach der Dokumentation die Zeile auf ein vorläufiges Passwort ändern, den Dienst neu starten, /web/database/manager öffnen und Set Master Password ausfüllen; die Zeile nicht mit einem Semikolon auskommentieren
Das Fenster erzeugt selbst ein Passwort admin_passwd steht noch auf admin Ausführen und das angezeigte Passwort notieren; Odoo schreibt es in die Konfigurationsdatei
Das Einspielen bricht mit „already exists” ab Zielname ist schon belegt Anderen Namen wählen; die Oberfläche löscht nichts von selbst
Das Einspielen bricht ab, weil die Datei kein ZIP ist Rohdump statt ZIP-Sicherung Custom-Format mit pg_restore, einen SQL-Dump mit psql einspielen
Anhänge fehlen nach dem Einspielen Die Sicherung enthielt keinen Filestore ZIP-Sicherung mit Filestore verwenden; --no-filestore und das Format dump enthalten ihn nicht
Das Einspielen eines Rohdumps bricht bei Befehlen zur Eigentümerschaft ab Eigentümerangaben aus dem Archiv werden von pg_restore ausgeführt; die Befehle scheitern, wenn die Verbindung nicht von einem Superuser oder dem bisherigen Eigentümer kommt Mit pg_restore --no-owner einspielen oder die Verbindung mit dem passenden Benutzer herstellen
Das Anlegen einer Datenbank scheitert in PostgreSQL Dem PostgreSQL-Benutzer fehlt das Recht createdb Dem PostgreSQL-Benutzer das Recht createdb geben; die Kommandowege db load, db duplicate und db init legen die Datenbank über denselben Benutzer an und brauchen es ebenso

Wann Sie Hilfe holen sollten

Beim Wechsel des Hostingmodells: Eine Odoo-Online-Datenbank laden Sie als Sicherung herunter und spielen sie auf einem eigenen Server über die Verwaltung ein. Läuft sie auf einer Zwischenversion, muss sie vorher auf die nächste Hauptversion aktualisiert werden, weil eigene Server und Odoo.sh Zwischenversionen nicht unterstützen. Für den Weg zu Odoo Online erstellen Sie nach der Dokumentation eine Kopie ohne Fremdmodule, sichern sie samt Filestore und legen sie über ein Support-Ticket vor. Den Ablauf beschreibt der Artikel Hostingmodell wechseln. Bei mehreren Datenbanken, abgeschalteter Verwaltung oder großen Dateien ziehen Sie den Systemadministrator hinzu. Welche Pflichten beim Umgang mit personenbezogenen Daten in einer Kopie gelten, behandelt der Artikel DSGVO in Odoo umsetzen.

Häufige Fragen

Kann ich die Datei im Format pg_dump custom format über die Oberfläche wieder einspielen?

Nein. Die Wiederherstellung liest im Community-Zweig 20.0 ein ZIP-Archiv; ein Rohdump im Custom-Format ist kein Archiv und wird nicht geladen. Auch der Befehl odoo-bin db load bricht für solche Dateien mit dem Hinweis ab, dass ein Rohdump mit pg_restore einzuspielen ist. Nutzen Sie pg_restore -d Datenbankname Datei.dump; der Filestore fehlt in dieser Datei. Nach der PostgreSQL-Dokumentation (18, pg_restore) führt der Befehl die Eigentümerangaben aus dem Archiv aus; er scheitert daran, wenn die Verbindung nicht von einem Superuser oder dem bisherigen Eigentümer kommt. Mit pg_restore --no-owner lassen Sie diese Angaben weg.

Überschreibt das Einspielen meine laufende Datenbank?

Nein. Im Community-Zweig 20.0 legt Odoo eine neue, leere Datenbank an und füllt sie aus der Datei. Ist der Zielname schon vergeben, bricht der Vorgang mit dem Hinweis ab, dass die Datenbank bereits existiert. Der Befehl db load löscht ein vorhandenes Ziel nur mit dem Schalter --force.

Brauche ich für die Befehle das Master-Passwort?

Nein. Im Community-Zweig 20.0 arbeiten odoo-bin db dump und db load mit den Datenbankoptionen und dem Datenverzeichnis direkt auf PostgreSQL und fragen kein Master-Passwort ab. Die Befehle funktionieren deshalb auch dann, wenn die Verwaltung mit list_db = False abgeschaltet ist.

Können Anwender während der Sicherung weiterarbeiten?

Ja. Nach der PostgreSQL-Dokumentation (25.1 SQL Dump, Version 18) blockiert pg_dump andere Vorgänge auf der Datenbank nicht; ausgenommen sind Vorgänge, die eine exklusive Sperre brauchen, etwa die meisten Formen von ALTER TABLE. Der Dump ist zum Startzeitpunkt in sich konsistent. Der Filestore wird als Verzeichniskopie daneben gelegt und ist nicht Teil des Dumps. Prüfen Sie eine Sicherung aus dem laufenden Betrieb deshalb im Wiederherstellungstest.

Sichert ein Backup alle Datenbanken der Installation?

Nein. Im Community-Zweig 20.0 enthält jede Sicherung genau eine Datenbank, deshalb liegt neben jedem Datenbankeintrag eine eigene Backup-Schaltfläche. Mehrere Datenbanken sichern Sie nacheinander oder mit einem eigenen Skript; beim Befehl geben Sie den Datenbanknamen jeweils an.

Quellen

  1. System configuration, Abschnitte Database Manager Security und Reset the master password (Odoo 20.0)Odoo S.A., Dokumentation · abgerufen am
  2. Command-line interface, Abschnitte db dump, db load, db duplicate, db rename und db drop (Odoo 20.0)Odoo S.A., Dokumentation · abgerufen am
  3. Hosting, Abschnitt Change hosting solution (Odoo 20.0)Odoo S.A., Dokumentation · abgerufen am
  4. Odoo Online, Abschnitte Database manager und Download a backup (Odoo 20.0)Odoo S.A., Dokumentation · abgerufen am
  5. Odoo.sh Branches, Abschnitt Backups und Tabelle Import Database (Odoo 20.0)Odoo S.A., Dokumentation · abgerufen am
  6. Neutralized database (Odoo 20.0)Odoo S.A., Dokumentation · abgerufen am
  7. Updating Odoo, Abschnitt Step 2: Make a backup of your database (Odoo 20.0)Odoo S.A., Dokumentation · abgerufen am
  8. External JSON-2 API, Abschnitt Database service (Odoo 20.0)Odoo S.A., Dokumentation · abgerufen am
  9. Release Notes, Version 20 (veröffentlicht im September 2026)Odoo S.A. · abgerufen am
  10. PostgreSQL 18, 25.1 SQL DumpPostgreSQL Global Development Group · abgerufen am
  11. PostgreSQL 18, pg_dump, Abschnitt --no-ownerPostgreSQL Global Development Group · abgerufen am
  12. PostgreSQL 18, pg_restore, Abschnitt --no-ownerPostgreSQL Global Development Group · abgerufen am
  13. database_manager.qweb.html, Zweig 20.0 (Schaltflächen, Backup-Formate, Felder des Wiederherstellungsfensters)Odoo S.A., öffentlicher Quellcode (Community) · abgerufen am
  14. database.py, Zweig 20.0 (Routen /web/database/, Prüfung des Master-Passworts, Dateiname des Backups)Odoo S.A., öffentlicher Quellcode (Community) · abgerufen am
  15. modules/db.py, Zweig 20.0 (Funktionen dump, restore, duplicate, drop; Namensregel DB_NAME_RE)Odoo S.A., öffentlicher Quellcode (Community) · abgerufen am
  16. cli/db.py, Zweig 20.0 (db load, db dump, Schalter --force, --neutralize und --move)Odoo S.A., öffentlicher Quellcode (Community) · abgerufen am