Copia de seguridad y restauración

Configura, gestiona y restaura copias de seguridad de la base de datos PostgreSQL para IBM Bob on-premises para proteger los datos de la aplicación y facilitar escenarios de recuperación.

IBM Bob on-premises utiliza un modelo de configuración de copias de seguridad basado en ConfigMap que separa las operaciones de backup del recurso personalizado (CR) de Bob. Los trabajos de backup se programan y gestionan automáticamente a través de Kubernetes CronJobs, con políticas de retención y configuraciones de almacenamiento configurables.

Las copias de seguridad de PostgreSQL crean una copia restaurable de las bases de datos de IBM Bob y Keycloak. Estas copias de seguridad se pueden utilizar para recuperar datos después de una interrupción, migrar datos entre clústeres o restaurar un estado de base de datos anterior conocido como válido.

IBM Bob admite tanto copias de seguridad programadas automatizadas como la ejecución manual de backups.

Funciones principales

Programación automatizada

Las copias de seguridad se ejecutan automáticamente usando Kubernetes CronJobs. Los programas de backup se definen usando expresiones cron estándar, lo que te permite configurar la frecuencia de backup según los requisitos operativos y de recuperación.

Gestión automática de retención

La retención de copias de seguridad se gestiona automáticamente para ayudar a controlar el consumo de almacenamiento. Después de cada backup exitoso, se eliminan las copias de seguridad más antiguas que superan el límite de retención configurado. De forma predeterminada, el sistema retiene los siete backups más recientes por clúster.

Soporte de backup multi-clúster

Una sola configuración de backup puede gestionar copias de seguridad para múltiples clústeres de PostgreSQL. El operador crea y mantiene recursos de backup dedicados para cada clúster configurado, lo que permite una gestión centralizada del backup en todo el despliegue.

Detección automática de imagen PostgreSQL

El sistema de backup puede detectar y usar automáticamente la imagen del contenedor PostgreSQL de los clústeres de base de datos en ejecución. Esto elimina la necesidad de especificar manualmente la versión de la imagen y ayuda a garantizar la compatibilidad entre los trabajos de backup y el entorno de base de datos de destino.

Configuración basada en ConfigMap

Los ajustes de backup se almacenan en un ConfigMap dedicado, separado del recurso personalizado (CR) de Bob. Esta separación simplifica la gestión operacional y permite modificar los programas de backup, la configuración de almacenamiento y las políticas de retención de forma independiente a la configuración de despliegue de la aplicación.

Compresión automática

Los volcados de base de datos se comprimen automáticamente con gzip antes de ser almacenados. La compresión reduce los requisitos de almacenamiento y ayuda a optimizar la retención de backups dentro de la capacidad de almacenamiento disponible.

Seguimiento de metadatos de backup

Cada copia de seguridad incluye un archivo de metadatos con detalles como la marca de tiempo del backup, el nombre de la base de datos, el host, el puerto y el tamaño del backup. Esta información te ayuda a validar la integridad del backup, realizar un seguimiento del historial de backups e identificar el backup correcto para la restauración.

Qué se incluye en una copia de seguridad

Las copias de seguridad de la base de datos capturan todos los objetos y datos de la base de datos PostgreSQL necesarios para reconstruir un entorno de base de datos.

Las copias de seguridad incluyen:

  • Bases de datos PostgreSQL (si están configuradas):
    • Base de datos Bob (bob) — la base de datos principal de la aplicación, incluidas las cuentas de usuario e información de autenticación, proyectos y conversaciones, resultados del análisis de código, y configuración y ajustes específicos de la aplicación.
    • Base de datos Keycloak (app) — la base de datos de Keycloak utilizada para la autenticación y la gestión de identidades, incluidas las credenciales de usuario e información de perfil, las configuraciones OAuth y OpenID Connect (OIDC), la configuración del realm, y las configuraciones de clientes y proveedores de identidad.
  • Esquema de base de datos — todos los objetos necesarios para recrear la estructura de la base de datos, incluidas tablas, índices y restricciones; procedimientos almacenados y funciones; vistas y triggers; y secuencias y tipos personalizados.
  • Datos de la base de datos — el proceso de backup usa pg_dump para crear un volcado completo de la base de datos PostgreSQL, capturando todos los datos almacenados en las tablas de la base de datos, todas las filas y registros, y objetos binarios grandes (BLOBs) si están presentes.

Qué no se incluye en una copia de seguridad

Las copias de seguridad de PostgreSQL no capturan recursos de Kubernetes ni configuración de la aplicación.

Los siguientes elementos deben gestionarse por separado:

  • ConfigMaps
  • Secrets
  • Deployments y Services
  • Recursos Ingress
  • Logs de la aplicación
  • Datos de modelos y embeddings
  • Volúmenes persistentes que no son de base de datos

Arquitectura de backup

IBM Bob utiliza recursos nativos de Kubernetes para crear y gestionar copias de seguridad de la base de datos.

ComponentePropósito
Recurso personalizado BobHabilita o suspende las operaciones de backup
ConfigMap de backupDefine programas, almacenamiento, retención y bases de datos de destino
CronJobsEjecutan los backups programados
Persistent volume claimsAlmacenan los archivos de backup
Scripts de backupCrean backups y gestionan la retención

El proceso de backup sigue este flujo de trabajo:

Bob CR (enabled: true) → ConfigMap Discovery → Controller Reconciliation → CronJob Execution
  1. El controlador descubre el ConfigMap con la etiqueta bob.ibm.com/backup-config: "true".
  2. El controlador crea CronJobs y PVCs para cada clúster configurado.
  3. Los CronJobs se ejecutan según el programa, usando pg_dump para crear volcados SQL comprimidos.
  4. El script de backup gestiona la retención, eliminando automáticamente los backups antiguos.
  5. Cada backup incluye un archivo de metadatos con marca de tiempo, tamaño e información de la base de datos.

Cuando los backups están habilitados, el operador descubre automáticamente la configuración de backup, crea los recursos necesarios y programa los trabajos de backup según la frecuencia configurada.

Estructura de archivos de backup

Los archivos de backup se almacenan en persistent volume claims (PVCs) dedicados. Cada clúster PostgreSQL configurado tiene su propio directorio con los archivos de backup y los metadatos asociados.

/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

El proceso de backup genera los siguientes archivos para cada copia de seguridad:

  • .sql.gz — volcado SQL comprimido (formato de texto plano, comprimido con gzip)
  • .sql.gz.meta — archivo de metadatos con marca de tiempo, nombre de la base de datos, tamaño, host y puerto

Capacidades de recuperación

IBM Bob admite múltiples escenarios de recuperación para ayudarte a restaurar datos, recuperarte de fallos y migrar bases de datos entre entornos:

  • Restauración completa de la base de datos — restaura una base de datos PostgreSQL completa desde un archivo de backup.
  • Recuperación a un momento dado — restaura una base de datos a una instancia de backup específica seleccionando el archivo de backup requerido según su marca de tiempo.
  • Migración entre clústeres — restaura un backup en un clúster PostgreSQL diferente, lo que permite la migración de la base de datos entre entornos.
¿Cómo es este tema?