Backup und Wiederherstellung
Konfiguriere, verwalte und stelle PostgreSQL-Datenbank-Backups für IBM Bob On-Premises wieder her, um Anwendungsdaten zu schützen und Recovery-Szenarien zu unterstützen.
IBM Bob On-Premises verwendet ein ConfigMap-basiertes Backup-Konfigurationsmodell, das Backup-Operationen von der benutzerdefinierten Bob-Ressource (CR) trennt. Backup-Jobs werden automatisch über Kubernetes-CronJobs geplant und verwaltet, mit konfigurierbaren Aufbewahrungsrichtlinien und Speichereinstellungen.
PostgreSQL-Backups erstellen eine wiederherstellbare Kopie der IBM-Bob- und Keycloak-Datenbanken. Diese Backups können verwendet werden, um Daten nach einem Ausfall wiederherzustellen, Daten zwischen Clustern zu migrieren oder einen früheren bekannt-guten Datenbankzustand wiederherzustellen.
IBM Bob unterstützt sowohl automatisierte geplante Backups als auch manuelle Backup-Ausführung.
Hauptfunktionen
Automatisierte Planung
Backups werden automatisch mit Kubernetes-CronJobs ausgeführt. Backup-Zeitpläne werden mit Standard-Cron-Ausdrücken definiert, sodass du die Backup-Häufigkeit basierend auf betrieblichen und Recovery-Anforderungen konfigurieren kannst.
Automatisches Aufbewahrungsmanagement
Die Backup-Aufbewahrung wird automatisch verwaltet, um den Speicherverbrauch zu kontrollieren. Nach jedem erfolgreichen Backup werden ältere Backups, die das konfigurierte Aufbewahrungslimit überschreiten, entfernt. Standardmäßig behält das System die sieben aktuellsten Backups pro Cluster.
Multi-Cluster-Backup-Unterstützung
Eine einzige Backup-Konfiguration kann Backups für mehrere PostgreSQL-Cluster verwalten. Der Operator erstellt und pflegt dedizierte Backup-Ressourcen für jeden konfigurierten Cluster und ermöglicht so ein zentralisiertes Backup-Management im gesamten Deployment.
PostgreSQL-Image-Automatische-Erkennung
Das Backup-System kann das PostgreSQL-Container-Image von laufenden Datenbank-Clustern automatisch erkennen und verwenden. Dadurch entfällt die Notwendigkeit, die Image-Version manuell anzugeben, und es wird die Kompatibilität zwischen Backup-Jobs und der Zieldatenbankumgebung sichergestellt.
ConfigMap-basierte Konfiguration
Backup-Einstellungen werden in einer dedizierten ConfigMap gespeichert, getrennt von der benutzerdefinierten Bob-Ressource (CR). Diese Trennung vereinfacht das Betriebsmanagement und ermöglicht es, Backup-Zeitpläne, Speichereinstellungen und Aufbewahrungsrichtlinien unabhängig von der Anwendungs-Deployment-Konfiguration zu ändern.
Automatische Komprimierung
Datenbank-Dumps werden automatisch mit gzip komprimiert, bevor sie gespeichert werden. Komprimierung reduziert den Speicherbedarf und hilft, die Backup-Aufbewahrung innerhalb der verfügbaren Speicherkapazität zu optimieren.
Backup-Metadaten-Tracking
Jedes Backup enthält eine Metadatendatei mit Details wie dem Backup-Zeitstempel, Datenbanknamen, Host, Port und Backup-Größe. Diese Informationen helfen dir, die Backup-Integrität zu validieren, den Backup-Verlauf zu verfolgen und das richtige Backup für die Wiederherstellung zu identifizieren.
Was in einem Backup enthalten ist
Datenbank-Backups erfassen alle PostgreSQL-Datenbankobjekte und -daten, die zum Rekonstruieren einer Datenbankumgebung erforderlich sind.
Backups umfassen:
- PostgreSQL-Datenbanken (falls konfiguriert):
- Bob-Datenbank (
bob) — die primäre Anwendungsdatenbank, einschließlich Benutzerkonten und Authentifizierungsinformationen, Projekte und Konversationen, Code-Analyseergebnisse sowie anwendungsspezifische Konfiguration und Einstellungen. - Keycloak-Datenbank (
app) — die Keycloak-Datenbank für Authentifizierung und Identitätsmanagement, einschließlich Benutzeranmeldeinformationen und Profilinformationen, OAuth- und OpenID-Connect-(OIDC-)Konfigurationen, Realm-Einstellungen sowie Client- und Identitätsprovider-Konfigurationen.
- Bob-Datenbank (
- Datenbankschema — alle Objekte, die zum Rekonstruieren der Datenbankstruktur erforderlich sind, einschließlich Tabellen, Indizes und Constraints; gespeicherte Prozeduren und Funktionen; Views und Trigger; sowie Sequenzen und benutzerdefinierte Typen.
- Datenbankdaten — der Backup-Prozess verwendet
pg_dump, um einen vollständigen PostgreSQL-Datenbank-Dump zu erstellen, der alle in Datenbanktabellen gespeicherten Daten, alle Zeilen und Datensätze sowie Binary Large Objects (BLOBs) erfasst, sofern vorhanden.
Was nicht in einem Backup enthalten ist
PostgreSQL-Backups erfassen keine Kubernetes-Ressourcen oder Anwendungskonfiguration.
Die folgenden Elemente müssen separat verwaltet werden:
- ConfigMaps
- Secrets
- Deployments und Services
- Ingress-Ressourcen
- Anwendungsprotokolle
- Modelldaten und Embeddings
- Nicht-datenbank-bezogene Persistent Volumes
Backup-Architektur
IBM Bob verwendet Kubernetes-native Ressourcen zum Erstellen und Verwalten von Datenbank-Backups.
| Komponente | Zweck |
|---|---|
| Benutzerdefinierte Bob-Ressource | Aktiviert oder pausiert Backup-Operationen |
| Backup-ConfigMap | Definiert Zeitpläne, Speicher, Aufbewahrung und Zieldatenbanken |
| CronJobs | Führen geplante Backups aus |
| Persistent Volume Claims | Speichern Backup-Dateien |
| Backup-Skripte | Erstellen Backups und verwalten Aufbewahrung |
Der Backup-Prozess folgt diesem Workflow:
Bob CR (enabled: true) → ConfigMap Discovery → Controller Reconciliation → CronJob Execution- Der Controller entdeckt die ConfigMap mit dem Label
bob.ibm.com/backup-config: "true". - Der Controller erstellt CronJobs und PVCs für jeden konfigurierten Cluster.
- CronJobs werden nach Zeitplan ausgeführt und führen
pg_dumpaus, um komprimierte SQL-Dumps zu erstellen. - Das Backup-Skript verwaltet die Aufbewahrung und löscht automatisch alte Backups.
- Jedes Backup enthält eine Metadatendatei mit Zeitstempel, Größe und Datenbankinformationen.
Wenn Backups aktiviert sind, erkennt der Operator automatisch die Backup-Konfiguration, erstellt die erforderlichen Ressourcen und plant Backup-Jobs entsprechend der konfigurierten Häufigkeit.
Backup-Dateistruktur
Backup-Dateien werden auf dedizierten Persistent Volume Claims (PVCs) gespeichert. Jeder konfigurierte PostgreSQL-Cluster hat sein eigenes Verzeichnis mit den Backup-Dateien und zugehörigen Metadaten.
/backups/
├── bob-db/
│ ├── backup_bob_20260902_020000.sql.gz
│ └── backup_bob_20260902_020000.sql.gz.meta
└── bob-keycloak-db/
├── backup_app_20260902_020000.sql.gz
└── backup_app_20260902_020000.sql.gz.metaDer Backup-Prozess generiert die folgenden Dateien für jedes Backup:
.sql.gz— komprimierter SQL-Dump (Klartextformat, gzip-komprimiert).sql.gz.meta— Metadatendatei mit Zeitstempel, Datenbankname, Größe, Host und Port
Recovery-Möglichkeiten
IBM Bob unterstützt mehrere Recovery-Szenarien, um dir zu helfen, Daten wiederherzustellen, nach Ausfällen zu erholen und Datenbanken zwischen Umgebungen zu migrieren:
- Vollständige Datenbankwiederherstellung — stelle eine gesamte PostgreSQL-Datenbank aus einer Backup-Datei wieder her.
- Point-in-time-Recovery — stelle eine Datenbank auf eine bestimmte Backup-Instanz wieder her, indem du die erforderliche Backup-Datei anhand ihres Zeitstempels auswählst.
- Cluster-übergreifende Migration — stelle ein Backup in einem anderen PostgreSQL-Cluster wieder her und ermögliche so die Datenbankmigration zwischen Umgebungen.