translog_corrupted_exception: translog_corrupted_exception
ElasticsearchNe demek?
Bir shard'ın translog'u, bozulmuş olduğu için okunamadı. Elasticsearch, kurtarma (recovery) sırasında translog'un bütünlük denetiminden geçemediğini tespit etti ve shard başlatılamadı.
Neden olur?
Genellikle ani güç kesintisi, disk dolması, dosya sistemi hatası, donanım/disk arızası ya da veri dizinine dışarıdan (kopyalama, elle müdahale) yapılan işlemler sonucu translog dosyaları bozulur. Zorla kapatma (kill -9) sırasında yarım kalan yazmalar da neden olabilir.
Nasıl çözülür?
Öncelikle veriyi bir replikadan ya da snapshot'tan kurtarmayı deneyin; sağlıklı bir kopya varsa bozuk shard'ı ondan yeniden oluşturmak en güvenli yoldur. Başka kopya yoksa ve veri kaybını göze alıyorsanız düğümü durdurup bin/elasticsearch-shard remove-corrupted-data --index <indeks> --shard-id <n> aracıyla bozuk translog'u/verileri temizleyin (bu işlem henüz commit edilmemiş veriyi kalıcı olarak kaybettirir; eski elasticsearch-translog aracı 7.0'da kaldırıldı). Araç, düğüm yeniden başladıktan sonra shard'ı atamak için gereken POST _cluster/reroute (allocate_stale_primary, accept_data_loss: true) komutunu çıktısında verir. İşlemden önce veri dizininin yedeğini alın. Disk sağlığını ve alanını kontrol edin.
Aynı motorda diğer kayıtlar
- illegal_argument_exception_total_fieldsLimit of total fields has been exceeded
- verification_exceptionverification_exception: Found N problem(s) — Unknown column / Unknown index (ES|QL, SQL, EQL)
- bind_transport_exceptionbind_transport_exception (Address already in use)
- recovery_engine_exceptionrecovery_engine_exception
- snapshot_in_progress_exceptionsnapshot_in_progress_exception
- repository_verification_exceptionrepository_verification_exception
- reduce_search_phase_exceptionreduce_search_phase_exception