Docs/ Bancos de Dados/ Backups e Restauração

Backups e Restauração

Proteja seus dados com backups automatizados. O sh0 suporta destinos de armazenamento local, S3 e Cloudflare R2 com políticas de retenção configuráveis e restauração com um clique.

Backups Manuais

Você pode acionar um backup a qualquer momento pela página de detalhes do banco de dados. Backups manuais usam as mesmas ferramentas de dump específicas do motor que os backups agendados.

  1. Navegue até seu banco de dados dentro da stack.
  2. Clique na aba Backups.
  3. Clique em Backup Agora.
  4. Selecione um destino de armazenamento (ou use o padrão).
  5. O backup roda em segundo plano -- você pode continuar trabalhando.
Database backups tab -- showing the Backup Now button and storage destination selector

O sh0 usa o utilitário de dump nativo de cada motor para garantir backups consistentes:

MotorFerramenta de BackupFormato
PostgreSQLpg_dumpFormato personalizado (.dump) ou SQL
MySQL / MariaDBmysqldumpSQL (.sql.gz)
MongoDBmongodumpArquivo BSON (.archive)
RedisSnapshot RDBArquivo RDB (.rdb)
Tip
Backups manuais são úteis antes de realizar operações arriscadas como upgrades de versão, migrações de schema ou alterações em massa de dados.

Backups Agendados

Configure backups automatizados que rodam em um agendamento. O sh0 usa expressões cron para máxima flexibilidade.

  1. Abra a aba Backups do banco de dados.
  2. Clique em Configurar Agendamento.
  3. Insira uma expressão cron ou selecione um preset (diário, a cada 6 horas, semanal).
  4. Escolha o destino de armazenamento.
  5. Defina uma política de retenção.
  6. Clique em Salvar.
Scheduled backup configuration -- cron expression input, preset buttons, and storage destination dropdown

Expressões Cron

Agendamentos de backup usam a sintaxe cron padrão de 5 campos. Aqui estão padrões comuns:

Common Cron Patterns
# Every day at 2:00 AM
0 2 * * *

# Every 6 hours
0 */6 * * *

# Every Sunday at midnight
0 0 * * 0

# Every hour
0 * * * *

# Monday to Friday at 3:30 AM
30 3 * * 1-5

Destinos de Armazenamento

Backups podem ser armazenados localmente no servidor ou enviados para armazenamento de objetos na nuvem. Usar armazenamento remoto é fortemente recomendado para recuperação de desastres.

Armazenamento Local

Por padrão, backups são armazenados no sistema de arquivos local do servidor. Esta é a opção mais simples, mas não oferece proteção contra falha de disco ou perda do servidor.

Default backup location
/var/lib/sh0/backups/<stack-name>/<database-name>/
Warning
Backups apenas locais não protegem contra falha de hardware. Para bancos de dados em produção, sempre configure pelo menos um destino de armazenamento remoto.

Armazenamento Compatível com S3

O sh0 suporta qualquer provedor de armazenamento de objetos compatível com S3, incluindo AWS S3, Cloudflare R2, MinIO, Backblaze B2 e DigitalOcean Spaces.

Para configurar um provedor de armazenamento:

  1. Vá para Configurações → Provedores de Armazenamento.
  2. Clique em Adicionar Provedor.
  3. Insira a URL do endpoint, chave de acesso, chave secreta, nome do bucket e região.
  4. Clique em Testar Conexão para verificar o acesso.
  5. Clique em Salvar.
S3 storage provider configuration -- endpoint, credentials, bucket, and region fields with a Test Connection button
Tip
O Cloudflare R2 oferece egress gratuito, sendo uma excelente escolha para armazenamento de backups. Defina o endpoint como https://<account-id>.r2.cloudflarestorage.com.

Retenção

Um agendamento mantém um número limitado de cópias para a sua origem. O valor que define é um número de cópias a manter, não um número de dias. A retenção conta apenas as cópias criadas por esse agendamento: as cópias manuais nunca são contadas nem removidas e, quando uma origem tem vários agendamentos, cada um remove apenas as suas. O valor predefinido é 7, e 0 significa ilimitado: nenhuma remoção automática.

DefiniçãoDescrição
Número conservadoQuantas cópias agendadas concluídas manter para esta origem. O que exceder esse número é o que uma purga removeria.
Cópias manuaisNunca contam para o número conservado, nem são apagadas automaticamente.
Valor igual ou inferior a 0Desativa a purga para esse agendamento.
Purga automática: corrigida na 1.6.18
Na 1.6.17 e versões anteriores nada executava a purga: o número de retenção era guardado e mostrado, mas as cópias agendadas acumulavam-se até serem apagadas à mão. A partir da 1.6.18 a purga corre após cada cópia agendada bem-sucedida, com uma varredura horária de recuperação para os repositórios já transbordados. Se continua numa versão anterior, mantenha a remoção das cópias antigas no separador Cópias de segurança e dimensione o seu armazenamento em conformidade.

Restaurando a partir de um Backup

Restaurar um backup substitui o conteúdo atual do banco de dados pelos dados do backup. O sh0 cuida de parar o banco de dados, restaurar os dados e reiniciar o contêiner.

  1. Abra a aba Backups do banco de dados.
  2. Encontre o backup que deseja restaurar na lista de histórico.
  3. Clique no botão Restaurar ao lado do backup.
  4. Confirme a operação de restauração no diálogo.
  5. Aguarde a restauração ser concluída -- o banco de dados ficará temporariamente indisponível.
Backup restore confirmation dialog -- warning about data replacement and a confirm button
Danger
Restaurar um backup sobrescreve todos os dados atuais do banco de dados. Considere criar um backup novo do estado atual antes de restaurar um mais antigo.

Histórico e Status de Backup

A tabela de histórico de backup mostra todos os backups de um banco de dados, incluindo status, tamanho, duração e localização de armazenamento.

Backup history table -- showing timestamps, sizes, durations, statuses, and storage destinations for each backup

Cada backup pode ter um dos seguintes status:

  • Concluído -- Backup finalizado com sucesso e disponível para restauração.
  • Em Andamento -- Backup em execução no momento.
  • Falhou -- Backup encontrou um erro. Clique na entrada para ver a mensagem de erro.
  • Expirado -- Backup removido pela política de retenção.

Você também pode baixar backups concluídos diretamente pelo painel para armazenamento offline ou migração para outro servidor.