Vérification¶
Une sauvegarde que personne n'a restaurée n'est qu'un espoir. Tenax restaure vos sauvegardes selon un planning, les contrôle, et marque celles qui réussissent comme vérifiées.
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
À l'heure prévue, le contrôleur crée un Restore vers un bac à sable à partir de la dernière sauvegarde, et depuis
un instant aléatoire de la fenêtre quand des flux existent. Il exécute ensuite les contrôles :
| Contrôle | Réussit quand |
|---|---|
inventory-matches |
Les tables restaurées et l'empreinte du schéma correspondent à l'inventaire de la sauvegarde. |
schema-matches |
L'empreinte du schéma correspond. |
row-estimates-within-NNpct |
Le nombre de lignes de chaque table est à NN % près de l'estimation de l'inventaire. |
target-checks |
Chaque contrôle SQL déclaré sur la cible renvoie vrai. |
Les contrôles de la cible sont du SQL simple qui doit renvoyer une seule valeur vraie :
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
Une exécution réussie marque la sauvegarde verified et enregistre la durée de restauration, exportée sous
tenax_verify_rto_seconds. Une exécution en échec déclenche TenaxVerificationFailed ; aucune exécution réussie
pendant 8 jours déclenche TenaxVerificationOverdue. Lancez-en une à la main avec tenax verify team-a/app --wait,
ou avec Vérifier maintenant sur la page de la cible.