Geo 동기화 및 검증 오류 트러블슈팅
Geo 동기화 및 검증 실패 트러블슈팅 — 수동 재시도 절차, 대량 작업, 오류 진단, 데이터 일관성 복원.
Admin > Geo > Sites 또는 동기화 상태 Rake 작업 에서 복제 또는 검증 실패가 발생하면 다음 일반 단계를 통해 해결을 시도할 수 있습니다: Geo는 자동으로 실패를 재시도합니다. 실패가 새로 발생했거나 수가 적거나, 근본 원인이 이미 해결됐다고 판단되면 실패가 사라질 때까지 기다릴 수 있습니다. 실패가 오랫동안 지속됐다면 이미 여러 번 재시도가 발생한 것이며, 자동 재시도 간격이 실패 유형에 따라 최대 4시간으로 늘어납니다. 근본 원인이 이미 해결됐다고 판단되면 수동으로 복제 또는 검증을 재시도 하여 대기 시간을 줄일 수 있습니다. 실패가 지속되면 다음 섹션을 통해 해결을 시도하세요. 진단 절차 # 수동 재시도를 시도하기 전에 향상된 진단 절차를 사용하여 동기화 문제의 범위와 성격을 더 잘 이해할 수 있습니다. 모델 상태 확인 # 이 절차는 모든 Geo 데이터 유형 모델 클래스 에 대한 자세한 상태 정보를 제공하며 체크섬 실패를 식별하는 데 도움이 됩니다. 이러한 실패는 복제 가능 객체의 체크섬을 계산할 수 없을 때 발생합니다. "기본 검증 실패"라고도 합니다. 체크섬 실패는 UI 또는 Rails 콘솔에서 확인할 수 있습니다. UI Rails 콘솔 기본 사이트에서 데이터 관리 페이지 를 사용하세요. 다음 스크립트를 사용하여 각 모델 유형에 대한 자세한 정보를 출력할 수 있습니다: 레코드 총 수 실패, 검증됨, 대기 중인 레코드 수 조사를 위한 실패 레코드 샘플 Note ModelMapper 클래스는 GitLab 18.3 에서 추가됐습니다. 이전 버전에서는 Geo 데이터 유형 모델 클래스 목록을 수동으로 지정해야 합니다. 기본 사이트에서 Rails 콘솔 세션을 시작 합니다. 다음 스크립트를 실행하여 포괄적인 개요를 확인하세요: def output_geo_verification_failures model_classes = : :Gitlab : :Geo : :ModelMapper .available_models model_classes.each do | klass | total = klass.count state_klass = klass.verification_state_table_class failed_examples = [] puts "\n=== #{klass.name} ===" puts "Total: #{total} " : :Geo : :VerificationState : :VERIFICATION_STATE_VALUES .each do | key, value | records = state_klass.where( verification_state: value) failed_examples = records if key == 'verification_failed' puts " #{key.gsub( 'verification_' , '' ).camelize} : #{records.size} " end if failed_examples.any? puts "\nSample failed records:" failed_example
