Saltar para o conteúdo principal Saltar para a navegação Saltar para o rodapé

Backup e Restauro

Copie um repositório em produção para uma segunda máquina, desligue a primeira e recupere os dados.

Backup e Restauro

A sua aplicação está em produção. Crie uma cópia de segurança. O rdc copia um repositório inteiro, a aplicação, a sua base de dados, os seus ficheiros e a sua configuração, para uma segunda máquina, e recupera-o quando a primeira desaparecer.

Este tutorial não se limita a descrever isso. Fá-lo, em duas máquinas reais, e lê os dados de volta no final.

Três passos

Copiar, restaurar, provar

  1. Copie o repositório para uma máquina que controla.
  2. Restaure essa cópia para um repositório próprio.
  3. Prove lendo os seus dados de volta.

Passo 1: Os dados que têm de sobreviver

rdc term connect my-app --command 'cat orders.txt'

Leia primeiro os dados do repository em produção. Uma linha num ficheiro, para que a prova final seja algo que pode ver, e não algo em que tem simplesmente de confiar.

Tudo o que se segue é avaliado em função desta única linha. Volte a procurá-la no passo 7.

Passo 2: Copiar o repositório para uma segunda máquina

rdc repo push my-app --to machine-12

Copie o repository para uma segunda máquina. O primeiro envio transporta a imagem encriptada completa, cerca de dois gigabytes em trinta a quarenta segundos nesta frota, e cada envio seguinte manda apenas os blocos alterados. O que chega ao destino é um artefacto de backup, não um segundo repository em produção.

O tutorial de Transferência Delta mostra ao vivo a metade incremental deste processo.

Um artefacto não é um repositório em execução, e é exatamente por isso que existe o passo 5.

Passo 3: A máquina de backup já o tem

rdc repo list --machine machine-12

Pergunte à máquina de backup o que ela tem guardado. A cópia aparece com o seu próprio nome, resolvido a partir do seu config. A segunda linha, com um identificador em bruto, é a base delta retida, que é o que torna incremental o próximo envio para esta máquina.

Passo 4: Desastre

rdc repo down my-app --unmount

Coloque a máquina principal offline: pare os seus serviços e desmonte o volume encriptado. A partir daqui, tudo funciona sobre a cópia na outra máquina.

Passo 5: Transformar o artefacto num repositório

rdc backup restore my-app@machine-12 --as my-app-restored --machine machine-12 --yes

Restore é o comando que transforma uma cópia enviada num repository. É nomeado com --as, colocado com --machine, e confirmado com --yes. Restaurar sob um novo nome não sobrescreve nada, o que torna seguro praticar isto numa máquina em produção.

Faça isto uma vez por máquina, antes de precisar. Uma máquina que nunca fez este ciclo completo não está com backup, por mais saudáveis que pareçam os seus envios, e restaurar sob um novo nome é seguro mesmo numa máquina que está a servir tráfego.

Passo 6: Montar

rdc repo up my-app-restored --no-start

Monte o repository restaurado. Os contentores ficam parados de propósito: o que se está a provar aqui são os dados, não a aplicação.

Passo 7: Os dados sobreviveram

rdc term connect my-app-restored --command 'cat orders.txt'

O mesmo comando da etapa um, executado contra um repository que há dois comandos não existia. A linha volta byte a byte, vinda de uma máquina que nunca foi a original.

Coloque os dois lado a lado. Passo 1, tirado do repositório original na máquina principal:

order-1042 paid 2026-08-16

Passo 7, tirado de um repositório que, há dois comandos, nem sequer existia, em hardware diferente:

order-1042 paid 2026-08-16

Este é o tutorial. Não um relatório a dizer que o backup teve sucesso, mas a própria linha, lida de volta noutra máquina.

Passo 8: Backups pelos quais pode retroceder

rdc backup snapshot my-app

Copiar para uma máquina dá-lhe o repository tal como está agora. Para um histórico pelo qual pode voltar, os snapshots vão para o armazenamento fragmentado: a primeira execução envia os blocos escritos, cada execução seguinte envia apenas o que mudou, e qualquer snapshot pode ser restaurado sozinho. Este comando está aqui apenas escrito e não executado, porque o envio exige um servidor de conta e um repository licenciado, e uma gravação não tem nenhum dos dois. Na sua própria instalação, com uma conta, este é o comando.

Na sua própria instalação, com uma conta, a sequência completa é:

rdc backup snapshot my-app
rdc backup manifests my-app
rdc backup restore my-app --as my-app-yesterday --at <snapshot-id> --up

O guia de Backup e Restauro cobre snapshots, retenção e verificação em detalhe.


Próximo: Rede e Domínios.