PITR e backups

O DIVZ mantém o WAL contínuo e permite restaurar o banco em qualquer instante dentro da janela do seu plano — de 3 dias no gratuito a 30 dias no Business. Além disso, todo projeto recebe um dump lógico diário cifrado.

Duas camadas diferentes

Elas resolvem problemas distintos e não se substituem:

PITRDump lógico diário
O que érestaurar o banco em qualquer instante da janelaum arquivo .sql.gz cifrado, uma vez por dia
Granularidadeo segundoo dia
Serve paradesfazer um erro recente (DELETE sem WHERE, migração ruim)desastre, auditoria, levar os dados embora
Onde viveno próprio storage engineservidor + Hetzner Storage Box, cifrado com age
Como acionarconsole ou POST /api/v1/pitrabrir um chamado no suporte

Janela por plano

PlanoJanela de PITR
Explorar3 dias
Starter7 dias
Pro14 dias
Business30 dias

Dentro dessa janela qualquer instante é alcançável, não apenas os horários de um snapshot. Isso é possível porque o WAL — o registro de tudo que o Postgres escreve — é preservado de forma contínua, e não descartado depois de aplicado.

Como restaurar

A restauração não sobrescreve o banco atual. Ela cria um branch novo com o estado daquele instante, e você decide o que fazer com ele: comparar, extrair as linhas perdidas ou promover.

api
curl -X POST https://api.divz.com.br/api/v1/pitr \
  -H "Authorization: Bearer divz_..." \
  -H "Content-Type: application/json" \
  -d '{
    "projectId": "<id>",
    "timestamp": "2026-09-08T02:15:00-03:00",
    "branchName": "antes-do-delete"
  }'

O timestamp aceita ISO 8601 com fuso. O branch resultante recebe o sufixo -restored e vem com connection string própria.

Restaurar para um branch em vez de por cima é deliberado: no minuto seguinte a um acidente ninguém tem certeza do horário exato do erro. Errar o instante e sobrescrever a produção transformaria um problema recuperável em perda definitiva.

Recuperando de um acidente

  1. Pare de escrever no banco se puder. Cada escrita nova depois do erro complica a reconciliação.
  2. Estime o instante alguns minutos antes do comando errado. É mais barato restaurar cedo demais e comparar do que tarde demais e perder o rastro.
  3. Restaure para um branch e conecte nele.
  4. Traga só o que falta. Na maioria dos casos é um INSERT ... SELECT de uma tabela do branch para a produção — não uma troca de banco inteiro.

O dump diário

Independente do PITR, todo projeto ativo recebe um pg_dump por dia, comprimido e cifrado com age antes de sair do servidor. As cópias vão para a Hetzner Storage Box. Como o dump é cifrado com chave pública, quem tiver acesso ao armazenamento não consegue ler o conteúdo.

Precisa de uma cópia dos seus dados para levar embora? Abra um chamado no suporte pedindo o dump do projeto — os dados são seus.

Próximo: API REST