Contents — find the section you need

Change parameters and verify

Open the panel, then press Run to load Python. You can stop execution and reset parameters. Results are computed on this device. No Python installation is required.

Local execution steps below are optional for reproducing the source results; they are not required for the browser experiment.

The experiment controls are in English.

Open experiment panel in a new tab

Download reproduction source

Um código de saída de backup bem-sucedido não comprova que um serviço pode ser reiniciado a partir dos dados salvos. Separe a restauração de arquivos, a legibilidade do banco de dados e as operações de aplicação necessárias. Comece com um exercício que nunca acesse dados de produção.

Defina recuperação bem-sucedida

Diagram 1 · Use the button to switch views
Capture dados consistentes, restaure em um destino vazio e verifique hashes, integridade do banco de dados e leituras do aplicativo

Um serviço de fotos precisa de relações entre imagens e registros do banco de dados. A autenticação também pode depender da configuração e das chaves de criptografia. Defina a janela de perda de dados aceitável (RPO) separadamente da duração de recuperação aceitável (RTO). A frequência de backup e o tempo de restauração são medidas diferentes.

Execute um exercício isolado

Salve restore_lab.py e execute python3 restore_lab.py . Ele usa a biblioteca padrão do Python 3.12.3. Cada execução cria um novo diretório temporário, um arquivo de texto e um registro SQLite. Não interrompe nem exclui um serviço ou conjunto de dados existente.

O script usa a API de backup do SQLite para copiar o banco de dados, compacta-o com o arquivo de texto em um arquivo ZIP e restaura-o em outro diretório vazio. Ele verifica os hashes SHA-256, PRAGMA integrity_check e um registro SQL conhecido. Consulte a explicação oficial da API de backup do SQLite.

file_hashes: pass
sqlite_integrity: pass
application_read: pass
scope: synthetic fixture only

Todas as três verificações foram aprovadas em 7 de setembro de 2026. Aqui, leitura do aplicativo significa a consulta SQL conhecida, não a inicialização do Immich ou do Nextcloud. O directory impresso contém as evidências retidas. O arquivo ZIP nesse diretório temporário é um artefato de teste, não uma proteção contra a perda do dispositivo de armazenamento.

Capturar serviços reais de forma consistente

A cópia comum de arquivos de banco de dados ativos pode não preservar a consistência necessária para a recuperação. Para PostgreSQL, revise os requisitos de métodos como SQL dumps. A consistência entre o snapshot do banco de dados e os arquivos externos referenciados é uma preocupação à parte.

Componente Preservar Verificação de restauração
Configuração Compose, configurações e versões da imagem Recriar a configuração pretendida
Banco de dados Dump consistente ou backup compatível Verificações de carga e integridade aprovadas
Uploads Relações entre arquivos e metadados Abrir arquivos conhecidos
Segredos Chaves e material de autenticação Administradores autorizados podem recuperar

A correspondência de hashes estabelece igualdade com a cópia capturada. Ela não comprova que toda a aplicação estava consistente no momento da captura.

Verificações adicionais com restic

O procedimento a seguir se aplica a um ambiente onde o restic já está instalado; o restic não foi executado neste exercício. Configure o repositório e as credenciais separadamente e registre restic version . Selecione um snapshot e restaure-o em um destino vazio.

restic snapshots
restic check --read-data
restic restore SNAPSHOT_ID --target /path/to/empty-restore

Substitua o ID e o caminho para o seu ambiente. Restauração e verificação do repositório respondem a perguntas diferentes. Considere os custos de tempo de execução e transferência ao ler dados armazenados com --read-data .

Mantenha um registro de recuperação

Registre a hora de captura, o início e o término da recuperação, o volume de dados, as versões, os resultados da verificação de arquivos e as operações do aplicativo. Verifique em um ambiente isolado antes de substituir os dados de produção, com e-mails de saída e webhooks desativados. A autenticação e as verificações de leitura de arquivos transformam este pequeno exercício em um procedimento específico do serviço para a plataforma home-server.

What to read next

Review the computing platformComo funcionam os SBCs e principais produtos — Raspberry Pi 5, Jetson, CoralReview the backgroundOnde os dados do Docker residem: camadas, volumes e backupsContinue the seriesMeça o consumo de energia do servidor doméstico: em modo ocioso, durante inferência e em armazenamento.