Sauvegarde et restauration
Configurez, gérez et restaurez les sauvegardes de base de données PostgreSQL pour IBM Bob on-premises afin de protéger les données applicatives et de prendre en charge les scénarios de reprise.
IBM Bob on-premises utilise un modèle de configuration de sauvegarde basé sur des ConfigMaps qui sépare les opérations de sauvegarde de la ressource personnalisée (CR) Bob. Les tâches de sauvegarde sont automatiquement planifiées et gérées via des CronJobs Kubernetes, avec des politiques de rétention et des paramètres de stockage configurables.
Les sauvegardes PostgreSQL créent une copie restaurable des bases de données IBM Bob et Keycloak. Ces sauvegardes peuvent être utilisées pour récupérer des données après une panne, migrer des données entre clusters ou restaurer un état stable antérieur de la base de données.
IBM Bob prend en charge à la fois les sauvegardes automatiques planifiées et l'exécution manuelle de sauvegardes.
Fonctionnalités clés
Planification automatisée
Les sauvegardes sont exécutées automatiquement à l'aide de CronJobs Kubernetes. Les planifications de sauvegarde sont définies à l'aide d'expressions cron standard, vous permettant de configurer la fréquence de sauvegarde en fonction des exigences opérationnelles et de reprise.
Gestion automatique de la rétention
La rétention des sauvegardes est gérée automatiquement pour aider à contrôler la consommation de stockage. Après chaque sauvegarde réussie, les sauvegardes plus anciennes qui dépassent la limite de rétention configurée sont supprimées. Par défaut, le système conserve les sept sauvegardes les plus récentes par cluster.
Prise en charge des sauvegardes multi-clusters
Une seule configuration de sauvegarde peut gérer les sauvegardes de plusieurs clusters PostgreSQL. L'opérateur crée et gère des ressources de sauvegarde dédiées pour chaque cluster configuré, permettant une gestion centralisée des sauvegardes sur l'ensemble du déploiement.
Détection automatique de l'image PostgreSQL
Le système de sauvegarde peut détecter et utiliser automatiquement l'image de conteneur PostgreSQL des clusters de bases de données en cours d'exécution. Cela élimine la nécessité de spécifier manuellement la version de l'image et garantit la compatibilité entre les tâches de sauvegarde et l'environnement de base de données cible.
Configuration basée sur des ConfigMaps
Les paramètres de sauvegarde sont stockés dans une ConfigMap dédiée, distincte de la ressource personnalisée (CR) Bob. Cette séparation simplifie la gestion opérationnelle et permet de modifier les planifications de sauvegarde, les paramètres de stockage et les politiques de rétention indépendamment de la configuration du déploiement de l'application.
Compression automatique
Les dumps de base de données sont automatiquement compressés à l'aide de gzip avant d'être stockés. La compression réduit les besoins de stockage et optimise la rétention des sauvegardes dans la limite de la capacité de stockage disponible.
Suivi des métadonnées de sauvegarde
Chaque sauvegarde comprend un fichier de métadonnées contenant des détails tels que l'horodatage de la sauvegarde, le nom de la base de données, l'hôte, le port et la taille de la sauvegarde. Ces informations vous aident à valider l'intégrité des sauvegardes, à suivre l'historique des sauvegardes et à identifier la sauvegarde appropriée pour la restauration.
Ce qui est inclus dans une sauvegarde
Les sauvegardes de base de données capturent tous les objets et données de base de données PostgreSQL nécessaires pour reconstruire un environnement de base de données.
Les sauvegardes comprennent :
- Bases de données PostgreSQL (si configurées) :
- Base de données Bob (
bob) — la base de données principale de l'application, comprenant les comptes utilisateurs et les informations d'authentification, les projets et conversations, les résultats d'analyse de code, ainsi que la configuration et les paramètres spécifiques à l'application. - Base de données Keycloak (
app) — la base de données Keycloak utilisée pour l'authentification et la gestion des identités, comprenant les identifiants et informations de profil des utilisateurs, les configurations OAuth et OpenID Connect (OIDC), les paramètres de realm, ainsi que les configurations de clients et de fournisseurs d'identité.
- Base de données Bob (
- Schéma de base de données — tous les objets nécessaires pour recréer la structure de la base de données, y compris les tables, index et contraintes ; les procédures stockées et fonctions ; les vues et déclencheurs ; ainsi que les séquences et types personnalisés.
- Données de base de données — le processus de sauvegarde utilise
pg_dumppour créer un dump complet de la base de données PostgreSQL, capturant toutes les données stockées dans les tables de la base de données, l'ensemble des lignes et enregistrements, ainsi que les objets volumineux binaires (BLOB) le cas échéant.
Ce qui n'est pas inclus dans une sauvegarde
Les sauvegardes PostgreSQL ne capturent pas les ressources Kubernetes ni la configuration de l'application.
Les éléments suivants doivent être gérés séparément :
- ConfigMaps
- Secrets
- Deployments et Services
- Ressources Ingress
- Journaux applicatifs
- Données de modèle et embeddings
- Volumes persistants hors base de données
Architecture de sauvegarde
IBM Bob utilise des ressources natives Kubernetes pour créer et gérer les sauvegardes de bases de données.
| Composant | Rôle |
|---|---|
| Ressource personnalisée Bob | Active ou suspend les opérations de sauvegarde |
| ConfigMap de sauvegarde | Définit les planifications, le stockage, la rétention et les bases de données cibles |
| CronJobs | Exécutent les sauvegardes planifiées |
| Persistent Volume Claims (PVC) | Stockent les fichiers de sauvegarde |
| Scripts de sauvegarde | Créent les sauvegardes et gèrent la rétention |
Le processus de sauvegarde suit ce flux de travail :
Bob CR (enabled: true) → Découverte de la ConfigMap → Réconciliation du contrôleur → Exécution du CronJob- Le contrôleur découvre la ConfigMap portant le label
bob.ibm.com/backup-config: "true". - Le contrôleur crée les CronJobs et les PVC pour chaque cluster configuré.
- Les CronJobs s'exécutent selon la planification, exécutant
pg_dumppour créer des dumps SQL compressés. - Le script de sauvegarde gère la rétention, supprimant automatiquement les anciennes sauvegardes.
- Chaque sauvegarde comprend un fichier de métadonnées avec l'horodatage, la taille et les informations de base de données.
Lorsque les sauvegardes sont activées, l'opérateur découvre automatiquement la configuration de sauvegarde, crée les ressources requises et planifie les tâches de sauvegarde selon la fréquence configurée.
Structure des fichiers de sauvegarde
Les fichiers de sauvegarde sont stockés sur des Persistent Volume Claims (PVC) dédiés. Chaque cluster PostgreSQL configuré possède son propre répertoire contenant les fichiers de sauvegarde et les métadonnées associées.
/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.metaLe processus de sauvegarde génère les fichiers suivants pour chaque sauvegarde :
.sql.gz— dump SQL compressé (format texte brut, compressé avec gzip).sql.gz.meta— fichier de métadonnées avec horodatage, nom de base de données, taille, hôte et port
Capacités de reprise
IBM Bob prend en charge plusieurs scénarios de reprise pour vous aider à restaurer des données, récupérer après des pannes et migrer des bases de données entre environnements :
- Restauration complète de la base de données — restaurez l'intégralité d'une base de données PostgreSQL à partir d'un fichier de sauvegarde.
- Restauration à un point dans le temps — restaurez une base de données vers une instance de sauvegarde spécifique en sélectionnant le fichier de sauvegarde requis d'après son horodatage.
- Migration inter-clusters — restaurez une sauvegarde vers un cluster PostgreSQL différent, permettant la migration de la base de données entre environnements.