Runbook: Backup und Restore
PRX-26. Owner (provisorisch): Elena Weiss (DevOps/Platform Lead).
Geltungsbereich
Betrifft ausschließlich die Datenbank procurex_db in der geteilten enterprise-infrastructure-Postgres-
Instanz. PROCUREX-Anwendungscontainer selbst sind zustandslos (kein PersistentVolume), daher kein
Anwendungs-Backup nötig.
Backup
docker exec -e PGPASSWORD=<passwort> shared-postgres pg_dump --username procurex_user \
--dbname procurex_db --format=custom --file=/tmp/procurex_db.dump
docker cp shared-postgres:/tmp/procurex_db.dump ./procurex_db_$(date +%Y%m%d).dump
Restore
docker cp ./procurex_db_<datum>.dump shared-postgres:/tmp/procurex_db.dump
docker exec -e PGPASSWORD=<admin-passwort> shared-postgres pg_restore --username admin \
--dbname procurex_db --clean --if-exists /tmp/procurex_db.dump
Wichtig: --dbname procurex_db, niemals --dbname postgres (das ist die Bootstrap-Datenbank
der geteilten Instanz, siehe shared/enterprise-infrastructure/postgres/init-project-databases.sh — ein Restore
gegen die falsche Datenbank würde andere Lernprojekte gefährden, siehe Risiken unten).
Testnachweis: Nicht live durchgeführt in dieser Runde (kein Testdatenbestand vorhanden, alle
Tabellen sind aktuell leer). Befehle basieren auf dem in shared/enterprise-infrastructure/README.md dokumentierten
Zugriffsmuster (siehe procurex-app/README.md, Abschnitt "enterprise-infrastructure anbinden") und wurden
gegen die reale Instanz nur für DB/User-Anlage (nicht Backup/Restore) verifiziert.
Risiken
- Die Postgres-Instanz ist geteilt mit anderen Lernprojekten (aktuell nur
keycloak_db
zusätzlich zu procurex_db). Ein docker compose down -v auf enterprise-infrastructure würde alle
Projekte gleichzeitig betreffen — niemals ohne Rücksprache ausführen (siehe Confluence Seite 12,
Betriebsregeln).
- Kein automatisiertes/geplantes Backup eingerichtet — rein manueller Prozess, Lernprojekt-Status.
Eskalation
Restore schlägt fehl oder Datenintegrität fraglich: Incident-Runbook (incident.md) folgen,
zusätzlich Rücksprache vor jeder Aktion, die andere Projekte in enterprise-infrastructure betreffen könnte.