Backup e ripristino
Configura, gestisci e ripristina i backup del database PostgreSQL per IBM Bob on-premises per proteggere i dati applicativi e supportare scenari di recovery.
IBM Bob on-premises utilizza un modello di configurazione del backup basato su ConfigMap che separa le operazioni di backup dalla custom resource (CR) di Bob. I job di backup vengono pianificati e gestiti automaticamente tramite Kubernetes CronJob, con policy di retention e impostazioni di storage configurabili.
I backup PostgreSQL creano una copia ripristinabile dei database IBM Bob e Keycloak. Questi backup possono essere utilizzati per recuperare dati dopo un'interruzione, migrare dati tra cluster o ripristinare uno stato del database precedentemente funzionante.
IBM Bob supporta sia i backup pianificati automatici che l'esecuzione manuale dei backup.
Funzionalità principali
Pianificazione automatica
I backup vengono eseguiti automaticamente tramite Kubernetes CronJob. Le pianificazioni dei backup sono definite usando espressioni cron standard, consentendo di configurare la frequenza di backup in base ai requisiti operativi e di recovery.
Gestione automatica della retention
La retention dei backup viene gestita automaticamente per controllare il consumo di storage. Dopo ogni backup riuscito, i backup più vecchi che superano il limite di retention configurato vengono rimossi. Per impostazione predefinita, il sistema conserva i sette backup più recenti per cluster.
Supporto backup multi-cluster
Un'unica configurazione di backup può gestire i backup per più cluster PostgreSQL. L'operator crea e mantiene risorse di backup dedicate per ogni cluster configurato, abilitando la gestione centralizzata dei backup nell'intero deployment.
Rilevamento automatico dell'immagine PostgreSQL
Il sistema di backup può rilevare e utilizzare automaticamente l'immagine container PostgreSQL dai cluster di database in esecuzione. Questo elimina la necessità di specificare manualmente la versione dell'immagine e garantisce la compatibilità tra i job di backup e l'ambiente di database di destinazione.
Configurazione basata su ConfigMap
Le impostazioni di backup sono memorizzate in una ConfigMap dedicata, separata dalla custom resource (CR) di Bob. Questa separazione semplifica la gestione operativa e consente di modificare le pianificazioni, le impostazioni di storage e le policy di retention indipendentemente dalla configurazione del deployment dell'applicazione.
Compressione automatica
I dump del database vengono automaticamente compressi con gzip prima di essere archiviati. La compressione riduce i requisiti di storage e ottimizza la retention dei backup nell'ambito della capacità di storage disponibile.
Tracciamento dei metadati di backup
Ogni backup include un file di metadati contenente dettagli come il timestamp del backup, il nome del database, l'host, la porta e la dimensione del backup. Queste informazioni aiutano a convalidare l'integrità del backup, tracciare la cronologia dei backup e identificare il backup corretto per il ripristino.
Cosa è incluso in un backup
I backup del database acquisiscono tutti gli oggetti e i dati del database PostgreSQL necessari per ricostruire un ambiente di database.
I backup includono:
- Database PostgreSQL (se configurati):
- Database Bob (
bob) — il database applicativo principale, inclusi account utente e informazioni di autenticazione, progetti e conversazioni, risultati di analisi del codice, e configurazioni e impostazioni specifiche dell'applicazione. - Database Keycloak (
app) — il database Keycloak utilizzato per l'autenticazione e la gestione delle identità, inclusi credenziali utente e informazioni del profilo, configurazioni OAuth e OpenID Connect (OIDC), impostazioni del realm, e configurazioni di client e identity provider.
- Database Bob (
- Schema del database — tutti gli oggetti necessari per ricreare la struttura del database, inclusi tabelle, indici e vincoli; stored procedure e funzioni; viste e trigger; e sequenze e tipi personalizzati.
- Dati del database — il processo di backup utilizza
pg_dumpper creare un dump completo del database PostgreSQL, acquisendo tutti i dati memorizzati nelle tabelle del database, tutte le righe e i record, e i binary large object (BLOB) se presenti.
Cosa non è incluso in un backup
I backup PostgreSQL non acquisiscono le risorse Kubernetes o la configurazione dell'applicazione.
I seguenti elementi devono essere gestiti separatamente:
- ConfigMap
- Secret
- Deployment e Service
- Risorse Ingress
- Log applicativi
- Dati del modello ed embedding
- Persistent volume non di database
Architettura di backup
IBM Bob utilizza risorse native di Kubernetes per creare e gestire i backup del database.
| Componente | Scopo |
|---|---|
| Custom resource Bob | Abilita o sospende le operazioni di backup |
| ConfigMap di backup | Definisce pianificazioni, storage, retention e database di destinazione |
| CronJob | Eseguono i backup pianificati |
| Persistent volume claim | Archiviano i file di backup |
| Script di backup | Creano i backup e gestiscono la retention |
Il processo di backup segue questo flusso di lavoro:
Bob CR (enabled: true) → ConfigMap Discovery → Controller Reconciliation → CronJob Execution- Il controller individua la ConfigMap con l'etichetta
bob.ibm.com/backup-config: "true". - Il controller crea CronJob e PVC per ogni cluster configurato.
- I CronJob vengono eseguiti secondo la pianificazione, eseguendo
pg_dumpper creare dump SQL compressi. - Lo script di backup gestisce la retention, eliminando automaticamente i backup più vecchi.
- Ogni backup include un file di metadati con timestamp, dimensione e informazioni sul database.
Quando i backup sono abilitati, l'operator individua automaticamente la configurazione di backup, crea le risorse necessarie e pianifica i job di backup in base alla frequenza configurata.
Struttura dei file di backup
I file di backup sono archiviati su persistent volume claim (PVC) dedicati. Ogni cluster PostgreSQL configurato ha la propria directory contenente i file di backup e i metadati associati.
/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.metaIl processo di backup genera i seguenti file per ogni backup:
.sql.gz— dump SQL compresso (formato testo normale, compresso con gzip).sql.gz.meta— file di metadati con timestamp, nome del database, dimensione, host e porta
Capacità di recovery
IBM Bob supporta più scenari di recovery per aiutarti a ripristinare i dati, recuperare da guasti e migrare i database tra ambienti:
- Ripristino completo del database — ripristina un intero database PostgreSQL da un file di backup.
- Recovery point-in-time — ripristina un database a una specifica istanza di backup selezionando il file di backup richiesto in base al suo timestamp.
- Migrazione cross-cluster — ripristina un backup su un cluster PostgreSQL diverso, abilitando la migrazione del database tra ambienti.