Geo 동기화 및 검증 실패 트러블슈팅 — 수동 재시도 절차, 대량 작업, 오류 진단, 데이터 일관성 복원.
Admin > Geo > Sites 또는 동기화 상태 Rake 작업 에서 복제 또는 검증 실패가 발생하면 다음 일반 단계를 통해 해결을 시도할 수 있습니다: Geo는 실패를 자동으로 재시도합니다. 실패가 최근에 발생했고 수가 적거나, 근본 원인이 이미 해결된 것으로 의심되면 실패가 사라질 때까지 기다릴 수 있습니다. 실패가 오래 지속된 경우 이미 여러 번 재시도가 발생했으며, 자동 재시도 간격이 실패 유형에 따라 최대 4시간까지 늘어납니다. 근본 원인이 이미 해결된 것으로 의심되면 복제 또는 검증을 수동으로 재시도 하여 대기를 피할 수 있습니다. 실패가 지속되면 다음 섹션을 사용하여 해결을 시도하세요. 진단 절차 # 수동 재시도를 시도하기 전에 이러한 향상된 진단 절차를 사용하여 동기화 문제의 범위와 특성을 더 잘 이해할 수 있습니다. 모델 상태 확인 # 이 절차는 모든 Geo 데이터 유형 모델 클래스 에 대한 자세한 상태 정보를 제공하며 체크섬 실패를 파악하는 데 도움이 됩니다. 이러한 실패는 복제 가능한 객체의 체크섬을 계산할 수 없을 때 발생합니다. “기본 사이트 검증 실패”라고도 부릅니다. 체크섬 실패는 UI 또는 Rails 콘솔에서 확인할 수 있습니다. UI 기본 사이트에서 [데이터 관리 페이지](/19.1/administration/admin_area/#data-management)를 사용하세요. Rails 콘솔 다음 스크립트를 사용하여 각 모델 유형에 대한 자세한 정보를 출력할 수 있습니다. 출력 정보에는 다음이 포함됩니다: 레코드의 총 개수 실패, 검증됨, 대기 중인 레코드 수 조사를 위한 샘플 실패 레코드 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_example