Pular para conteúdo

Verificação

Um backup que ninguém restaurou é só uma esperança. O Tenax restaura os seus backups em um agendamento, confere-os e marca os aprovados como verificados.

in a BackupPolicy
spec:
  verify:
    schedule: "17 4 * * 0"          # weekly, Sunday 04:17 in the policy's time zone
    checks: [inventory-matches, row-estimates-within-10pct, target-checks]
    randomPointInTime: true          # also restore a random second inside the window

No horário agendado, o controlador cria um Restore em um sandbox a partir do backup mais recente e, quando existem streams, a partir de um ponto aleatório da janela. Depois executa as checagens:

Checagem Passa quando
inventory-matches As tabelas restauradas e a impressão digital do schema batem com o inventário do backup.
schema-matches A impressão digital do schema bate.
row-estimates-within-NNpct A contagem de linhas de cada tabela fica dentro de NN % da estimativa do inventário.
target-checks Toda checagem SQL declarada no alvo retorna true.

As checagens do alvo são SQL simples que deve retornar um único valor true:

in a BackupTarget
spec:
  checks:
    - name: orders-not-empty
      database: app
      sql: select count(*) > 0 from orders
    - name: recent-orders
      database: app
      sql: select max(created_at) > now() - interval '2 days' from orders

Uma execução aprovada marca o backup como verified e registra o tempo de restauração, exportado como tenax_verify_rto_seconds. Uma execução reprovada dispara TenaxVerificationFailed; nenhuma execução bem-sucedida em 8 dias dispara TenaxVerificationOverdue. Execute uma manualmente com tenax verify team-a/app --wait, ou com Verificar agora na página do alvo.