Backup e restauração
Configure, gerencie e restaure backups do banco de dados PostgreSQL para o IBM Bob on-premises a fim de proteger os dados da aplicação e suportar cenários de recuperação.
O IBM Bob on-premises usa um modelo de configuração de backup baseado em ConfigMap que separa as operações de backup do recurso personalizado (CR) do Bob. Os jobs de backup são agendados e gerenciados automaticamente por meio de CronJobs do Kubernetes, com políticas de retenção e configurações de armazenamento configuráveis.
Os backups do PostgreSQL criam uma cópia restaurável dos bancos de dados do IBM Bob e do Keycloak. Esses backups podem ser usados para recuperar dados após uma interrupção, migrar dados entre clusters ou restaurar um estado anterior conhecido e funcional do banco de dados.
O IBM Bob oferece suporte tanto a backups agendados automatizados quanto à execução manual de backups.
Principais funcionalidades
Agendamento automatizado
Os backups são executados automaticamente usando CronJobs do Kubernetes. Os agendamentos de backup são definidos usando expressões cron padrão, permitindo que você configure a frequência de backup com base nos requisitos operacionais e de recuperação.
Gerenciamento automático de retenção
A retenção de backups é gerenciada automaticamente para ajudar a controlar o consumo de armazenamento. Após cada backup bem-sucedido, os backups mais antigos que excedem o limite de retenção configurado são removidos. Por padrão, o sistema retém os sete backups mais recentes por cluster.
Suporte a backup multi-cluster
Uma única configuração de backup pode gerenciar backups de vários clusters PostgreSQL. O operador cria e mantém recursos de backup dedicados para cada cluster configurado, permitindo o gerenciamento centralizado de backups em toda a implantação.
Detecção automática de imagem PostgreSQL
O sistema de backup pode detectar e usar automaticamente a imagem de contêiner do PostgreSQL dos clusters de banco de dados em execução. Isso elimina a necessidade de especificar manualmente a versão da imagem e ajuda a garantir a compatibilidade entre os jobs de backup e o ambiente de banco de dados de destino.
Configuração baseada em ConfigMap
As configurações de backup são armazenadas em um ConfigMap dedicado, separado do recurso personalizado (CR) do Bob. Essa separação simplifica o gerenciamento operacional e permite que agendamentos de backup, configurações de armazenamento e políticas de retenção sejam modificados independentemente da configuração de implantação da aplicação.
Compressão automática
Os dumps de banco de dados são automaticamente comprimidos usando gzip antes de serem armazenados. A compressão reduz os requisitos de armazenamento e ajuda a otimizar a retenção de backups dentro da capacidade de armazenamento disponível.
Rastreamento de metadados de backup
Cada backup inclui um arquivo de metadados contendo detalhes como o timestamp do backup, nome do banco de dados, host, porta e tamanho do backup. Essas informações ajudam a validar a integridade do backup, rastrear o histórico de backups e identificar o backup correto para restauração.
O que está incluído em um backup
Os backups de banco de dados capturam todos os objetos e dados do banco de dados PostgreSQL necessários para reconstruir um ambiente de banco de dados.
Os backups incluem:
- Bancos de dados PostgreSQL (se configurados):
- Banco de dados Bob (
bob) — o banco de dados principal da aplicação, incluindo contas de usuário e informações de autenticação, projetos e conversas, resultados de análise de código, e configurações e ajustes específicos da aplicação. - Banco de dados Keycloak (
app) — o banco de dados do Keycloak usado para autenticação e gerenciamento de identidade, incluindo credenciais e informações de perfil de usuário, configurações OAuth e OpenID Connect (OIDC), configurações de realm, e configurações de clientes e provedores de identidade.
- Banco de dados Bob (
- Schema do banco de dados — todos os objetos necessários para recriar a estrutura do banco de dados, incluindo tabelas, índices e restrições; procedimentos e funções armazenados; views e triggers; e sequências e tipos personalizados.
- Dados do banco de dados — o processo de backup usa
pg_dumppara criar um dump completo do banco de dados PostgreSQL, capturando todos os dados armazenados nas tabelas do banco de dados, todas as linhas e registros, e objetos binários grandes (BLOBs) se presentes.
O que não está incluído em um backup
Os backups do PostgreSQL não capturam recursos Kubernetes ou configurações da aplicação.
Os seguintes itens devem ser gerenciados separadamente:
- ConfigMaps
- Secrets
- Deployments e Services
- Recursos Ingress
- Logs da aplicação
- Dados de modelo e embeddings
- Volumes persistentes que não são banco de dados
Arquitetura de backup
O IBM Bob usa recursos nativos do Kubernetes para criar e gerenciar backups de banco de dados.
| Componente | Propósito |
|---|---|
| Recurso personalizado Bob | Habilita ou suspende operações de backup |
| ConfigMap de backup | Define agendamentos, armazenamento, retenção e bancos de dados de destino |
| CronJobs | Executam backups agendados |
| Persistent volume claims | Armazenam arquivos de backup |
| Scripts de backup | Criam backups e gerenciam a retenção |
O processo de backup segue este fluxo de trabalho:
Bob CR (enabled: true) → ConfigMap Discovery → Controller Reconciliation → CronJob Execution- O controller descobre o ConfigMap com o rótulo
bob.ibm.com/backup-config: "true". - O controller cria CronJobs e PVCs para cada cluster configurado.
- Os CronJobs são executados no horário agendado, executando
pg_dumppara criar dumps SQL comprimidos. - O script de backup gerencia a retenção, excluindo automaticamente os backups antigos.
- Cada backup inclui um arquivo de metadados com timestamp, tamanho e informações do banco de dados.
Quando os backups estão habilitados, o operador descobre automaticamente a configuração de backup, cria os recursos necessários e agenda os jobs de backup de acordo com a frequência configurada.
Estrutura de arquivos de backup
Os arquivos de backup são armazenados em persistent volume claims (PVCs) dedicados. Cada cluster PostgreSQL configurado tem seu próprio diretório contendo os arquivos de backup e os metadados associados.
/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.metaO processo de backup gera os seguintes arquivos para cada backup:
.sql.gz— dump SQL comprimido (formato texto simples, comprimido com gzip).sql.gz.meta— arquivo de metadados com timestamp, nome do banco de dados, tamanho, host e porta
Capacidades de recuperação
O IBM Bob oferece suporte a múltiplos cenários de recuperação para ajudá-lo a restaurar dados, recuperar-se de falhas e migrar bancos de dados entre ambientes:
- Restauração completa do banco de dados — restaura um banco de dados PostgreSQL inteiro a partir de um arquivo de backup.
- Recuperação point-in-time — restaura um banco de dados para uma instância de backup específica selecionando o arquivo de backup necessário com base em seu timestamp.
- Migração entre clusters — restaura um backup para um cluster PostgreSQL diferente, permitindo a migração de banco de dados entre ambientes.