コンテンツにスキップ

検証

誰も復元したことのないバックアップは、ただの希望にすぎません。Tenax はスケジュールに沿ってバックアップを復元してチェックし、 合格したものを 検証済み としてマークします。

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

スケジュールの時刻になると、コントローラーは最新のバックアップから、またストリームがある場合はウィンドウ内のランダムな時点から、 サンドボックスへの Restore を作成します。その後、チェックを実行します。

チェック 合格条件
inventory-matches 復元されたテーブルとスキーマのフィンガープリントがバックアップのインベントリと一致する。
schema-matches スキーマのフィンガープリントが一致する。
row-estimates-within-NNpct すべてのテーブルの行数がインベントリの推定値の NN % 以内である。
target-checks ターゲットに宣言されたすべての SQL チェックが true を返す。

ターゲットのチェックは、単一の true 値を返す必要があるプレーンな SQL です。

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

合格した実行はバックアップに verified タグを付け、復元にかかった時間を記録します。これは tenax_verify_rto_seconds として エクスポートされます。失敗した実行は TenaxVerificationFailed を発報し、8 日間成功した実行がなければ TenaxVerificationOverdue が発報されます。手動で実行するには tenax verify team-a/app --wait を使うか、ターゲットのページで 今すぐ検証 を押します。