Geo 동기화 및 검증 오류 문제 해결
Geo 동기화 및 검증 실패 문제 해결 — 수동 재시도 절차, 대량 작업, 오류 진단, 데이터 일관성 복원.
Admin > Geo > Sites 또는 Sync status Rake 태스크 에서 복제 또는 검증 실패가 확인되면 다음 일반 절차로 실패를 해결해 볼 수 있습니다. Geo는 실패를 자동으로 재시도합니다. 실패가 새로 발생했고 수가 적거나 근본 원인이 이미 해결되었다고 판단되면, 실패가 사라지는지 기다려 볼 수 있습니다. 실패가 오래 지속되었다면 이미 많은 재시도가 이루어졌으며, 실패 유형에 따라 자동 재시도 간격이 최대 4시간까지 늘어난 상태입니다. 근본 원인이 이미 해결되었다고 판단되면 복제 또는 검증을 수동으로 재시도 하여 대기 시간을 줄일 수 있습니다. 실패가 계속되면 다음 섹션을 사용해 해결을 시도합니다. 진단 절차 # 수동 재시도를 시도하기 전에 다음 향상된 진단 절차를 사용하면 동기화 문제의 범위와 성격을 더 잘 파악할 수 있습니다. 모델 상태 확인 # 이 절차는 모든 Geo 데이터 유형 모델 클래스 에 대한 상세 상태 정보를 제공하며 체크섬 실패를 식별하는 데 도움이 됩니다. 이 실패는 복제 가능한 객체의 체크섬을 계산하지 못했을 때 발생합니다. 「기본 사이트 검증 실패」라고도 부릅니다. 체크섬 실패는 UI 또는 Rails 콘솔에서 확인할 수 있습니다. UI Rails console 기본 사이트에서 Data Management 페이지 를 사용합니다. 다음 스크립트를 사용하면 각 모델 유형에 대해 다음을 포함한 상세 정보를 출력할 수 있습니다. 레코드 총 개수 실패, 검증됨, 대기 중인 레코드 수 조사용 실패 레코드 샘플 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 fa