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.
  • 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_dump per 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.

ComponenteScopo
Custom resource BobAbilita o sospende le operazioni di backup
ConfigMap di backupDefinisce pianificazioni, storage, retention e database di destinazione
CronJobEseguono i backup pianificati
Persistent volume claimArchiviano i file di backup
Script di backupCreano 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
  1. Il controller individua la ConfigMap con l'etichetta bob.ibm.com/backup-config: "true".
  2. Il controller crea CronJob e PVC per ogni cluster configurato.
  3. I CronJob vengono eseguiti secondo la pianificazione, eseguendo pg_dump per creare dump SQL compressi.
  4. Lo script di backup gestisce la retention, eliminando automaticamente i backup più vecchi.
  5. 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.meta

Il 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.
Come valuti questo argomento?