Vai al contenuto

Verifica

Un backup che nessuno ha mai ripristinato è una speranza. Tenax ripristina i tuoi backup secondo una pianificazione, li controlla e marca come verificati quelli che superano i controlli.

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

Secondo la pianificazione, il controller crea un Restore in una sandbox dall'ultimo backup e, quando esistono flussi, da un punto casuale della finestra. Poi esegue i controlli:

Controllo Superato quando
inventory-matches Le tabelle ripristinate e l'impronta dello schema corrispondono all'inventario del backup.
schema-matches L'impronta dello schema corrisponde.
row-estimates-within-NNpct Il numero di righe di ogni tabella è entro NN % della stima dell'inventario.
target-checks Ogni controllo SQL dichiarato sul target restituisce true.

I controlli del target sono semplice SQL che deve restituire un unico valore 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

Un'esecuzione riuscita marca il backup come verified e registra il tempo di ripristino, esportato come tenax_verify_rto_seconds. Un'esecuzione non riuscita fa scattare TenaxVerificationFailed; nessuna esecuzione riuscita per 8 giorni fa scattare TenaxVerificationOverdue. Eseguine una a mano con tenax verify team-a/app --wait, o con Verifica ora nella pagina del target.