본문으로 건너뛰기

4.4 WAL gap 진단

Recovery가 requested WAL segment ... has already been removed 또는 file not found에서 멈추면 필요한 segment와 repository 상태를 확인합니다. 임의의 WAL을 다른 cluster에서 가져오면 안 됩니다.

확인 순서

  1. PostgreSQL log에서 정확한 WAL file 이름을 기록합니다.
  2. Repository와 다른 archive copy에서 존재 여부를 확인합니다.
  3. Timeline history와 backup 시작 및 종료 WAL을 확인합니다.
  4. Archive command 실패, retention, object lifecycle 기록을 조사합니다.
  5. Gap을 채울 수 없다면 더 오래된 연속 backup set 또는 허용 가능한 다른 target을 선택합니다.

WAL file 이름이 같아도 system identifier가 다른 cluster의 file은 사용할 수 없습니다. pg_controldata와 backup metadata로 cluster identity를 확인합니다.

예방

  • Backup retention과 archive retention을 함께 계산합니다.
  • Base backup이 참조하는 WAL을 먼저 지우지 않습니다.
  • Archive 성공 metric만 아니라 object read test를 수행합니다.
  • Repository lifecycle rule을 backup 도구의 retention과 조정합니다.
  • Restore drill에서 가장 오래 보존해야 하는 target도 시험합니다.

WAL gap은 복구 시점에 처음 발견되면 늦습니다. pgBackRest check, Barman check와 repository verification을 정기 작업으로 둡니다.