Datenbanken und Wiederherstellung
PostgreSQL-Restore proben: Daten, Rechte und Anwendung gemeinsam abnehmen
Eine vorhandene Sicherungsdatei ist ein Ausgangspunkt. Ob der Betrieb mit ihr wieder aufgenommen werden kann, zeigt erst eine kontrollierte Probe mit nachvollziehbarem Datenstand, passenden Rechten und einer verwendbaren Anwendung.
Dieser Praxisleitfaden stützt sich auf die PostgreSQL-18-Dokumentation und empfiehlt keine Migration auf einen Release Candidate. pg_dump sichert eine einzelne Datenbank, nicht globale Rollen oder Tablespaces. Text-Dumps werden mit psql eingespielt; geeignete Archivformate wie custom/directory mit pg_restore. (PostgreSQL Global Development Group)
Das Ziel vor der Probe definieren
Legen Sie den tolerierbaren Datenverlust und die angestrebte Wiederanlaufzeit als eigene Geschäftsziele fest. RPO und RTO sind hier Vorgaben, keine gemessenen Werte. Eine Abnahme muss zeigen, welchen fachlichen Stand die Probe tatsächlich erreicht und wann die Anwendung wieder den vereinbarten Vorgang erledigen kann.
| Zu protokollieren | Wozu es dient |
|---|---|
| Zeitpunkt und Identität der Sicherung | Verwendetes Artefakt eindeutig bestimmen |
| Letzter belegter fachlicher Vorgang im wiederhergestellten Stand | Erreichte Datenaktualität bewerten |
| Beginn der Wiederherstellung und Zeitpunkt nutzbarer Anwendung | Wiederanlauf mit dem eigenen Ziel vergleichen |
| Abweichungen und unvollständige Schritte | Keine Teilwiederherstellung als vollständig ausgeben |
Ein getrenntes Ziel und eine vertrauenswürdige Quelle
Die Dokumentation warnt: Ein Restore führt vom Quellsuperuser gewählten Code aus; auch eine Teilwiederherstellung beseitigt dieses Vertrauensproblem nicht. --single-transaction impliziert --exit-on-error und ist mit parallelen Jobs unvereinbar. Solche Optionen müssen zum vorgesehenen Verfahren passen. (PostgreSQL Global Development Group)
Bereiten Sie eine ausdrücklich dafür vorgesehene, getrennte Zielumgebung vor. Prüfen Sie deren Identität, bevor eine Verbindung hergestellt wird. Ein frei erfundener Datenbankname in einem kopierten Befehl ist keine Isolation. Diese Anleitung enthält deshalb keinen automatischen Lösch- oder Überschreibungsbefehl für eine vorhandene Installation.
Sperren oder ersetzen Sie im Versuch nicht benötigte Aussenverbindungen: E-Mail, Zahlungen, Webhooks und andere Folgeaktionen dürfen aus Testdaten keinen echten Geschäftsvorgang auslösen. Klären Sie den Zugriff auf die Sicherung und die Entsorgung der Testkopie im freigegebenen Verfahren.
Datenbank und Anwendung in derselben Probe betrachten
- Umgebung erfassen: Quell-/Zielversionen, benötigte Erweiterungen, Rollen und weitere Voraussetzungen dokumentieren.
- Wiederherstellung beobachten: Ausgaben, Fehler und offene Schritte sichern. Ein abgebrochener oder teilweise erfolgreicher Lauf bleibt als solcher sichtbar.
- Daten prüfen: repräsentative Datensätze und fachliche Invarianten auswählen; eine Gesamtzeilenzahl allein ist kein Richtigkeitsnachweis.
- Rechte prüfen: die vorgesehenen Anwendungsrollen verwenden. Eine erfolgreiche Abfrage als Administrator beweist nicht den Zugriff der Anwendung.
- Anwendung prüfen: mindestens den vereinbarten repräsentativen Geschäftspfad mit isolierten Testmitteln abnehmen. Erst hier wird die zuvor festgelegte Nutzbarkeit bewertet.
Hypothetisches Beispiel: Eine interne Anwendung soll einen vorhandenen Auftrag finden und dessen zugehörige Positionen anzeigen. In der Probe werden Identität, Zuordnung und Lesezugriff mit erlaubten Testdaten kontrolliert. Eine erfolgreiche Verbindung ohne diese Abfragen wäre dafür zu wenig. Der Ablauf wurde hier nicht ausgeführt.
Eine andere Wiederherstellungsstrategie braucht andere Nachweise
Ein logischer pg_dump ist keine Basis für WAL-Replay oder Point-in-Time Recovery. Die dafür beschriebene Strategie kombiniert geeignete Dateisystem-/Basisbackups und archiviertes WAL. Ein einfacher Dump belegt diese Fähigkeit nicht. (PostgreSQL Global Development Group)
Wenn Ihr RPO einen Zeitpunkt erfordert, den das vorhandene Artefakt nicht abdeckt, muss das Sicherungsverfahren neu bewertet werden. Eine schnellere Restore-Ausführung kann fehlende Datenaktualität nicht ersetzen. Dokumentieren Sie diese Lücke getrennt von Leistungsproblemen oder einem fehlenden Anwendungsrecht.
Die Probe als Betriebsaufgabe abschliessen
PostgreSQL steht unter der permissiven PostgreSQL License. Speicher, Testkapazität und die Durchführung einer Probe bleiben trotzdem zu organisieren und zu finanzieren. (PostgreSQL Global Development Group)
Ein vollständiger Abschluss benennt erreichten Datenstand, verwendbare Anwendung, offene Abweichungen und einen Verantwortlichen für deren Behebung. Legen Sie anschliessend fest, wann das Verfahren nach Änderungen an Versionen, Erweiterungen oder Anwendung erneut geprüft werden muss. Dieser Leitfaden liefert den Prüfrahmen, keinen bereits bestandenen Restore-Nachweis.
Quellen
- PostgreSQL18: SQL Dump — PostgreSQL Global Development Group
- PostgreSQL18: pg_restore — PostgreSQL Global Development Group
- PostgreSQL License — PostgreSQL Global Development Group
- PostgreSQL18: Continuous Archiving and PITR — PostgreSQL Global Development Group