Pular para o conteúdo

Backup & Restore (PITR)

Este runbook restaura um banco a partir dos backups no R2, inclusive PITR (recuperação para um instante exato).

  • Perda do nó rke-db-00 (disco local).
  • Corrupção lógica de dados (restaurar para antes do incidente).
  • Migração do banco para um novo nó.
  1. Garantir o nó de bancorke-db-00 Ready, com StorageClass nvme-local. Se necessário, recrie-o pelo runbook de nó.
  2. Criar um novo Cluster CNPG com bootstrap.recovery apontando para o barmanObjectStore no R2:
    spec:
    bootstrap:
    recovery:
    source: nextcloud-backup
    # Para PITR, especifique o alvo:
    recoveryTarget:
    targetTime: "2026-06-14 12:00:00+00"
    externalClusters:
    - name: nextcloud-backup
    barmanObjectStore:
    destinationPath: s3://serigy-backups/nextcloud
    endpointURL: https://<accountid>.r2.cloudflarestorage.com
    s3Credentials:
    accessKeyId: { name: r2-credentials, key: ACCESS_KEY_ID }
    secretAccessKey: { name: r2-credentials, key: SECRET_ACCESS_KEY }
  3. Aplicar e acompanhar o CNPG baixar o base backup e reaplicar os WALs até o alvo.
  4. Validar os dados (contagens, registros recentes esperados).
  5. Religar a aplicação ao novo Service -rw.
flowchart LR
    R2["🪣 R2 (base + WAL)"] --> Rec["CNPG recovery"]
    Rec -->|reaplica WAL até targetTime| New[("Novo PostgreSQL<br/>rke-db-00")]
    New --> App["Aplicação religada"]
  • Verificar o reinício do backup contínuo para o novo cluster.
  • Registrar o evento (causa, alvo de PITR, RTO real) para auditoria.