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.
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:
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.