Zum Inhalt

Prüfung

Ein Backup, das nie jemand wiederhergestellt hat, ist eine Hoffnung. Tenax stellt Ihre Backups nach Zeitplan wieder her, prüft sie und kennzeichnet die bestandenen als geprüft.

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

Nach Zeitplan legt der Controller einen Restore in eine Sandbox aus dem neuesten Backup an und, wenn Streams existieren, aus einem zufälligen Zeitpunkt im Fenster. Dann führt er die Checks aus:

Check Bestanden, wenn
inventory-matches Die wiederhergestellten Tabellen und der Schema-Fingerprint zum Inventar des Backups passen.
schema-matches Der Schema-Fingerprint passt.
row-estimates-within-NNpct Die Zeilenzahl jeder Tabelle höchstens NN % von der Schätzung im Inventar abweicht.
target-checks Jeder am Ziel deklarierte SQL-Check true liefert.

Ziel-Checks sind schlichtes SQL, das einen einzelnen Wert true liefern muss:

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

Ein bestandener Lauf versieht das Backup mit dem Tag verified und erfasst die Wiederherstellungsdauer, exportiert als tenax_verify_rto_seconds. Ein fehlgeschlagener Lauf löst TenaxVerificationFailed aus; 8 Tage ohne erfolgreichen Lauf lösen TenaxVerificationOverdue aus. Starten Sie einen Lauf von Hand mit tenax verify team-a/app --wait oder mit Jetzt prüfen auf der Seite des Ziels.