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