콘텐츠로 이동

검증

아무도 복원해 보지 않은 백업은 희망일 뿐입니다. 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로, 또는 대상 페이지의 지금 검증으로 직접 실행할 수 있습니다.