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.
- Navegue até seu banco de dados dentro da stack.
- Clique na aba Backups.
- Clique em Backup Agora.
- Selecione um destino de armazenamento (ou use o padrão).
- O backup roda em segundo plano -- você pode continuar trabalhando.
O sh0 usa o utilitário de dump nativo de cada motor para garantir backups consistentes:
| Motor | Ferramenta de Backup | Formato |
|---|---|---|
| PostgreSQL | pg_dump | Formato personalizado (.dump) ou SQL |
| MySQL / MariaDB | mysqldump | SQL (.sql.gz) |
| MongoDB | mongodump | Arquivo BSON (.archive) |
| Redis | Snapshot RDB | Arquivo RDB (.rdb) |
Backups Agendados
Configure backups automatizados que rodam em um agendamento. O sh0 usa expressões cron para máxima flexibilidade.
- Abra a aba Backups do banco de dados.
- Clique em Configurar Agendamento.
- Insira uma expressão cron ou selecione um preset (diário, a cada 6 horas, semanal).
- Escolha o destino de armazenamento.
- Defina uma política de retenção.
- Clique em Salvar.
Expressões Cron
Agendamentos de backup usam a sintaxe cron padrão de 5 campos. Aqui estão padrões comuns:
# 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-5Destinos 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.
/var/lib/sh0/backups/<stack-name>/<database-name>/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:
- Vá para Configurações → Provedores de Armazenamento.
- Clique em Adicionar Provedor.
- Insira a URL do endpoint, chave de acesso, chave secreta, nome do bucket e região.
- Clique em Testar Conexão para verificar o acesso.
- Clique em Salvar.
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ção | Descrição |
|---|---|
| Número conservado | Quantas cópias agendadas concluídas manter para esta origem. O que exceder esse número é o que uma purga removeria. |
| Cópias manuais | Nunca contam para o número conservado, nem são apagadas automaticamente. |
| Valor igual ou inferior a 0 | Desativa a purga para esse agendamento. |
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.
- Abra a aba Backups do banco de dados.
- Encontre o backup que deseja restaurar na lista de histórico.
- Clique no botão Restaurar ao lado do backup.
- Confirme a operação de restauração no diálogo.
- Aguarde a restauração ser concluída -- o banco de dados ficará temporariamente indisponível.
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.
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.